我正在通過Oreilly的WebGL入門書中發現的練習。THREE.js - 無法讀取未定義的屬性'lib'(THREE.ShaderUtils.lib [「normal」])
以下行會導致運行時錯誤。我搜索了一下,沒有看到其他人有這個問題,所以我做錯了什麼?
var specularMap= THREE.ImageUtils.loadTexture("WebGLBook/images/earth_specular_2048.jpg");
var shader = THREE.ShaderUtils.lib[ "normal" ]; <-- fails
var uniforms = THREE.UniformsUtils.clone(shader.uniforms);
uniforms['tNormal'].texture = normalMap;
uniforms['tDiffuse'].texture = surfaceMap;
的注意線失敗W /以下錯誤:
Uncaught TypeError: Cannot read property 'lib' of undefined solar-system-spec-map.html:60
Earth.createGlobe solar-system-spec-map.html:60
Earth.init solar-system-spec-map.html:51
EarthApp.init solar-system-spec-map.html:33
(anonymous function) solar-system-spec-map.html:93
deferred.resolveWith jquery-1.6.4.js:1016
jQuery.extend.ready jquery-1.6.4.js:437
DOMContentLoaded
什麼也奇怪這是 「ShaderUtils」 不是three.js所文檔中列出... http://mrdoob.github.com/three.js/docs/55/
發生了什麼?
地獄呀,我知道它必須是這樣的東西。感謝dood! –
我遇到了同樣的問題; \t var uniforms = THREE.UniformsUtils.clone(shader.uniforms); \t \t uniforms ['tNormal']。texture = normalMap; .texture調用失敗。那也改變了嗎?如果是這樣,那麼最新的Three.js着色器教程在哪裏? –
在r55'THREE.ShaderUtils.lib [「normal」]'移到'THREE.ShaderLib [「normalmap」]''。 – mrdoob