簡介
three.js 是一款WebGL框架,WebGL可以讓我們在canvas上實現3D效果。實現3D效果在國內來說還算是比較新的東西,可供查閱的資料也不多。這篇文章僅是一個入門篇,介紹如何繪制一個3D正方體。
Three.js中的基本概念
Three.js包含3個基本概念:場景(Scene)、相機(Camera)和渲染器(Renderer)。
場景就是需要繪制的對象,相機代表取景的視角,渲染器是繪制的載體(可以掛靠到瀏覽器的DOM元素中),
也就是我們通過相機拍攝場景然后繪制到目標介質中去。
創建場景、相機和渲染器
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 );
上述代碼首先創建一個場景,然后創建一個PerspectiveCamera(立體感的相機),接著創建了一個WebGL的渲染器(注意Three.js也支持非3D的Canvas 2D的渲染器),然后掛靠為HTML文檔body的DOM子元素。
介紹完畢,首先奉上實現的效果圖:
這就是實現的效果圖,還是挺有立體感的吧?
繪制前的準備
寫代碼前,要先下載最新的three.js框架包,引入自己的頁面。
具體實現過程
準備一個canvas畫布
這個畫布是我們展現整個3D正方形的畫布,也就是上圖那個黑色的方框。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Camera 相機</title> <style> #canvas { width: 400px; height: 300px; border: 1px solid red; margin: 50px auto; display:block; } </style> </head> <body> <canvas id="canvas"></canvas> <script src="./libs/three.min.js"></script> </body> </html>
明確繪制思路
接下來的繪制過程會涉及到多個概念:canvas、scene、camera、renderer。
為了能更好理解繪制過程的代碼和有助于記憶,我們先來理解這幾個概念:
假設我們現在正在旅游的途中,看到了一個很唯美的畫面,想把這個3D世界記錄下來
這個唯美的場景就是scene,我們用相機camera拍攝下來形成照片
為了能看清楚這個照片,我們把這個照片放置在一個畫布canvas上
最后,我們再用renderer修飾渲染一下
這樣,我們就能成功展現這個3D世界了。
【程序還是很貼近生活噠
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com