当使用glDrawElements绘制对象时,是否可以在OpenGL中实现平面着色,如果是这样的话?如果可能的话,理想的方法是仅计算每个三角形的法线一次.
解决方案必须仅使用可编程管道(核心配置文件).
确实有一些方法可以解决这个问题而不会复制顶点,每个顶点都有一些限制(至少我可以通过有限的OpenGL体验来考虑这些限制).
我可以看到两个解决方案,可以为每个三角形的法线提供恒定值:
flat在着色器中声明输入,并通过glProvokingVertex选择哪个顶点给出其值; 快,但你会得到一个顶点的法线作为整个三角形的法线,这可能看起来不正确