第一個問題是如何從單個光源獲取,使用多個光源,而不使用多個片段着色器。GLSL法線映射着色器的多個光源和實現細節
我的直覺是,每次運行着色器計算都需要光源座標以及一些顏色信息,我們可以通過循環計算n個光源。
如何將多個燈光傳遞到着色器程序?我是否使用一系列制服?我的猜測是用每個光源的座標傳遞一組制服,然後指定有多少個光源,然後設置一個最大值。
我可以爲着色器程序調用getter或setter方法嗎?而不是僅僅操縱全局變量?
我使用本教程和libGDX實現學習如何做到這一點: https://gist.github.com/mattdesl/4653464
'com.badlogic.gdx.graphics.g3d.shaders.DefaultShader'處理來自環境的多個燈光。該軟件包還包含一個默認的垂直/碎片着色器。可能會給你一些啓示。 – cfrick 2014-10-30 10:29:53