• threejs学习笔记01


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>333</title>
        <style>
            html, body {
                margin: 0;
                padding: 0;
            }
            #three_canvas {
                position: absolute;
                 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>
    

      

    学习是对自己负责,自己是职业发展的负责人!
  • 相关阅读:
    如何阅读一个Web项目 【转载】
    线程的状态与基本操作
    java多线程通信方式之一:wait/notify
    synchronized的简单理解
    每月IT摘录201807
    springmvc 请求无法到达controller,出现404
    android开发 java与c# 兼容AES加密
    android 开发不能创建目录
    mysql存储过程出现OUT or INOUT argument 10 for routine
    android退出登陆后,清空之前所有的activity,进入登陆主界面
  • 原文地址:https://www.cnblogs.com/Webyangbowen/p/8043467.html
Copyright © 2020-2023  润新知