three.js: проблема с наложением текстуры
Здравствуйте! Вот, изучаю threejs. Спрограммировал данную демку: increw.ru/ft . Решил попробовать наложить текстуру на кубы, воспользовался кодом из примеров:
var camera, scene, renderer; var mesh; init(); animate(); function init() { renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); // camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 ); camera.position.z = 400; scene = new THREE.Scene(); var geometry = new THREE.BoxGeometry( 200, 200, 200 ); var texture = THREE.ImageUtils.loadTexture( 'crate.gif' ); texture.anisotropy = renderer.getMaxAnisotropy(); var material = new THREE.MeshBasicMaterial( { map: texture } ); mesh = new THREE.Mesh( geometry, material ); scene.add( mesh ); // window.addEventListener( 'resize', onWindowResize, false ); } function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize( window.innerWidth, window.innerHeight ); } function animate() { requestAnimationFrame( animate ); mesh.rotation.x += 0.005; mesh.rotation.y += 0.01; renderer.render( scene, camera ); } Также, по различным статьям и урокам я пытался наложить текстуру сам, но всегда, постоянно выдает ошибку в консоль: "Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at may not be loaded." Что я только не перепробовал... В общем, я сдаюсь, что с этим делать не знаю. Помогите пожалуйста. |
а тут все пашет как надо!!((( http://threejs.org/examples/#webgl_geometry_cube
|
Ты, небось, грузишь из файловой системы? То есть, все ссылки у тебя - file://?
|
файл лежит в одной папке со скриптом, я просто, как в коде пишу crate.gif
|
Вроде как оно не работает из файловой системы. Скачай denwer, подними сервер на локальной машине, работай через него - проблема должна решиться. Так или иначе, локальный сервер тебе в дальнейшей разработке все равно понадобится.
|
Жалко, что все так хреново....
|
Ну почему же хреново? Конкретно денвер грузится, ставится и используется очень легко, он на то и заточен, а локальный сервер тебе в веб-программировании все равно будет нужен.
|
Да я знаю, просто... Знаете, есть достаточно хорошие уроки по веб программированию от Никиты Северинова. Там все отлично работает. Локальный сервер... В прочем, ладно. Можно и так, тем более, что он уже стоит. Спасибо) Но все же, вариантов больше нет?
|
Цитата:
Цитата:
Цитата:
|
Смотря что ты в итоге хочешь получить, если автономное приложение, которое не требует дополнительной установки и настройки серверов, используй https://github.com/rogerwang/node-webkit, если же веб-приложение, то очевидно нужен HTTP-сервер.
|
Забацаю на локальном серве ) А знает кто про физику, коллизии, ну точнее как их проверять в threejs ? Спасибо.
|
Ну, если тебе надо продвинутую физику - нужно к three.js подключать плагин physijs. Коллизии - http://stemkoski.github.io/Three.js/...Detection.html. Вообще, на http://stemkoski.github.io/Three.js/ очень много интересных демок.
|
Как ни странно, на локальном сервере ситуация не изменилась
|
Хочу еще подметить, что пример с кубом и текстурой, также не работает. Я про geometry/cube пример, входящий в thereejs r66 .
|
Так открываешь-то ты сайт как? Все так же, из файловой системы? То есть, ссылка на html-документ у тебя file://Диск:/расположение.html? Или http://localhost/расположение.html? Нужно второе.
|
Все понял, сделаю!) Спасибо!
|
Там проблема безопасности, вроде как браузер запрещает JavaScriptу доступ к локальным файлам на компьютере, но можно отключить эту опцию безопасности. Прописав в ярлыке --allow-file-access-from-files
У меня в свойствах ярлыка Chrome, где Объект прописано : "C:\Users\Anton\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --allow-file-access-from-files Сохрани, выключи браузер и запусти браузер с этого ярлыка. Но в других браузерах, если не ошибаюсь, другим способом это делается |
Часовой пояс GMT +3, время: 09:16. |