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, время: 12:40. |