[英]How to use flat shading in OpenTK.Graphics.OpenGL4?
我需要在 OpenTK 中使用平面着色。
我知道 OpenGL (c++) 中有一个名为glShadeModel
,它在名为 ( GL.
) ShadeModel
,但它仅在 OpenTK.Graphics.ES11 中,而且它已经很老了。
我如何使用 OpenTK.Graphics.OpenGL4 做到这一点?
glShadeModel
已被Interpolation qualifiers取代。
但是,如果您使用的是兼容性配置文件OpenGL 上下文并且未使用着色器程序,则“桌面”OpenGL 中仍然支持glShadeModel
。 这意味着您需要使用立即模式,并且必须通过glBegin
/ glEnd
序列或固定函数属性进行glEnd
,而无需着色器程序。
如果您正在使用核心配置文件 OpenGL 上下文和/或着色器程序,并且想要实现“平面”着色,则必须对顶点着色器输出变量使用flat
插值限定符。 例如:
顶点着色器
#version 460
// [...]
in vec3 aColor;
flat out vec3 vColor;
void main()
{
vColor = aColor;
// [...]
}
片段着色器
#version 460
flat in vec3 vColor;
out vec4 fragColor;
void main()
{
fragColor = vec4(vColor, 1.0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.