Mar*_*eIV 5 wireframe edges opengl-es-2.0
我依稀记得在 OpenGL 中看到过一些东西(不是 ES,当我遇到这个时,它仍然是 iPhone 上的 v1.0,这就是我从未使用它的原因)让我指定我的多边形的哪些边被认为是轮廓与那些组成面部的内部。因此,这与整个模型的轮廓(我知道如何做)不同,而是平面的轮廓及其所有三角形基本上混合成一个多边形。例如,在一个由 tris 组成的立方体中,每个面实际上是两个 tris。我想渲染正方形的轮廓,而不是脸上的对角线。六边形也是一样。这需要四个tris,但面部轮廓只需要一个。
现在是的,我知道我可以简单地测试所有边,看看它们是否共享共面,但我可以发誓我记得在定义三网格数据时看到某处,你可以说'这条线勾勒出一个面,而这条线勾勒出一个面一个在一张脸里面。这样在渲染时,你可以设置一个标志,基本上说“给我一个线框,但只有完整面边缘周围的线,而不是组成它们的三边形。”
顺便说一句,我的目标是所有支持 OpenGL ES 2.0 的平台,但我的开发平台是 iOS。同样,这个我很确定最初是在 OpenGL 中,一旦着色器出现,它可能已经贬值,但我什至找不到这个功能的参考来检查是否是这种情况。
我现在知道的唯一方法是拥有一组顶点,但有两组独立的索引……一组用于渲染 tris,另一组用于渲染面的线框。这是一个真正的痛苦,因为我最终手动编写了很多代码,再次,我 99% 确定您可以在渲染线条时定义。
OpenGL ES 不支持 GL_QUADS、glEdgeFlag 和 glPolygonMode。
您可以使用 LINES 来绘制线框:要获得隐藏线,首先绘制黑色实心三角形(启用 DEPTH),然后使用 GL_LINES 绘制您感兴趣的边缘。
| 归档时间: |
|
| 查看次数: |
10583 次 |
| 最近记录: |