我正在研究一個需要多種材質的多個物體的遊戲場景。我在網上廣泛搜索,但我找不到任何滿意的解決方案。OpenGL正確實施多種材質
我的場景將會像一條河流流過,而且那裏的材質無論如何都需要單獨的着色器(它會將許多鏡面反射和法線貼圖合併成一條看起來像河流的地圖),那麼會有一個地形混合兩個草地和沙地紋理)需要另一個着色器。還有一個玩家的手和愛情和所有。
編輯:基本上我想找出製作最靈活的多種材質/着色器實現的最有效方法。
簡而言之,周圍有很多複雜的物體需要不同的着色器。他們的人數並不多,但卻有很多複雜性。
所以使用glUseProgram()
很多時候dosn't似乎是最聰明的想法。也有很多着色器代碼可以像點光源計算一樣通用。製作通用着色器並使用if和狀態制服可能有效,但仍需要不同的着色器來處理河流,同樣也需要使用不同的材質。
我基本上不了解這樣一個通用系統的組織和實現。我已經使用了像Unreal或Blender這樣的引擎,它們使用基於節點的材料,並且允許定製每一種材料而沒有太多滯後。這樣的系統如何轉化爲基本的GPU代碼?
要麼你的問題很廣泛,要麼只是不清楚。我不確定你在問什麼。 –
我想你需要一個建立在opengl之上的遊戲引擎,是java所必需的? – niceman
@NicolBolas問題:我如何有效地實現多個材質,否則需要單獨的着色器? – HuraToTheRescue