WebGL之Threejs概述


什么是WebGL

WebGL是在瀏覽器中實現三維效果的一套規范。

WebGL能做什么

游戲、家居、虛擬現實、城市地圖、CAD制圖等等

什么是Three.js

three.js就是使用javascript 來寫的,運行在瀏覽器上的3D程序。three.js是一個封裝好的WebGL庫,相當於簡化了WebGL的操作。

three.js下載地址

第一個例子

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>canvas { width: 100%; height: 100% }</style>
</head>
<body>
    <script src="js/three.min.js"></script>
</body>
</html>

在瀏覽器運行,Console下輸入 THREE.REVISION命令,得到版本號

第一個框架

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>canvas { width: 100%; height: 100% }</style>
    <script src="js/three.min.js"></script>
</head>
<body>
    <script>
        var scene = new THREE.Scene();
        
        var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
        
        var renderer = new THREE.WebGLRenderer();
        
        renderer.setSize(window.innerWidth, window.innerHeight);
        
        document.body.appendChild(renderer.domElement);
        var geometry = new THREE.CubeGeometry(1,1,1);
        var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
        var cube = new THREE.Mesh(geometry, material); scene.add(cube);
        camera.position.z = 5;
        function render() {
            requestAnimationFrame(render);
            cube.rotation.x += 0.1;
            cube.rotation.y += 0.1;
            renderer.render(scene, camera);
        }
        render();
    </script>
</body>
</html>

 

 

 

四大組件 

場景(scene)、相機(camera)和渲染器(renderer)、幾何體。

var scene = new THREE.Scene();  // 場景
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);// 透視相機
var renderer = new THREE.WebGLRenderer();   // 渲染器
renderer.setSize(window.innerWidth, window.innerHeight);    // 設置渲染器的大小為窗口的內寬度,也就是內容區的寬度
document.body.appendChild(renderer.domElement);

1、場景

場景是所有物體的容器,如果要顯示一個蘋果,就需要將蘋果對象加入場景中。

var scene = new THREE.Scene();

2、相機

相機決定了場景中那個角度的景色會顯示出來。相機就像人的眼睛一樣,人站在不同位置,抬頭或者低頭都能夠看到不同的景色。

透視相機(THREE.PerspectiveCamera):離視點近的物體大,離視點遠的物體小。

正投影相機:遠近都一樣大小。

3、渲染器

渲染器決定了渲染的結果應該畫在頁面的什么元素上面,並且以怎樣的方式來繪制。

4、幾何體

幾何體就是要顯示在場景中的對象。THREE.CubeGeometry

var geometry = new THREE.CubeGeometry(1,1,1); 
var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
var cube = new THREE.Mesh(geometry, material); 
scene.add(cube);

 

WebGL精彩案例:http://www.hewebgl.com/article/getarticle/102

WebGL中文網

初級學習視頻網址

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM