java - OpenGL对象排序

标签 java opengl lwjgl

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

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

最佳答案

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

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

当然,如果您将 OpenGL 视为它所不是的东西(即场景图),那么您的结果将低于标准。

关于java - OpenGL对象排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21120260/

相关文章:

opengl - 什么样的声音处理算法可以让你做出这样的可视化?

c++ - 如何在 C++ 字体库中支持不同的 OpenGL 版本/扩展

java - 带 OpenGL 的基本 LWJGL 三角形

java - 不能不使用ListCellRenderer

c++ - OpenGL Qt : problem using framebuffers for bloom effect

java - 如何从我的 java 类构建库文件(jar 文件)?

java - 如何使用 `maven package` 将依赖项复制到输出目录

java - 如何绘制从相机到 3D 区域的投影线?

Java - 旋转数组

java - 如何动态创建 VCS 或 ICS 文件(Outlook)?