2013-07-17 4 views
0

구체가 느슨해지면서 ThreeJS의 텍스처에 텍스처를 매핑 할 때. 대신 읽는 consol 오류가 발생합니다. Uncaught TypeError : 정의되지 않은 index.html의 'add'메서드를 호출 할 수 없습니다. 28 및 Cross-Origin 리소스 공유 정책에 의해 원본 이미지 건너 뛰기가 거부되었습니다. 이미지는 텍스처 매핑을 시도하는 다른 인스턴스에서 작동하기 때문에 올바른 크기와 해상도입니다. 그러나 여기서는 작동하지 않습니다. 내가지도를 적용하는 방법에 문제가 있어야합니다. 나는 자바 스크립트와 ThreeJS에 익숙하지 않으므로 나와 함께 감당해야한다. 고맙습니다.ThreeJS의 구체에 텍스처 매핑

<body> 
    <div id="container"></div> 
    <script src="javascript/mrdoob-three.js-ad419d4/build/three.js"></script> 
    <script defer="defer"> 
     // renderer 
     var renderer = new THREE.WebGLRenderer(); 
     renderer.setSize(window.innerWidth, window.innerHeight); 
     document.body.appendChild(renderer.domElement); 

     // camera 
     var camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 1, 1000); 
     camera.position.z = 500; 

     // material 
     var material = new THREE.MeshLambertMaterial({ 
     map: THREE.ImageUtils.loadTexture('images/physicalworldmapcolor.jpg') 
     }); 

     // add subtle ambient lighting 
     var ambientLight = new THREE.AmbientLight(0x000044); 
     scene.add(ambientLight); 

     // directional lighting 
     var directionalLight = new THREE.DirectionalLight(0xffffff); 
     directionalLight.position.set(1, 1, 1).normalize(); 
     scene.add(directionalLight); 

     // scene 
     var scene = new THREE.Scene(); 

     // sphere 
     // the first argument of THREE.SphereGeometry is the radius, 
     // the second argument is the segmentsWidth 
     // the third argument is the segmentsHeight. 

     var sphere = new THREE.Mesh(new THREE.SphereGeometry(150, 70, 50), 
      new THREE.MeshNormalMaterial(material)); 
     sphere.overdraw = true; 
     scene.add(sphere); 

     renderer.render(scene, camera); 
    </script> 

답변

1

제공하신 코드에 많은 오류가 있습니다. 단지에서 기본 예제를 확인 : 스크립트가 렌더 루프를 빠져 https://github.com/mrdoob/three.js/

, 카메라는 Three.Scene는, 현장에 추가되지 않습니다() 생성자가 이미에 "장면"객체를 추가 한 후 호출됩니다. 그런 다음 MeshNormalMaterial()을 사용하여 다른 재질로 둘러 쌉니다. 이것은 작동하지 않을 것입니다. Three.Mesh (SphereGeometry (...), material). "overdraw"는 구체적인 속성이므로 구체를해야합니다. 오버 드로. 하지만 난 단지 CSS 캔버스 렌더러 물건에 영향을 미치고 난 당신이 교차 원점 오류에 관한 WebGLRenderer

를 사용하는 경우는 어떤 의미가 있는지 모르겠습니다 초과 인출 생각, 여기에 읽기 : https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally