tft每日頭條

 > 生活

 > 繪制一個立方體

繪制一個立方體

生活 更新时间:2024-11-17 23:34:40

當我們需要在屏幕上顯示或繪制任何一個立方體時,那麼我們就必須繪制一個網格,然後在上面繪制紋理着色。這裡就延伸出來圖形渲染管線。本文隻是概述性的描述在屏幕上繪制一個立方體的步驟,不會過于深入,側重于美術同學閱讀。

渲染

在電腦繪圖中,是指以軟件将3D模型數據轉換成2D圖像的過程。

圖形渲染管線

就是繪制3D圖形需要的一系列步驟,抽象成渲染管線(流水線)。管線關注的是數據的流轉,映射,變換和處理。

1立方體頂點坐标

如果在屏幕上繪制一個三角形,第一步就是繪制出頂點,因為網格是由頂點組成的。一個頂點要描述它的位置需要三個軸向的坐标(還包括法線和紋理UV坐标),其實就是用三個數來描述頂點的位置。而這些數據也被稱之為Vertex Buffer(頂點緩存)。

繪制一個立方體(如何在屏幕上繪制一個立方體)1

2添加頂點索引數組

而一個立方體由八個頂點數組構成。每個頂點有它自身的一個号碼,而這些号碼就是按它在文件裡面出現順序作為它的号碼。

繪制一個立方體(如何在屏幕上繪制一個立方體)2

3三角形信息

有了這些頂點索引數組數據,我們就可以繪制三角面。在3D渲染中每三個頂點構成一個面,也就是一個三角面。而這組數據也被稱為Index Buffer(索引緩存)。

繪制一個立方體(如何在屏幕上繪制一個立方體)3

4頂點着色器

有了上述的這些數據後,就可以把這些數據輸入到頂點着色器中。将模型每個頂點(坐标)位置信息,用頂點着色器換算(變換/計算)每個頂點應在屏幕的位置(頂點位置的空間變換)。也就是說,為了繪制這些頂點,我們将收集的頂點信息,将它在模型空間中頂點信息變換成世界空間,然後再變換到攝像機(觀察)空間,到裁切空間,最後投射到屏幕空間上繪制它們。

繪制一個立方體(如何在屏幕上繪制一個立方體)4

5栅格化

圖元組裝得到的三角形,栅格化就是思考如何把這些三角形映射成為一個一個的像素,哪些三角形對應哪些像素。這個中間有一些對應的關系。每一個像素又稱之為片元。在栅格化中相當于把模型的三角面投影到了我們的屏幕上。因為顯示器是由一個個像素組成,這一步就要把這些三角形變成屏幕上對應的像素。每個像素是由相連的點生成的,那麼每個像素就會根據這些點插值出準确的數據。

繪制一個立方體(如何在屏幕上繪制一個立方體)5

6片元(像素)着色器

經過頂點着色器處理和栅格化的數據輸出到片元(像素)着色器後,就需要從一個(攝像機)視角繪制出這些數據。然後就會逐個像素輸出每個像素的顔色。立方體形狀包圍的每一個像素格都會根據頂點着色器定義的方法去計算它的顔色。最後就會繪制出來一個完整帶光影和紋理的立方體。換句話說,也就是給每一個像素上色。

繪制一個立方體(如何在屏幕上繪制一個立方體)6

7幀緩沖區

完整的渲染圖像就會輸出到幀緩沖區中。顯示器下一幀要顯示什麼,就把顔色寫到幀緩沖區(Frame Buffer)裡面。用于存放渲染的最終結果。最終顯示器從幀緩沖區裡面拿到圖像,顯示在顯示器的屏幕上(中間包含一個後處理,這裡就不展開了)。

繪制一個立方體(如何在屏幕上繪制一個立方體)7

8參考

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved