虽然我了解LOD的概念,但在实现它时遇到了一些麻烦。假设我有许多不同LOD的模型,并且想将它们存储在我的Mesh类中。我需要更改什么(我已经有一个支持一个模型的网格)。我是否有多个VBO(一个数组,可能具有指示级别的索引?),将每个模型缓冲到其VBO中并在渲染时绑定正确的模型?还是我完全想念这个主意?
最佳答案
我需要改变什么
这实际上取决于您如何构造顶点或索引。有千种方法可以实现模型的详细程度。如s3rius所述,您可以将每个LOD模型保存在其自己的顶点缓冲区中。或者,根据绘制三角形或顶点的方式,您可以保留1个顶点缓冲区,并在绘制三角形时沿索引略过以改变质量。
例如,当您需要完整的细节时,可以渲染模型的每个顶点。当您需要一半的细节时,您将渲染所有其他顶点。
查看此处发布的一些链接。
LOD in modern games 始终阅读现代实践。