欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

WEBGL學(xué)習(xí)應(yīng)該怎么入手呢

傅智翔2年前17瀏覽0評論

WEBGL學(xué)習(xí)應(yīng)該怎么入手呢?

WEBGL基礎(chǔ)知識介紹 1、場景(scene) 場景如其名,即顯示3D空間內(nèi)物體的容器,就好比一個箱子是一個3D場景。

2、坐標(biāo)系: webgl使用笛卡爾坐標(biāo)系(寬度、高度和深度),我們也可以指定使用其它坐標(biāo)系統(tǒng)。 WEBGL與過去我所使用的flash3D坐標(biāo)系有一些區(qū)別,在flash3d中,屏幕的左上角為坐標(biāo)系原點,向下為Y軸正方向,向右為X軸正方向,而在webgl中,屏幕的中心點為原點。 但是在3D世界中還有第三個坐標(biāo)軸即Z軸,它表示場景的深度。

在webgl的世界中我們可以使用左手法則來輔助記憶三個軸的正方向,伸出左手,食指伸直保持水平,中指垂直向下,拇指指向自己,其余手指收起,食指所指方向即x軸的正方向,中指所指方向即y軸正方向,拇指所指的方向即z軸的正方向。 3、投影的概念: 我們在屏幕上所看到的三維空間,并非是一個真實的3D空間,而是用數(shù)學(xué)算法將模擬的三維空間投射到屏幕上的二維圖像而已。

投影就是將模擬的三維空間內(nèi)的物體映射到屏幕上生成一個二維圖像的過程。

投影分為正交投影和透視投影,這也就是攝像機的實現(xiàn)原理。

4、攝像機: 攝像機是場景內(nèi)的一個觀察者,人通過屏幕看到的畫面實際上是3D空間內(nèi)的物體映射到攝像機內(nèi)的畫面,這個畫面很可能并不是完整的,僅僅是攝像機當(dāng)前可見范圍內(nèi)的。

這與攝像機的種類有關(guān)。

在three.js中有兩種,正交攝像機和透視攝像機。

正交攝像機的視野范圍就像一個正方體,正方體內(nèi)的物體沿著正方體的邊緣投影到每個側(cè)面的物體大小都與立方體內(nèi)的物體大小相同,所以使用正交攝像機投影到屏幕的畫面我們是無法分辨物體的遠近的,這種攝像機多用于在3D空間繪制2D圖形,如醫(yī)用檢查設(shè)備,我們不使用。

透視攝像機就如一個頂部被削平的金字塔,金字塔頂部被削平的面可以理解為我們的屏幕,在金字塔內(nèi)的物體沿著金字塔縱方向進行投影,并投射到頂部,假設(shè)有兩個大小形狀完全相同的物體分別位于金子塔內(nèi)的不同高度,他們投影到頂部的影子的大小就會不同,這就是透視相機的。使用透視攝像機我們可以在平面內(nèi)很容易分辨出3D空間內(nèi)物體的遠近。

現(xiàn)在把金字塔放倒,將削平的頂端對這你的眼睛,這樣就很容易理解在透視相機時計算機是如何渲染物體的了。 5、渲染: 渲染即執(zhí)行代碼在屏幕上繪制圖形的過程。

渲染是實時執(zhí)行的,就如一個播放的電影,由許多連續(xù)的幀組成,幀就好比一場電影中的一個瞬時的畫面。

6、點與向量 點是由三個值組成,x、y和z,每個點可以表示3D空間的一個唯一位置,每個點也可表示一個向量,也叫做三維向量,向量可以理解為指向場景中心的一個線段,我們知道點有三個值,這樣的向量叫做單位向量或標(biāo)量,它僅僅表示向量的方向,不能表示向量的長度,現(xiàn)在我們給一個這個標(biāo)量再增加一個值,第四個值表示向量的長度,這樣我們就有了一個既有長度又有方向的向量了,這樣的向量叫做四維向量。 7、面、頂點與三角形: 我們知道要確定一個唯一的平面我們至少需要三個點,將三個點用線連起來就形成了一個三角平面,我們稱這三個點為頂點,頂點就是圖形突起的部。 8、網(wǎng)格模型: 3D空間內(nèi)任何形狀的物體都稱之為模型,無論是立體模型還是平面模型都由至少三個頂點組成,將這些頂點用線連接起來就組成了模型。還需要知道在現(xiàn)在計算機圖形學(xué)中,所有的模型,無論復(fù)雜程度,都是由多個三角形拼接而成的。

