Three.js入門(一)

談論three.js之前我們需要了解一下WebGL...先自問自答一下

1:什么是WebGL ?

webGL是基于OpenGL es 2.0 的web標準,可以通過html5 canvas元素作為dom訪問接口。

2:WebGL可以做什么?

現(xiàn)在大部分瀏覽器都實現(xiàn)了WebGL。它不僅可以創(chuàng)建二維圖形和應用,還可以利用CPU,來創(chuàng)建漂亮的、高效的三維應用。

3:那什么是Three.js?

Three.js封裝了底層的圖形接口,提供了基于WebGL的非常易用的JavaScript API。且簡化WebGL的開發(fā)。

一個典型的Three.js程序至少包括 渲染器場景照相機以及場景中創(chuàng)建的物體。如下所示:

 //渲染器
var renderer = new THREE.WebGLRenderer({
    canvas:document.getElementById('myCanvas')
});
renderer.setClearColor(0x000000);

//場景
var scene = new THREE.Scene();

//照相機
var camera = new THREE.PerspectiveCamera(45, 4 / 3, 1, 1000);
camera.position.set(0, 0, 5);
scene.add(camera);

//物體
var cube = new THREE.Mesh(new THREE.CubeGeometry(1, 2, 3),
    new THREE.MeshBasicMaterial({
        color: 0xff0000
    })
);
scene.add(cube);

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

第一部分:相機

1.1什么是照相機?
他定義了三維空間到二維空間屏幕的投影方式。

Three.js中有兩種不同的相機。正交投影相機透視投影相機

th1.png

透視投影(a):近大遠小效果
正交投影(b):在三維空間內(nèi)平行的線,在二維空間也一定是平行的。

(1)正交投影相機
    //設置正交投影相機
    THREE.OrthographicCamera(left, right, top, bottom, near, far)
th2.png
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 本文主要是講解 Three.js 的相關概念,幫助大家對 Three.js 以及相關知識形成比較完整的理解。今年來...
    Simon王小白閱讀 8,505評論 2 9
  • 1、準備開發(fā)環(huán)境 2、創(chuàng)建一個場景 在Three.js中,要渲染物體到網(wǎng)頁中,我們需要3個組建:場景(scene)...
    簡聆壹閱讀 7,058評論 0 5
  • 在開始談 WebVR 前,我們先來看看人眼中的三維立體是如何產(chǎn)生的。 外部世界是三維立體的,但是它在我們的視網(wǎng)膜上...
    點融黑幫閱讀 11,117評論 4 6
  • 今天的主題是three.js中用于觀察三維空間的攝像機。 1.認識camera 圖形學中的攝像機定義了三維空間到二...
    sakatayui醬閱讀 5,934評論 0 1
  • 阿玥, 堅持運動會變成一種習慣,感冒一星期,就跑了2次。昨天晚上你寫作業(yè),媽媽等到公園連跑帶走了三圈。 既然你堅持...
    芳草如茵茵閱讀 123評論 1 1