虽然我理解 LOD 的概念,但在实现它时遇到了一些麻烦。假设我有许多不同 LOD 的模型,我想将它们存储在我的 Mesh 类中。我需要更改什么(我已经有一个支持一种模型的网格)。我是否有多个 VBO(一个数组,也许索引指示级别?),将每个模型缓冲到它的 VBO 中并在渲染时绑定(bind)正确的模型?还是我完全错过了这个想法?
最佳答案
What do I need to change
这实际上取决于您如何构建顶点或索引。有上千种方法可以达到模型的详细程度。您可以如 s3rius 所述,将每个 LOD 模型保存在其自己的顶点缓冲区中。或者,根据您对三角形或顶点的排序方式,您可以保留 1 个顶点缓冲区并在绘制不同质量的三角形时沿索引跳过。
例如,当您想要完整级别的细节时,您将渲染模型的每个顶点。当您想要一半的细节时,您将渲染所有其他顶点。
查看此处发布的一些链接。 LOD in modern games 始终阅读现代实践。
关于java - 在 OpenGL (Java) 中实现 LOD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25210516/