作者 主题: [processing] Hana屏保  (阅读 2744 次)

V

  • Newbie
  • *
  • 帖子: 5
[processing] Hana屏保
« 于: 十月 17, 2011, 01:58:23 下午 »
Huna是前阵子突发奇想一个3D视觉互动屏保。即时使用opengl绘制画面。
 他是一个小小地球与人的一个表现,小人会自动的跑到某处开始洒水播种,然后四周便会开满鲜花。
 这次制作遇到的困难就是在OpenGL模式下使用透明贴图材质的问题。由于processing并未采用良好的depth-sort,所以OpenGL在处理透明贴图的时候,透明材质的透明部分颜色叠加发生了问题,错位了,因为他在未经过depth-sort的时候已经进行了绘制。

目前我找到的解决方法有两种,
 1.等待新的优化过的depth-sort算法。先经过深度排序,再进行绘制。(经测试可以,但是目前的原生depth-sort效能糟糕)

2.启用OpenGL的GL_ALPHA_TEST,将材质alpha小于某个值的像素排除在zbuffer外,等于是材质扣背了,效能很好,效果也不错。
gl.glAlphaFunc(GL.GL_GREATER, .5);
gl.glEnable(GL.GL_ALPHA_TEST);

界面预览:



Windows下载:
http://115.com/file/bh0dlbha#  <-- 不包含javaruntime
http://115.com/file/cloq4icf# <-- 包含javaruntime



Tags: