在本 OpenGL ES 教程中,解释了优化模型的技术,其中之一是使用三角形带定义网格,使用“退化”三角形结束一个带并开始另一个带而不结束图元。 http://www.learnopengles.com/tag/degenerate-triangles/
但是,本指南非常针对移动平台,我想知道这项技术是否适用于现代桌面硬件。具体来说,它会伤害吗?它会导致图形伪影或降低性能(反对将 strip 分割成单独的基元吗?)
如果它不会导致伪影并且至少表现良好,我打算使用它只是因为它使我想绘制的某个网格中的顶点组织起来更容易。
最佳答案
退化三角形在所有平台上都运行良好。我知道一个旧的固定功能控制台在退化的三角形中苦苦挣扎,但任何模糊现代的东西都可以。减少绘制调用的次数总是好的,我当然会使用退化而不是多次调用 glDrawArrays。
然而,通常表现更好的替代方案是三角形列表的索引绘制。使用三角形列表,您可以非常灵活地重新排列三角形,以最大限度地利用转换后缓存。转换后缓存是通过顶点着色器的最后几个顶点的硬件缓存,GPU 可以发现您是否重新发布了相同的顶点并跳过该顶点的整个顶点着色器。
关于c++ - OpenGL:三角形带中的退化三角形在 OpenGL-ES 之外是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37145968/