Hello,大家好,今天給大家帶來圖形學基礎:如何在屏幕上繪製立方體?我是幾維。
當我們需要在屏幕上顯示或繪製任何一個立方體時,那麼我們就必須繪製一個網格,然後在上麵繪製紋理著色。這裏就延伸出來圖形渲染管線。本文隻是概述性的描述在屏幕上繪製一個立方體的步驟,不會過於深入,側重於美術同學閱讀。
渲染
在電腦繪圖中,是指以軟件將3D模型數據轉換成2D圖像的過程。
圖形渲染管線
就是繪製3D圖形需要的一係列步驟,抽象成渲染管線(流水線)。管線關注的是數據的流轉,映射,變換和處理。
1、立方體頂點坐標
如果在屏幕上繪製一個三角形,第一步就是繪製出頂點,因為網格是由頂點組成的。一個頂點要描述它的位置需要三個軸向的坐標(還包括法線和紋理UV坐標),其實就是用三個數來描述頂點的位置。而這些數據也被稱之為Vertex Buffer(頂點緩存)。
2、添加頂點索引數組
而一個立方體由八個頂點數組構成。每個頂點有它自身的一個號碼,而這些號碼就是按它在文件裏麵出現順序作為它的號碼。
3、三角形信息
有了這些頂點索引數組數據,我們就可以繪製三角麵。在3D渲染中每三個頂點構成一個麵,也就是一個三角麵。而這組數據也被稱為Index Buffer(索引緩存)。
4、頂點著色器
有了上述的這些數據後,就可以把這些數據輸入到頂點著色器中。將模型每個頂點(坐標)位置信息,用頂點著色器換算(變換/計算)每個頂點應在屏幕的位置(頂點位置的空間變換)。也就是說,為了繪製這些頂點,我們將收集的頂點信息,將它在模型空間中頂點信息變換成世界空間,然後再變換到攝像機(觀察)空間,到裁切空間,最後投射到屏幕空間上繪製它們。
5、柵格化
圖元組裝得到的三角形,柵格化就是思考如何把這些三角形映射成為一個一個的像素,哪些三角形對應哪些像素。這個中間有一些對應的關係。每一個像素又稱之為片元。在柵格化中相當於把模型的三角麵投影到了我們的屏幕上。因為顯示器是由一個個像素組成,這一步就要把這些三角形變成屏幕上對應的像素。每個像素是由相連的點生成的,那麼每個像素就會根據這些點插值出準確的數據。
6、片元(像素)著色器
經過頂點著色器處理和柵格化的數據輸出到片元(像素)著色器後,就需要從一個(攝像機)視角繪製出這些數據。然後就會逐個像素輸出每個像素的顏色。立方體形狀包圍的每一個像素格都會根據頂點著色器定義的方法去計算它的顏色。最後就會繪製出來一個完整帶光影和紋理的立方體。換句話說,也就是給每一個像素上色。
7、幀緩衝區
完整的渲染圖像就會輸出到幀緩衝區中。顯示器下一幀要顯示什麼,就把顏色寫到幀緩衝區(Frame Buffer)裏麵。用於存放渲染的最終結果。最終顯示器從幀緩衝區裏麵拿到圖像,顯示在顯示器的屏幕上(中間包含一個後處理,這裏就不展開了)。
8、參考
《unity shader 入門精要》
GAMES01-現代計算機圖形學入門-閆令琪
莊懂的技術美術入門課(美術向)
來源:Thepoly公眾號
上一篇 《獵人工具箱》道具製作圖文教程
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答10個方麵做比較,Cinema 4D和Blender哪個更好?
3D建模與動畫軟件在視頻遊戲、電影、建築設計和廣告等創意項目中扮演著重要角色。今天,我們來聊聊兩款強大的3D軟件:Cinema......
《黑神話:悟空》作為一款現象級中國遊戲,其成功離不開多種先進計算機技術的支持。本文將深入解析該遊戲背後的關鍵技術,包括虛幻引擎......
在遊戲開發領域,Unity和Unreal Engine(虛幻引擎)都是備受推崇的遊戲引擎,但它們各自擁有不同的特點和優勢。
春節之後大量搶人!這6個行業是轉行首選,進去1年頂3年!火星畢業就能進
春節後求職,哪些行業進去能立馬漲薪?打破信息差很關鍵!
還沒畢業,就去幫電視台拍活動,作品被主任說“非常好”!猜猜是哪個專業呀?
回想過去,電子遊戲裏的草其實並不是真正的草。開發者們隻是簡單地把草的紋理直接貼在遊戲關卡的地板上