Не удалось импортировать 3D-объект через три. js - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь следовать этому руководству , чтобы импортировать windmill.obj в ТРИ. js. Но у меня есть «THREE.Object3D.add: объект не является экземпляром THREE.Object3D».

Как видите, cube может отображаться, но windmill.obj не отображается.

Есть идеи, почему учебник может импортировать файл без ошибок, но тот же файл не распознается как THREE.Object3D в моем коде? Спасибо

<body>

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r79/three.min.js"></script>


<script type="module">
import {OrbitControls} from 'https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/controls/OrbitControls.js';
import {OBJLoader2} from 'https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/loaders/OBJLoader2.js';


let scene, renderer, camera
let cube
let rotateHeadOffset = 0


function init() {

  scene = new THREE.Scene()
  renderer = new THREE.WebGLRenderer()
  renderer.setSize(window.innerWidth, window.innerHeight)
  document.body.appendChild(renderer.domElement)

  camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 100)
  camera.position.set(10, 10, 10)
  camera.lookAt(scene.position)

  // cube
  cube = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1))
  scene.add(cube)

  // instantiate the loader
  let loader = new OBJLoader2();
  function callbackOnLoad ( object3d ) {
    scene.add( object3d );
  }
  loader.load("https://threejsfundamentals.org/threejs/resources/models/windmill/windmill.obj", callbackOnLoad, null, null, null );

}

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

init()
render()

</script>
</body>
...