我正在開發webgl中的卷繪製應用程序,最後我要做的是創建光照模型。我已準備好了一切,但我無法在場景中找到燈光位置。我加入光這樣:自定義着色器中的光線位置(着色器材質)
var light = new THREE.DirectionalLight(0xFFFFFF, 1);
light.position.set(0.5, 0.5, 0.1).normalize();
camera.add(light);
附上光相機,因爲我需要輕靜若我與移動相機。 問題是,我使用ShaderMaterial(自定義着色器)。我無法找到代表明亮位置的任何統一變量。我已搜索,我應該設置:
material.lights = true;
但它造成的錯誤。我試圖在頂點着色器中添加常量向量,但我需要乘以反向視圖矩陣(如果我是正確的)。但GLSL 1.0不支持反轉功能。我有想法通過統一發送逆向視圖矩陣着色器,但我不知道我在哪裏可以得到在JS中的場景視圖矩陣。
感謝您的幫助。我已經試過各種:(...
再見。
我已經將相機添加到了場景中,就像你寫的一樣。問題仍然存在。還有就是堆的錯誤: 遺漏的類型錯誤:無法設置未定義three.js所的特性 '值':23486 refreshUniformsLights three.js所:23486個 setProgram three.js所:23204個 渲染three.js所:21576 renderObjects three.js所:22248 render Three.js:22122 refreshScene – Xrew 2013-03-27 15:12:20
好的,我有更多的問題...我必須從蘭伯特材料複製制服變量:-)錯誤消失.. – Xrew 2013-03-27 16:29:46
我已經改變了燈聚光燈和打印製服對象。有可變的spotLightPosition ...但如果我想從着色器中的這個制服重新出發,比錯誤發生......任何想法? – Xrew 2013-03-27 16:39:03