|
|
发表于 2007-1-27 14:02:00
|
显示全部楼层
Re:一个渲染问题
其实这就是一个OIT(order independent transparency)的问题,只是楼主的叙述太令人生畏了。。。
这个问题没有什么好方法能够解决。假如所有的面都不相交,那么需要排序,排序算法是nlog级别的,显然不适合现有图形硬件。用depth peeling需要画多次,实际应用中一般做到4层就可以了(比如unreal 3里就只做到4层),但半透明物体多时,重绘的开销也不小。
可以想象unreal 3这样的游戏都只做了4层,一般的游戏最多也就是用马马说的那种方法了。
问题的根源在于现有图形硬件没有一种层次的数据结构,也就是没法把一次渲染过程中,最近的pixel, 次近的,第三近的。。。以一种方式存下来,而只能存最近的pixel的信息。
至于prt,应该和楼主的问题时风马牛不相机。 |
|