2017-02-01 3 views
1

КОНТЕКСТThree.js - текстуры не загружаются

Я пытаюсь воссоздать пример, показанный here с помощью jsfiddle. Я использую этот код, чтобы загрузить массив текстур:

 var r = "https://github.com/timoxley/threejs/tree/master/examples/textures/cube/Park3Med/"; 
     var urls = [ 
      r + "px.jpg", r + "nx.jpg", 
      r + "py.jpg", r + "ny.jpg", 
      r + "pz.jpg", r + "nz.jpg" 
     ]; 

Я только пытаюсь воссоздать текстуру, а не слойные. Есть ли причина, почему это не будет работать, как я ее настроил?

ответ

3

Принятый ответ верен, указав ошибку, но пропустил простое решение. Вы можете загружать данные изображения с крестовым началом с помощью Three.js. Вам просто нужно настроить его правильно. Вот пример скрипку с исправлением: https://jsfiddle.net/1dy343xy/

Изменение кода:

var loader = new THREE.CubeTextureLoader(); 

    loader.setCrossOrigin('anonymous'); 

    var textureCube = loader.load(urls); 

отметить Также вы указывали на плохие URL. Вам нужно использовать git raw urls для того, что вы делаете, хотя я не знаю, встречает ли он git ToS.

+0

Благодарим вас за помощь в этом - оба решения работают, но этот выигрывает за гибкость. Последующие действия: есть ли причина, по которой вращение камеры не контролируется движением по мобильному телефону (я имею в виду на отдельном сайте, а не jsfiddle)? – Sekoul

+0

Я видел, как это реализовано здесь, но не рядом с движениями мыши: http://richtr.github.io/three.js/examples/misc_controls_deviceorientation.html – Sekoul

1

Это связано с безопасностью. Вы могли бы обслуживать свой проект на сервере apache или node. И у вас больше не будет этой проблемы.

+0

Спасибо, что указал мне в правильном направлении - есть ли обходной путь для этого? Можете ли вы немного разобраться? Самый близкий ответ, который я вижу, это, но не совсем понятно, какое решение: http://stackoverflow.com/questions/11753720/how-to-load-texture-in-jsfiddle – Sekoul

+0

Является ли это проблемой с перекрестным происхождением? Значит, он должен работать нормально, если все в одной области? – Sekoul

+1

Да, это связано с безопасностью. Не знаю, почему я проголосовал. Вы могли бы обслуживать свой проект на сервере apache или node. И у вас больше не будет этой проблемы. – Modig

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