2013-02-08 5 views
1

Я пытаюсь сделать свою собственную версию планетария на основе книги «Вверх и бег», и у меня возникает проблема при попытке сделать skybox.THREE.js Skybox не работает

Я использую Chrome, а консоль javascript вызывает ошибку «Uncaught TypeError: undefined не является функцией» в строке, где определяется материал.

Я пропустил какую-то библиотеку? Или это некоторые изменения в 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); 

ответ

10

Теперь

new THREE.ShaderMaterial() 

и

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

Up и запуск книги, которую вы используете, устарели.

Вместо этого найдите каталог примеров three.js. Существуют и другие способы создания skyboxes.

three.js r.55

+4

Пожалуйста, не забудьте «принять» ответы, нажав на галочку. Спасибо. – WestLangley

+3

что-то заставляет меня думать, что пользователь2052104 может не вернуться ... – Cabbibo

Смежные вопросы