我們常見的球體看起來很圓滑,其實是由很多個三角形繪制而成,由于密度很高肉眼很難察覺其邊緣的頂點。

由于這些模型都是使用線條連接而成,看起來就像一張捕魚的漁網(wǎng)被扭曲成各種形狀,我們稱這種沒有材質(zhì)的模型叫做網(wǎng)格模型(它看起來是鏤空的)。 9、紋理貼圖以及材質(zhì) 紋理就是一個平面化的圖形,它可以是純色填充的也可以是使用位圖填充的。 材質(zhì)就是使用紋理構(gòu)建的一種代碼環(huán)境中的對象,我們將材質(zhì)對象應(yīng)用到模型網(wǎng)格上,使其更加逼真形象,達到預(yù)期設(shè)想的效果。 更加容易理解的方式:紋理好比一顆大樹,材質(zhì)好比是用這顆大樹打造的一塊木板,我們可以將木板釘在一個立方體網(wǎng)格對象上,這樣我們就有了一個木箱。 10、矩陣和模型變換 如果向量是一個數(shù)組[x,y,z],那么矩陣就是一個二維數(shù)組即, 矩陣代碼 | x x x x | | | | y y y y | | | | z z z z | | | | 0 0 0 1 | 每一列表示一個四維向量,上面我們創(chuàng)建了一個4X4的矩陣,在webgl中我們常用的矩陣為4X4和3X3。 模型變換就是利用矩陣使得模型的大小、位移、旋轉(zhuǎn)等產(chǎn)生變化的過程,通常我們會使用模型的內(nèi)置矩陣與變換矩陣相乘從而得到變換后的新矩陣并賦予模型。每個模型被創(chuàng)建后都會擁有自己的模型矩陣,我們無需關(guān)注模型矩陣是如何產(chǎn)生的,只需要知道對模型進行模型變換需要將模型矩陣與變換矩陣相乘。具體如何操作矩陣自行查詢相關(guān)資料,這里不做贅述。 11、視圖變換 視圖變換就是不通過調(diào)整模型本身的參數(shù),而是直接控制攝像機、場景的移動而產(chǎn)生的視覺變化,比如我們將攝像機像模型方向拉近,我們就會感覺模型在逐漸變大,我們將場景原點逐漸拉遠我們就會感覺模型在漸漸遠離我們。 13、著色器語言 1) 頂點著色器:頂點著色器是用來控制光照、顏色、位移等,假如我們要渲染一個三形,頂點著色器就將執(zhí)行三次,它會為每個頂點都執(zhí)行一次。注意在頂點著色器執(zhí)行時我們還沒有通過屏幕看到繪制的圖形,頂點著色器是為后續(xù)的光柵化處理做鋪墊,它將為光柵化操作提供必要的資源,頂點著色器是光柵化處理的倉庫。 2) 片段著色器:了解片段著色器先要了解光柵化是什么意思,光柵化就是繪制每兩個頂點之間的像素并形成線段的過程,就好比我們要畫一個柵欄,我們要一根一根的畫。 片段著色器就是告訴GPU如何光柵化的語言,就如其名字,將光照、紋理、位移等沿著頂點之間的線段逐個像素的渲染。 14、webgl中最流行的js庫three.js介紹: 首先最外層為場景,場景中包含一個或多個攝像機,場景中還可以包含模型、粒子等。 模型、粒子等也可包含在Object3D對象中。 創(chuàng)建一個模型的過程是: 1) 創(chuàng)建模型所需要的頂點 2) 創(chuàng)建一個幾何圖形對象,并將頂點傳遞給幾何圖形對象。 3) 創(chuàng)建模型的紋理對象即材質(zhì)。 4) 創(chuàng)建網(wǎng)格對象,并將幾何圖形對象以及紋理對象傳遞給網(wǎng)格對象。 5) 將網(wǎng)格添加到可容納網(wǎng)格對象的容器內(nèi),如scene、Object3D等。 術(shù)語FAQ: 1、場景:Scene 2、位置:Position 3、投影:Projector 4、正交:Orthographic 5、透視:Perspective 6、攝像機:Camera 7、渲染:Render 8、向量:Vector 9、三維向量:Vector3 10、四維向量:Vector4 11、矩陣:Matrix 12、3行3列矩陣:Matrix3 13、4行4列矩陣:Matrix4 14、頂點:Vertex 15、頂點的復(fù)數(shù)形式:Vertices 16、幾何對象:Geometry 17、紋理:Texture 18、材質(zhì):Material 19、網(wǎng)格:Mesh 20、變換:Transform 21、視圖:View