我正在从 obj、colladae 文件加载模型,如果在导出时所有面都是完美的四边形,则网格的各个面不会三角化以节省内存。
现在我知道这对大多数模型都不起作用,但对于某些网格来说,说一个立方体,我想让它工作的每个面都可以避免一些重复。
我有 2 个使用三角形带或 gl_quads 的选项。
三角形条带的问题是相邻面是连接的,因此它们之间不可能有一些间隙,即使对于一个简单的立方体,输出在外面看起来也是正确的,但是当我进入立方体时,即使启用了背面剔除,我也会看到一些连接立方体正面和背面的杂散三角形基本上是一团乱麻。
但是使用 gl_quads 一切正常,但文档说 quads 在 3.1 中已弃用 [即使我仍然可以使用它 gl 4.0] 所以我的问题是
我是否可以继续使用 gl_quads 从文件中加载网格而不会在将来遇到问题,或者如何在没有整个连接问题的情况下用三角形条替换它?
我发现的一个解决方案是在 for 循环中为每 4 个顶点发出一次绘制调用,但这对于大型网格的性能来说是很糟糕的。
有什么建议么?