关于three.js载入js格式模型的问题

先上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script src=".\three.js"></script>
    <script src="OrbitControls.js"></script>

    <style type="text/css">
        div#canvas-frame {
            border: none;
            cursor: pointer;
            width: 100%;
            height: 600px;
            background-color: #EEEEEE;
        }
    </style>

    <script type="text/javascript">
        var renderer;
        function initThree() {
            width = document.getElementById('canvas-frame').clientWidth;
            height = document.getElementById('canvas-frame').clientHeight;

            renderer = new THREE.WebGLRenderer({
                antialias : true
            });

            renderer.setSize(width, height);
            document.getElementById('canvas-frame').appendChild(renderer.domElement);
            renderer.setClearColor(0xFFFFFF, 1.0);
        }

        var camera;
        function initCamera() {
            camera = new THREE.PerspectiveCamera(45, width / height, 1, 10000);

            camera.position.x = 0;
            camera.position.y = 500;
            camera.position.z = 0;

//            camera.up.x = 0;
//            camera.up.y = 0;
//            camera.up.z = 1;

            camera.lookAt({
                x: 0,
                y: 0,
                z: 0
            })

        }

        var scene;
        function initScene() {
            scene = new THREE.Scene();
        }

        var light;
        function initLight() {
            scene.add(new THREE.AmbientLight(0x333333));
        }

        //load .js document
        var jsLoader;
        function loaderjs() {
            jsLoader = new THREE.JSONLoader();

            jsLoader.load( 'convert_js/2032_2.js', function( geometry ,materials) {

                var material = new THREE.MeshFaceMaterial(materials[0]);
                var object = new THREE.Mesh(geometry, material);

                object.scale.set(1, 1, 1);
                object.position.set(100,0,0);
                scene.add(object);
            } );
        }


        //load binary model

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

        function animation () {

            requestAnimationFrame(animation);
            render();

        }

        function threeStart() {
            initThree(); //创建渲染器并设置渲染参数
            initCamera();
            initScene();
            initLight();
            loaderjs();
            //renderer.clear();
            animation();
            var controls = new THREE.OrbitControls(camera);  //camera control
            controls.addEventListener('change', render);

        }

    </script>
</head>

<body οnlοad="threeStart();">
    <div id="canvas-frame"></div>
</body>
</html>

以上基于最新版three.js,经测试,能正确载入js文件。

但是依然存在问题:需要实时渲染requestanimationframe同时加入控件orbitcontrol才能再浏览器中显现。求大神答疑。











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值