第一章 渲染管線 the rendering pipeline
1.1圖形處理器
一個渲染的3D場景是由許多獨立的物體組成的。這些物體的幾何構成是點集和一些特殊基本圖元類型,表明頂點如何連接成一個形狀
圖形硬件對于渲染獨立的點集 線段 填充的多邊形非常有用
通常情況下3D模型的表面是三角形,每個三角形由頂點列表中的三個點構成
CPU發送渲染命令給GPU,當CPU執行其余任務時它依然執行渲染操作,稱為異步操作
應用程序通過發送命令給渲染庫與GPU交流,例如OPENGL,依次發送命令給驅動才知道如何用自然語言和GPU對話
opengl的接口叫做HAL,它暴露了一個常用函數集合,使得他可以在任何的支持OPENGL架構的圖形硬件上進行渲染
驅動程序將OPENGL函數轉換為GPU可以理解的代碼
3Du圖形驅動直接實現了OPENGL接口來最小化分配渲染命令的開銷
3D圖形卡有他自己的的內存核心,通常稱為VRAM
前臺圖形緩存
后臺圖形緩存
緩存交換
深度緩沖
模板緩沖
對于絕大多數的3D渲染軟件,VRAM的使用被紋理貼圖控制
紋理貼圖是應用在物體表面給予較好的視覺細節
1.2頂點變換
局部坐標 世界坐標 攝像機坐標空間 -投影-齊次裁剪空間-視圖轉換-窗口空間
局部坐標-model-view變換-攝像機空間
1.3光柵化和片段操作
填充屬于一個元的像素的水平范圍的過程被稱為光柵化
GPU計算
face culling 遠離攝像機和背對攝像機的幾何體圖元
像素所有權測試 剪裁測試 透明度測試 模板測試 深度測試 混合