簡體   English   中英

如何在 OpenTK.Graphics.OpenGL4 中使用平面着色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM