在GLSL 120中模拟GLSL flat限定符

时间:2012-03-15 11:02:33

标签: opengl glsl

我想在GLSL着色器中模拟平面着色。通常我会通过使用flat限定符传递法线来阻止片段着色器中的插值。 但是,flat在GLSL 120上不可用。

如何在不复制顶点数据的情况下模拟它? (这不是过早优化,而是验尸。)

2 个答案:

答案 0 :(得分:2)

如果没有直接的硬件支持(假设支持GLSL 1.30+),您无法完全模拟flat。以前的版本只提供全有或全无:所有属性都是内插的,或者都没有。这就是glShadeModel的作用。

答案 1 :(得分:1)

为三角形的每个顶点传递相同的法线。

或查看glShadeModel(GL_FLAT)是否会影响gl_Normal内置属性。