Почему не удаётся загрузить текстуру управляемого куба с компьютера?
Измучился пробовать, но так и не нашёл почему не грузится с компьютера текстура, только из сети.
Если посетителей будет много, подчищу код. А пока, извините,не заметил, что черновик. Можно поиграться с кубиком всеми кнопками и колёсиком мыши: лев. Вращает, колесо приближает, правая переносит в сторону. Буду благодарен тем , кто попробует у себя вставлять имя файла вместо URL текстуры и расскажет о результате.
<!DOCTYPE html>
<html>
<head>
<!meta charset="utf-8">
<title>Текстура куба</title>
<style>
body {
margin: 0;
overflow: hidden;
}
canvas {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/three@0.128.0/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
<script>
let tt=" колесо=размер / "
document.write("левой крутить можно,",tt, " правой сдвинуть" ) ;
let scene = new THREE.Scene();
let camera = new THREE.PerspectiveCamera(15, window.innerWidth/window.innerHeight, 0.1, 1000);//размер куба колёсиком / 0.5
camera.position.set(0, 0, 5);// вбухать сюда цикл и менять положение камеры, увеличить куб-колёсиком!
let renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
let controls = new THREE.OrbitControls(camera, renderer.domElement);
let textureLoader = new THREE.TextureLoader();
let texture1 = textureLoader.load('https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/An_example_of_texture.jpg/120px-An_example_of_texture.jpg?20100414131741'); // Вот здесь надо пробовать вставить название файла картинки
let texture2 = textureLoader.load('https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/An_example_of_texture.jpg/800px-An_example_of_texture.jpg?20100414131741');
//let texture = textureLoader.load('https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/An_example_of_texture.jpg/120px-An_example_of_texture.jpg?20100414131741');
//https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/An_example_of_texture.jpg/800px-An_example_of_texture.jpg?20100414131741');
//https://www.meme-arsenal.com/memes/c22378ade797ced2cc3011f0fa456937.jpg');//textures/colorPI.jpgэту ссылку поменять (работает только из сети)
//setTimeout(() => animate , 1000, 'Привет' , 'Привет2');
let texture ;
//let geometry ;= new THREE.BoxGeometry();
let material
//let cube ;= new THREE.Mesh(geometry, material);
function mate( ) {
tt = "крутить";}
texture = texture1;
let geometry = new THREE.BoxGeometry();
material = new THREE.MeshBasicMaterial({map: texture});
let cube = new THREE.Mesh(geometry, material);
scene.add(cube);
//setTimeout(()=>", 5000 , "Привет");document.write(tt);
//let material = new THREE.MeshBasicMaterial({map: texture});
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.0011;
cube.rotation.y += 0.0011;
renderer.render(scene, camera);
}
tt="всеми кнопками мыши двигать ";
texture = texture2;
mate(tt);
animate();
//alert(tt);
tt=tt+ " и колёсиком";
//alert(tt);
</script>
</body>
</html>
|
Там возникает ошибка CORS
Access to image at '????_texture.jpg' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome, https, chrome-untrusted. Библиотека считывает картинку в элемент IMG с параметром crossorigin="anonymous" Если сервер, с которого считывается картинка не предоставит требуемые заголовки, то доступ к такой картинке будет ограничен. https://developer.mozilla.org/ru/doc...tr-crossorigin Но при считывании локальной картинки никакого сервера нет. Поэтому нет и заголовков. |
Есть способ запустить Three.js локально. Я пробовал - работает. https://customizer.github.io/three.j...hree.js-ru.htm
|
Цитата:
Конкретно для себя любимого это можно сделать. Но в общем случае это плохой "выход". |
Благодарю, что откликнулись и дали исчерпывающие ответы
Цитата:
Сейчас оказалось не найти , даже, места, где свои фотки разместить, чтобы забирались по ссылке(Гугл фото не позволяет это делать). И как корректно загрузить себе эти библиотеки, я их просто копировал с ХТМЛ странички. Так исказились или можно пробовать и будут работать? |
Цитата:
|
| Часовой пояс GMT +3, время: 08:25. |