我最近问了一个有关在游戏中渲染“玻璃”体素的问题,有人告诉我需要按从后到前的顺序渲染玻璃,这对我来说很有意义。我在谷歌上搜索了一下,我无法决定 OpenGL 是否可以为我从后到前渲染,或者我是否必须手动完成。
我发现网站告诉我使用不同类型的混合,有些网站说只需禁用深度测试,我知道我必须这样做。但是我必须手动对几何图形进行排序吗?这是否意味着我必须根据它在 z 轴上的位置对其进行排序?唯一的问题是相机角度发生变化,所以我不知道是否需要在所有轴上排序。
最佳答案
OpenGL 是一个愚蠢的绘图 API,而不是场景图。你告诉它画一些东西,一旦它在帧缓冲区上,OpenGL 就已经忘记了它。事物按照绘图命令传递给 OpenGL 的顺序进行绘制。
这本质上意味着:你必须跑腿。但是,由于无论如何您都必须正确准备绘图 channel (视锥体剔除、 Assets 分配、状态更改最小化预排序等),这并不意味着需要做很多额外的工作。
当然,如果您将 OpenGL 视为它所不是的东西(即场景图),那么您的结果将低于标准。
关于java - OpenGL对象排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21120260/