как использовать three.js sky в кузнице

Я хочу создать сцену неба в средстве просмотра кузницы, я узнаю, как -three-js">Как вы можете добавить текст в Forge Viewer с помощью three.js?Поэтому я использую threejs-full-es6 для импорта неба, а затем новое небо, но когда я добавляю объект неба в сцену. Он сообщает об ошибках: (THREE.Object3D.add: объект не является экземпляром THREE.Object3D). Я нашел новое небо таким образом, что объект отличается от commen three.js. При импорте неба из threejs-full-es6 объект представляет собой только сообщение сетки. .png" rel="nofollow noreferrer">введите здесь описание изображения three.js:   введите здесь описание изображения

import { Sky,SphereBufferGeometry} from './Three.es.min';

initSky() {
  var sky, sunSphere;
  var scene = viewer.impl.scene;
  sky = new Sky();
  scene.add( sky );
  // Add Sun Helper
  sunSphere = new THREE.Mesh(
      new SphereBufferGeometry( 20000, 16, 8 ),
      new THREE.MeshBasicMaterial( { color: 0xffffff } )
  );
  sunSphere.position.y = - 700000;
  sunSphere.visible = false;
  scene.add( sunSphere );

  /// GUI

  var effectController  = {
      turbidity: 10,
      rayleigh: 2,
      mieCoefficient: 0.005,
      mieDirectionalG: 0.8,
      luminance: 1,
      inclination: 0.49, // elevation / inclination
      azimuth: 0.25, // Facing front,
      sun: ! true
  };

  var distance = 400000;

  function guiChanged() {

      var uniforms = sky.uniforms;
      uniforms.turbidity.value = effectController.turbidity;
      uniforms.rayleigh.value = effectController.rayleigh;
      uniforms.luminance.value = effectController.luminance;
      uniforms.mieCoefficient.value = effectController.mieCoefficient;
      uniforms.mieDirectionalG.value = effectController.mieDirectionalG;

      var theta = Math.PI * ( effectController.inclination - 0.5 );
      var phi = 2 * Math.PI * ( effectController.azimuth - 0.5 );

      sunSphere.position.x = distance * Math.cos( phi );
      sunSphere.position.y = distance * Math.sin( phi ) * Math.sin( theta );
      sunSphere.position.z = distance * Math.sin( phi ) * Math.cos( theta );

      sunSphere.visible = effectController.sun;

      sky.uniforms.sunPosition.value.copy( sunSphere.position );

      renderer.render( scene, camera );

 }



  guiChanged();

}

person weijie    schedule 16.07.2018    source источник
comment
это дубликат stackoverflow.com/a/45135420/4838205, который указывает на forge.autodesk.com/blog/ ?   -  person Augusto Goncalves    schedule 17.07.2018
comment
Я знаю этот способ, но я хочу попробовать функцию Sky в three.js   -  person weijie    schedule 22.07.2018