2013-03-13 25 views
1

因此,對於我的地形,我有着色器將多個紋理混合在一起(如草,沙,岩石)。這一切都很好,但唯一的問題是着色器與Three.js照明引擎不兼容,所有頂點只是亮起。我可以手動計算一些照明,比如太陽/月亮,但如果我可以在着色器中使用Three.js照明引擎,那將會很不錯。有沒有一種方法可以將例如lambert材質着色器(使用Three.js照明)與我的自定義着色器?保持默認照明的地形着色器

回答

2

你可以做的是將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

+0

請記住通過單擊選中標記爲 「接受」 的答案。謝謝。 – WestLangley 2013-05-02 07:15:31