|
|
发表于 2005-2-22 14:02:00
|
显示全部楼层
Re: OpenGL的融合接口实在太糟糕了
即使按你这样做,也不解决问题啊。
比如有如下的场景:
- A B C
- 视线 | | |
- =====> | | |
- | | |
- 0.5 0.3 1.0
复制代码
A,B,C是三个半透明的物体,下面标注的是各自的透明度(alpha值)
按照你的方法设置深度blend模式为:
glDepthBlend( GL_FRONT_ALPHA, GL_ONE_MINUS_FRONT_ALPHA);
也就是:frontcolor * frontalpha + backcolor * (1-frontalpha)
按照C,B,A的顺序绘制,最终的颜色是:
(B*0.3+C*0.7)*0.5 + A*0.5
按照C,A,B的顺序绘制,结果是:
(A*0.5+C*0.5)*0.5 + B*0.5
不同的渲染顺序还是会产生不同的结果。 |
|