OpenGL 对象排序



我最近问了一个关于在游戏中渲染"玻璃"体素的问题,我被告知我需要按从后到前的顺序渲染我的玻璃,这对我来说很有意义。我一直在谷歌上搜索,我无法决定OpenGL是否可以为我从后到前渲染,或者我是否必须手动进行。

发现一些网站告诉我使用不同类型的混合,有些网站说只是禁用深度测试,我知道我必须这样做。但是我必须手动对几何图形进行排序吗?这是否意味着我必须根据它在 z 轴上的位置对其进行排序?唯一的问题是相机角度发生了变化,所以我不知道我是否需要在所有轴上排序。

OpenGL是一个愚蠢的绘图API,而不是场景图。你告诉它画一些东西,一旦它在帧缓冲上,OpenGL就已经忘记了它。当绘制命令传递给 OpenGL 时,事物将按顺序绘制。

这基本上意味着:你必须做跑腿工作。但是,由于无论如何您都必须正确准备绘图通道(视锥剔除、资产分配、状态更改最小化预排序等),这并不意味着需要大量额外的工作。

当然,如果你把OpenGL当作它不是的东西,即场景图,你的结果将低于标准。

您需要根据摄像机的 FOV/角度转换几何体,然后在 z 轴上对其进行排序以找出渲染顺序。

最新更新