1

我正在尝试根据《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 ); 
4

1 回答 1

10

就是现在

new THREE.ShaderMaterial()

shader.uniforms["tNormal"].value = textureCube;

您正在使用的Up and Running手册已过期。

而是搜索 three.js 示例目录。还有其他创建天空盒的方法。

三.js r.55

于 2013-02-08T16:08:20.697 回答