码迷,mamicode.com
首页 > Web开发 > 详细

threejs学习笔记01

时间:2017-12-15 16:23:12      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:get   new t   anim   end   animation   java   相机   load   场景   

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>333</title>
    <style>
        html, body {
            margin: 0;
            padding: 0;
        }
        #three_canvas {
            position: absolute;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <canvas id="three_canvas"></canvas>

    <script src="js/three.js"></script>
    <script>
        //定义一些需要的变量
        var renderer, camera, scene, light, object;
        var width, height;
        //初始化
        function initRenderer(){
            width=document.getElementById(‘three_canvas‘).clientWidth;
            height=document.getElementById(‘three_canvas‘).clientHeight;
            renderer=new THREE.WebGLRenderer({
                //将canvas绑定到renderer
                canvas:document.getElementById(‘three_canvas‘)
            });
            renderer.setSize(width,height);//将渲染的大小设为canvas相同
            renderer.setClearColor(0xFFFFFF, 1.0);//设置默认颜色与透明度
        };
        //初始化场景
        function initScene(){
            scene = new THREE.Scene();
        };
        //初始化相机
        function initCamera(){
            //简单的正交投影相机,正对着视口中心,视口大小与canvas大小相同
            camera = new THREE.OrthographicCamera(width/-2,width/2,height/2,height/-2,1,1000);
            //设置相机的位置
            camera.position.x=0;
            camera.position.y=0;
            camera.position.z=200;
            //设置相机的上方向
            camera.up.x=0;
            camera.up.y=1;
            camera.up.z=0;
            //设置相机聚焦的位置(其实就是确定一个方向)
            camera.lookAt({
                x:0,
                y:0,
                z:0
            })
        };
        //该添加一个立方体到场景中了
        function initObject(){
            //创建一个边长为100的立方体
            var geometry = new THREE.CubeGeometry(100,100,100);
            object = new THREE.Mesh(geometry,new THREE.MeshNormalMaterial());
            //法向材质MeshNormalMaterial这样立方体每个面的颜色与这个面对着的方向是相关的,更便于观察/调试。
            //在这个简单的demo里我不打算添加光影效果,而法向材质对光也是没有反应的。
            scene.add(object);
        }
        //最后要动起来,创建一个动画循环
        function render(){
            // requestAnimFrame,它会自动在每次页面重绘前调用传入的函数。
            requestAnimationFrame(render);
            object.rotation.x +=0.05;
            object.rotation.y +=0.05;
            renderer.render(scene,camera);
        }
        //调用
        function threeStart(){
            initRenderer();
            initCamera();
            initScene();
            initObject();
            render();
        };
        window.onload=threeStart();
    </script>
</body>
</html>

  

threejs学习笔记01

标签:get   new t   anim   end   animation   java   相机   load   场景   

原文地址:http://www.cnblogs.com/Webyangbowen/p/8043467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!