Up and runningという本に基づいて独自のバージョンのプラネタリウムを作ろうとしていますが、スカイボックスを作ろうとすると問題が発生します。
Chrome を使用していますが、javascript コンソールで、マテリアルが定義されている行に「Uncaught TypeError: undefined is not a function」というエラーが表示されます。
いくつかのライブラリがありませんか? それとも、three.js の変更ですか? r55を使用しています。コードは次のとおりです。
ありがとうございました!
var urlPrefix = "images/skybox/";
var urls = [
urlPrefix + "skyboxmid.jpg", urlPrefix + "skyboxback.jpg",
urlPrefix + "skyboxleft.jpg", urlPrefix + "skyboxfront.jpg",
urlPrefix + "skyboxright.jpg", urlPrefix + "skyboxtop.jpg" ];
var textureCube = THREE.ImageUtils.loadTextureCube( urls );
var shader = THREE.ShaderLib['normalmap'];
shader.uniforms["tNormal"].texture = textureCube;
var material = new THREE.MeshShaderMaterial({
fragmentShader : shader.fragmentShader,
vertexShader : shader.vertexShader,
uniforms : shader.uniforms
});
skybox = new THREE.Mesh( new THREE.CubeGeometry( 100000, 100000, 100000, 1, 1, 1, null, true ), material );
scene.addObject( skybox );