1
因此,對於我的地形,我有着色器將多個紋理混合在一起(如草,沙,岩石)。這一切都很好,但唯一的問題是着色器與Three.js照明引擎不兼容,所有頂點只是亮起。我可以手動計算一些照明,比如太陽/月亮,但如果我可以在着色器中使用Three.js照明引擎,那將會很不錯。有沒有一種方法可以將例如lambert材質着色器(使用Three.js照明)與我的自定義着色器?保持默認照明的地形着色器
因此,對於我的地形,我有着色器將多個紋理混合在一起(如草,沙,岩石)。這一切都很好,但唯一的問題是着色器與Three.js照明引擎不兼容,所有頂點只是亮起。我可以手動計算一些照明,比如太陽/月亮,但如果我可以在着色器中使用Three.js照明引擎,那將會很不錯。有沒有一種方法可以將例如lambert材質着色器(使用Three.js照明)與我的自定義着色器?保持默認照明的地形着色器
你可以做的是將ShaderMaterial.lights
屬性設置爲true
。您仍然必須自己處理照明計算,但是您可以通過制服訪問您創建的燈光。
見,例如,http://mrdoob.github.com/three.js/examples/webgl_materials_normalmap.html
示例源:https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLShaders.js
three.js所r.56
請記住通過單擊選中標記爲 「接受」 的答案。謝謝。 – WestLangley 2013-05-02 07:15:31