1
:計算機
3d介紹:
1.1影象數位化:
最早,我們的影象用過色盤來表示影象的顏色,既
256種不同的顏色來表示,畫面記憶體只需要
1byte
的索引數值,但是色彩很單調,現在在已經淘汰了。現在我們通過
rgb各
8bit
來表示顏色,既,
3元色,可以混合出我們的所有顏色。在
1024x768
的分辯率下,其佔儲存量:
1024x768x3bytes = 2.25mb,
而在硬體上都是
4的倍數的位址才能執行,所以實際占用了
1024x768x4bytes = 3mb,
那我們不就浪費了空間了嗎,其實麼有,我們在
rgb上又加上了乙個
alpha(
透明色)
來表示顏色的透明度。
1.23d
畫面的產生:
其實3d
和我們的照相一樣,把
3d的世界拍成
2d的**。在
3d中,所有的物體都是基本多邊形組合成,
3角形最常用。我們把世界上的物體的表面通過多邊形拼湊起來,再通過在面上貼圖,來模擬現實的物體。這時,我們會發現其實我們的
3d物體都是空心的,對。但在遊戲中,我們會通過碰撞檢測來防止玩家進入到物體內部去。
在現實中,前面的物體會擋住後面的物體,讓我們只能看到前面的物體,但是在
3d程式中,沒有什麼時麗說當然的,現在的顯示卡,我們都是通過乙個
z_buffer
的來儲存當前畫素離我們
camera
的距離,當我們的乙個多邊形點轉換成畫素點時,顯示卡會計算當前點到
camera
的距離,然後和前面已儲存的畫素點的
z_buffer
進行比較,如果更近,那麼更新畫素的色彩,並更新
z-buffer,
如果更遠,那麼不更新當前畫素點。可以看到這樣離我們遠的物體就被近的物體擋住了,不會顯示出來。但是問題也跟著出來,想想,如果是透明的物體,那麼這樣會出現什麼樣的問題。那麼透明的物體我們又該怎麼處理呢
?(這裡,我們就不能使用
z-buffer
了,只有把透明的物體排序,先畫遠的,再畫近的
)。我們通常用
16bits/24bits
來儲存z-buffer,
但是硬體
4bytes
的規則,我們還是用了
32bits
來儲存了,是不是又浪費了呢,其實沒有,在
24bits
的z-buffer
下,我們又加上了
8bits
的stencil-buffer,
來占用空間,後面會介紹
s-buffer.
1.3動畫:
最常見的動畫是幀動畫,當幀率超過
30fps
的時候人的眼睛就看不出來一頁頁的變化了,而是感覺成乙個連貫的動畫了。在我們
d3d中,我們是通過
double buffer
來實現交換頁的操作的,一塊用來儲存已經畫的
buffer,
一塊用來儲存正在畫的
buffer
,而螢幕上顯示的永遠是畫好的
buffer
,這樣不會讓玩家看到畫畫的過程。其實在我們
d3d中,呼叫
device->present
的時候,就是在交換2個
buffer,
讓將剛畫好的現實出來,而另一又用來準備新的畫面。在
win下,是通過
copy buffer
來實現的,在
full
下是通過
swap buffer
來實現的,這樣省略的拷貝動作。
1.4gpu:
圖形處理晶元:我們遊戲愛好者的上帝j,
其強力的浮點運算能力和並行處理能力讓我們的
3d世界變得更加強大。我們常說的
gpu程式設計是,
vertex shader/pix shader/geometry shader.
使我們的多邊形的操作和色彩的設定都放到的
gpu中,例如矩陣,
4vector
等運算放到了
gpu中,通過並行能力,遠遠超過了
cpu的運算能力,現在吵的火熱的
cuda
就是乙個很好的例子。以後的發展,
gpu將不只是圖形的處理專用,而是平行演算法的核心應用領域。
好了,今天就這些了,希望能堅持下去,雖然很多是書上的,但是還是加了些自己的理解:)
渲染管線計算機如何繪製3d物體
1.3d渲染過程 是輸入3d模型 到顯示卡處理 顯示卡處理的這就是渲染管線流程 然後輸出2d cpu處理顯示到電腦螢幕上 2.渲染管線流程 1 頂點處理 1。3dmax 或者maya生成的 fbx等格式的檔案 就是記錄模型上點 的座標 然後交給顯示卡處理 2。3d模型記錄的都是自己的座標 然後轉換到...
3D 燈光介紹
環境光 散射光鏡面光 發散光環境光是那些在環境中進行了充分的散射,無法分辨其方向的光。它會均勻的照亮物體。漫反射光來自某個方向,但在物體表面上向各個方向上反射,無論在何處觀察,散射光看上去亮度都相同。我們之所以能看到物體,就是因為物體將入射的光向各個方向反射 所以稱之為漫反射 鏡面光來自乙個特定的方...
視差原理 計算機如何構造人眼3D視覺
平時我們能夠看到的二維影象,能夠讓自己具備三維立體效果的有 立體 3d電影 vr虛擬實境。也許你會說當你看到一種普通的 時,仍然能夠分辨物體之間的前後立體關係,但其實這只是利用光影效果 明暗對比來體現的,這跟我們身體所處或眼睛所看到的立體世界 上下 左右 前後 有著本質差別,因為普通始終是二維空間。...