我想在GLSL着色器中模拟平面着色。通常我会通过使用flat
限定符传递法线来阻止片段着色器中的插值。
但是,flat
在GLSL 120上不可用。
如何在不复制顶点数据的情况下模拟它? (这不是不过早优化,而是验尸。)
答案 0 :(得分:2)
如果没有直接的硬件支持(假设支持GLSL 1.30+),您无法完全模拟flat
。以前的版本只提供全有或全无:所有属性都是内插的,或者都没有。这就是glShadeModel
的作用。
答案 1 :(得分:1)
为三角形的每个顶点传递相同的法线。
或查看glShadeModel(GL_FLAT)
是否会影响gl_Normal
内置属性。