【问题标题】:Threejs animation issueThreejs动画问题
【发布时间】:2018-08-27 05:51:06
【问题描述】:

每次运行 animate 函数时,尝试使用 Threejs 将 STL 模型加载到画布中都会给我一个错误;

未捕获的类型错误:无法读取未定义的属性“渲染” 在动画(

我知道 STL 文件很好用。

这是我的代码;

    // Globals 
var scene, camera, light, renderer;

 init();
 animate();


  // Sets up the scene.
  function init() {

 // Create the scene and set the scene size.
scene = new THREE.Scene();

//Scene Lighting
scene.add( new THREE.AmbientLight( 0x000000 ) );

//Renderer
var renderer = new THREE.WebGLRenderer({canvas: document.getElementById('modelCan'), antialias:true});
renderer.setClearColor(0xfffffff);
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize( window.innerWidth/3, window.innerHeight/3 );

//Camera
  var camera = new THREE.PerspectiveCamera(1000, window.innerWidth/window.innerHeight, 1, 10000);
  scene.add(camera);
//Camera Lightning
  var light = new THREE.PointLight( 0xffffff, 1);
      camera.add( light );

     var loader = new THREE.STLLoader();
                loader.load( 'Sac_Fuel_Tank.stl', function ( geometry ) {

                    var material = new THREE.MeshLambertMaterial( { color: 0x286617,
                     wireframe: true 

                 } );

                    var mesh = new THREE.Mesh( geometry, material );
                        mesh.rotation.x = Math.PI / 2;
                        mesh.position.set(20,10,-10);
                        //  mesh.rotation.z = Math.PI;
                    scene.add( mesh );


                } );
                controls = new THREE.OrbitControls(camera, renderer.domElement);

}


  function animate() {

 // Read more about requestAnimationFrame at http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/
 requestAnimationFrame(animate);

 // Render the scene.
 renderer.render(scene, camera);
 controls.update();

}

那我做错了什么?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您必须在创建渲染器时删除 var 关键字。做吧:

    renderer = new THREE.WebGLRenderer( { canvas: document.getElementById('modelCan'), antialias:true } );
    

    【讨论】:

    • 很好 :) 我忽略了它。 cameralight 也是如此。
    • 只要不使用dampingautoRotate等功能,就无需在动画循环中更新OrbitControls
    猜你喜欢
    • 2014-09-23
    • 2013-12-31
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2019-07-10
    相关资源
    最近更新 更多