Three.js Texture loading

心已入冬 提交于 2021-01-28 09:58:43

问题


I am starting during this days with Three.js and it's very cool. Now i would like to load a texture and apply it to a simple sphere. My problem is that when i open the browser page i get this error. I don't know how to solve this problem.

Code

window.onload = Init;

var scene;
var camera;
var renderer;


function render() {
   renderer.render(scene, camera);
   requestAnimationFrame(render);
}




function Init() {
   scene = new THREE.Scene();
   camera = new THREE.PerspectiveCamera(75, window.innerWidth /window.innerHeight, 0.1, 1000);
   renderer = new THREE.WebGLRenderer();



  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.setClearColor(0xeeeeee, 1);

  camera.position.set(15, 13, 12);
  camera.lookAt(scene.position);

  var cubeGeometry = new THREE.SphereGeometry(5, 30, 30);




  var loader = new THREE.TextureLoader();
  loader.load("texture/earth.jpg", function(texture) {
      var material = new THREE.MeshLambertMaterial({ map: texture });
      var sphere = new THREE.SphereGeometry(5, 30, 30);
      var mesh = new THREE.Mesh(sphere, material);
      scene.add(mesh);
  });
  var light = new THREE.SpotLight(0xffffff);
  light.position.set(10, 20, 20);
  scene.add(light);


  document.body.appendChild(renderer.domElement);

  render();
}

回答1:


Three.js is attempting to load the image from the filesystem, as evidenced by the file:// URL in your screenshot. This is prohibited by default in modern browsers, though there are a couple ways around it:

  • (Recommended) Run your code from a local HTTP server. If you have Python installed, run python -m SimpleHTTPServer from the directory of your project to spin up a simple server.
  • (Not recommended) Launch a web browser with local file access enabled (e.g. --allow-file-access-from-files in Chromium). This is highly insecure, do not surf around in a browser with with this setting active.


来源:https://stackoverflow.com/questions/43417910/three-js-texture-loading

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!