【发布时间】:2011-04-07 15:26:04
【问题描述】:
如果我正在制作 3D 引擎,那么这个问题的答案就很清楚了:我会选择使用深度缓冲区,而不是考虑自己对所有多边形进行排序。
然而,这是 2D 的不同情况,因为这里的层可以在没有 OpenGL 的帮助下轻松实现 - 然后您甚至可以在层内对精灵进行排序和移动。 (这在 OpenGL afaik 中是不可能的)
- (为什么)我应该使用 OpenGL 深度缓冲区而不是 CPU 上运行的 C++ 层系统?
- 深度缓冲区版本会慢多少?
我很清楚,在 C++ 中创建一个层系统会产生几乎没有性能影响的效果,因为在任何情况下我都必须迭代 sprite 以进行渲染。
【问题讨论】:
-
我想这完全取决于你……在 DirectX 中制作 2D 平铺滚动引擎时,我选择用纯 C++ 渲染我自己的图层。然而,我的精灵也由一个纹理组成(换句话说,阴影内置在框架中,我只有 2 层瓷砖和精灵)