<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          three.js 的簡單實例

          2019-9-26    seo達人

          three.js 的簡單實例

          三大主件: 渲染器、場景、相機



          思想核心: 相機獲取到場景內顯示的內容, 然后再通過渲染器渲染到畫布上面



          渲染器: 實例化渲染器的同時生成的一個 Canvas 畫布, 之后將這個畫布添加到了 DOM 當中



          場景: 場景只是一個容器, 顯示的內容需要進行添加, 添加一個內容稱作一個網格, 每個網格基本上包括幾何體和材質, 網格也稱之為模型



          <!DOCTYPE html>

          <html>



          <head>

          <meta charset="utf-8" />

          <title>three</title>

          <style>

          body {

          margin: 0;

          }



          canvas {

          width: 100%;

          height: 100%;

          display: block;

          }

          </style>

          </head>



          <body onload="init()">

          <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>

          <script type="text/javascript" src="js/three.min.js"></script>

          <script type="text/javascript" src="js/stats.min.js"></script>

          <script type="text/javascript" src="js/dat.gui.min.js"></script>

          <script>

          //聲明一些全局變量

          var renderer, camera, scene, geometry, material, mesh, stats, rotate = true;



          //初始化渲染器

          function initRenderer() {

          renderer = new THREE.WebGLRenderer(); //實例化渲染器

          renderer.setSize(window.innerWidth, window.innerHeight); //設置寬和高

          document.body.appendChild(renderer.domElement); //添加到dom

          }



          //初始化場景

          function initScene() {

          scene = new THREE.Scene(); //實例化場景

          }



          //初始化相機

          function initCamera() {

          camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 200); //實例化相機

          camera.position.set(0, 0, 15); //初始化的坐標

          }



          //創建模型

          function initMesh() {

          geometry = new THREE.BoxGeometry(2, 2, 2); //創建幾何體

          material = new THREE.MeshNormalMaterial(); //創建材質

          mesh = new THREE.Mesh(geometry, material); //創建網格

          scene.add(mesh); //將網格添加到場景

          }



          //運行動畫

          function animate() {

          requestAnimationFrame(animate); //循環調用函數



          //判斷是否可以旋轉

          if(rotate) {

          mesh.rotation.x += 0.01; //每幀網格模型的沿x軸旋轉0.01弧度

          mesh.rotation.y += 0.02; //每幀網格模型的沿y軸旋轉0.02弧度

          }



          stats.update(); //更新性能檢測框

          renderer.render(scene, camera); //渲染界面

          }



          //性能檢測框

          function initStats() {

          stats = new Stats();

          document.body.appendChild(stats.dom);

          }



          //創建調試框

          function initGui() {



          //控制參數初始值

          controls = {

          positionX: 0,

          positionY: 0,

          positionZ: 0,

          rotate: true

          };



          gui = new dat.GUI(); //實例化對象

          gui.add(controls, "positionX", -10, 10).onChange(updatePosition);

          gui.add(controls, "positionY", -5, 5).onChange(updatePosition);

          gui.add(controls, "positionZ", -10, 10).onChange(updatePosition);



          function updatePosition() {

          mesh.position.set(controls.positionX, controls.positionY, controls.positionZ);

          }



          gui.add(controls, "rotate").name("旋轉").onChange(function(e) {

          rotate = e;

          });

          }



          //初始化函數,頁面加載完成是調用

          function init() {

          initRenderer();

          initScene();

          initCamera();

          initMesh();

          initStats();

          initGui();

          animate();

          }

          </script>



          </body>



          </html>

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計  圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合