Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   three.js: проблема с наложением текстуры (https://javascript.ru/forum/dom-window/46546-three-js-problema-s-nalozheniem-tekstury.html)

SVARAI 14.04.2014 17:36

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."
Что я только не перепробовал... В общем, я сдаюсь, что с этим делать не знаю. Помогите пожалуйста.

SVARAI 14.04.2014 17:41

а тут все пашет как надо!!((( http://threejs.org/examples/#webgl_geometry_cube

Erolast 14.04.2014 19:10

Ты, небось, грузишь из файловой системы? То есть, все ссылки у тебя - file://?

SVARAI 14.04.2014 19:12

файл лежит в одной папке со скриптом, я просто, как в коде пишу crate.gif

Erolast 14.04.2014 19:27

Вроде как оно не работает из файловой системы. Скачай denwer, подними сервер на локальной машине, работай через него - проблема должна решиться. Так или иначе, локальный сервер тебе в дальнейшей разработке все равно понадобится.

SVARAI 14.04.2014 19:35

Жалко, что все так хреново....

Erolast 14.04.2014 19:39

Ну почему же хреново? Конкретно денвер грузится, ставится и используется очень легко, он на то и заточен, а локальный сервер тебе в веб-программировании все равно будет нужен.

SVARAI 14.04.2014 19:41

Да я знаю, просто... Знаете, есть достаточно хорошие уроки по веб программированию от Никиты Северинова. Там все отлично работает. Локальный сервер... В прочем, ладно. Можно и так, тем более, что он уже стоит. Спасибо) Но все же, вариантов больше нет?

Erolast 14.04.2014 19:44

Цитата:

Знаете, есть достаточно хорошие уроки по веб программированию от Никиты Северинова. Там все отлично работает.
Всмысле, three.js отлично работает? Ну так он, наверное, локальным сервером пользуется?)

Цитата:

Но все же, вариантов больше нет?
Я вот не уверен на все 100% только потому, что сам не проверял.

Цитата:

Можно и так, тем более, что он уже стоит.
Ну так и в чем тогда проблема?)

Octane 14.04.2014 19:46

Смотря что ты в итоге хочешь получить, если автономное приложение, которое не требует дополнительной установки и настройки серверов, используй https://github.com/rogerwang/node-webkit, если же веб-приложение, то очевидно нужен HTTP-сервер.

SVARAI 14.04.2014 20:00

Забацаю на локальном серве ) А знает кто про физику, коллизии, ну точнее как их проверять в threejs ? Спасибо.

Erolast 14.04.2014 20:08

Ну, если тебе надо продвинутую физику - нужно к three.js подключать плагин physijs. Коллизии - http://stemkoski.github.io/Three.js/...Detection.html. Вообще, на http://stemkoski.github.io/Three.js/ очень много интересных демок.

SVARAI 14.04.2014 20:36

Как ни странно, на локальном сервере ситуация не изменилась

SVARAI 14.04.2014 20:59

Хочу еще подметить, что пример с кубом и текстурой, также не работает. Я про geometry/cube пример, входящий в thereejs r66 .

Erolast 15.04.2014 09:14

Так открываешь-то ты сайт как? Все так же, из файловой системы? То есть, ссылка на html-документ у тебя file://Диск:/расположение.html? Или http://localhost/расположение.html? Нужно второе.

SVARAI 15.04.2014 15:22

Все понял, сделаю!) Спасибо!

Mannarox 08.02.2015 12:25

Там проблема безопасности, вроде как браузер запрещает 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.