[英]When to use GLSL shaders in OpenGL in a game?
我正在學習GLSL以及如何進行變換和照明等,但是我只有1個着色器程序正在應用到所有事物。 我不確定是否應該為游戲中的每個對象(例如盒子或玩家模型)使用不同的程序,或者是否應該為所有對象使用一個着色器。
我應該如何使用着色器? 通常如何使用它們?
謝謝。
着色器有點像在GPU而不是CPU上運行的功能。 擁有一個可以完成所有工作的着色器就像擁有一個可以完成所有操作的功能; 也就是說,通常到處都是巨大的,無法維護的混亂局面。 也就是說,為每個對象使用一個着色器通常是過大的,因為可以使用相同的着色器來渲染許多對象,只是使用不同的模型或紋理。
例如,您可以使用一個可以進行照明,法線貼圖等的着色器來渲染世界對象。但是,HUD元素不需要任何這些效果。 通常將它們繪制為未照明的漫反射紋理,因此您不會使用對它們進行照明的着色器。
我會說一個好規則是,如果您在着色器中編寫了很多分支( if
, switch
等),特別是如果條件基於uniform
s,那么可能是時候將其拆分了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.