索引 / 001 ZH-TW
Real-Time Rendering(即時算繪) cover

電腦科學

電腦科學

Real-Time Rendering(即時算繪)

Tomas Akenine-Möller; Eric Haines; Naty Hoffman; Angelo Pesce; Michał Iwanicki; Sébastien Hillaire

英文原名: Real-Time Rendering

由圖學產業的研究人員與工程師撰寫,談如何運用圖形硬體以互動速率產生影像的綜合參考書。書中講解GPU算繪管線,以及遊戲、視覺化與虛擬實境所用的演算法,從座標轉換、貼圖到基於物理的著色、陰影與全域照明的近似。

需要的基礎: 需修過電腦圖學入門與線性代數,並具備使用OpenGL、Vulkan或Direct3D等圖形API寫程式的經驗。

難度等級
高級
學術層次
高級
computer graphicsreal-time renderinggpushadinggraphics pipeline參考書

01 / 導讀

導讀

引用

Akenine-Möller, T., Haines, E., Hoffman, N., Pesce, A., Iwanicki, M., & Hillaire, S. (2018). Real-Time Rendering (4th ed.). A K Peters/CRC Press.

章節概要

全書共 24 章,約 1,200 頁,另有很長的參考文獻。前言說明了範圍:建立合成影像的演算法,其速度要快到足以讓觀看者與虛擬環境互動,重點是三維渲染,並在有限程度上涉及使用者互動。建模和動畫不在其內。本書側重演算法而非圖形 API,作者稱它更像一本指南而不是百科全書,每個主題只介紹少數有代表性的方法,並給出供進一步閱讀的參考文獻。第1章說明記號:向量、點和矩陣,採用列向量和齊次座標。

第1–3章:引言;圖形渲染管線;圖形處理器

第2章把管線作為即時渲染的核心:應用階段、幾何處理、光柵化和畫素處理,並帶領讀者走一遍管線。第3章說明 GPU 如何以資料並行硬體實現這些階段,從頂點著色器經曲面細分、幾何著色器、畫素著色器和合並階段直到計算著色器,同時介紹可程式設計著色和 API 的演變。

第4–6章:變換;著色基礎;紋理

第4章講基本變換和特殊矩陣變換、四元數、頂點混合、變形、幾何快取回放和投影。第5章介紹著色模型、光源、著色模型的實現、走樣與抗鋸齒、透明度、alpha 與合成,以及顯示編碼。第6章講紋理管線、影像紋理和程式紋理、紋理動畫、材質對映、alpha 對映、凹凸對映和視差對映,以及紋理化光源。

第7–9章:陰影;光與顏色;基於物理的著色

第7章概覽平面陰影、陰影體、陰影貼圖及其過濾變體(百分比鄰近過濾與軟陰影、過濾陰影貼圖)、體積陰影技術和不規則 z 緩衝陰影。第8章定義光的度量和從場景到螢幕的路徑。第9章從頭構建基於物理的著色:光的物理、相機、BRDF、菲涅爾反射、微觀幾何與微表面理論、表面反射的 BRDF 模型、次表面散射、布料、波動光學和分層材質,以及材質的混合與過濾。

第10–12章:區域性光照;全域性光照;影像空間效果

第10章講面光源和環境光照,包括球面與半球函式、環境對映、鏡面基於影像的光照和輻照度環境對映。第11章從渲染方程出發,涵蓋環境遮蔽與方向遮蔽、漫反射與鏡面全域性光照,最後是統一方法。第12章講影像處理和重投影,然後是鏡頭光暈與泛光、景深和運動模糊。

第13–15章:超越多邊形;體積與半透明渲染;非真實感渲染

第13章概覽三角形之外的選擇:天空盒、光場渲染、精靈與圖層、公告板、位移、粒子系統、點渲染和體素。第14章講光散射理論與體積渲染、天空渲染、半透明表面、次表面散射,以及毛髮。第15章講卡通著色、輪廓線渲染、筆觸式表面風格化、線條和文字渲染。

第16–17章:多邊形技術;曲線與曲面

第16章涉及三維資料的來源、曲面細分與三角化、合併、三角形扇、條帶與網格、簡化,以及壓縮與精度。第17章講引數曲線與曲面、隱式曲面、細分曲線與細分曲面,以及高效的曲面細分。

第18–20章:管線最佳化;加速演算法;高效著色

第18章講效能分析與除錯工具、定位瓶頸、效能測量、最佳化和多處理。第19章講空間資料結構、剔除(背面、視錐、入口、細節、遮擋)、細節層次和大場景渲染。第20章講延遲著色、貼花渲染、分塊與分簇著色、延遲紋理,以及物體空間與紋理空間著色。

第21–24章:虛擬與增強現實;相交測試方法;圖形硬體;未來

第21章講 VR 與 AR 的裝置、物理要素、API 與硬體,以及渲染技術。第22章是幾何相交測試的參考:拾取、包圍體的建立、射線與球、盒、三角形和多邊形的相交,以及其他配對。第23章描述圖形硬體:光柵化、大規模計算與排程、儲存體系、顏色與深度緩衝、紋理、案例研究和光線追蹤架構。第24章以「其他一切」和「你」收尾。

核心概念

第2–6章:管線與基礎

  • 圖形渲染管線:應用、幾何處理、光柵化和畫素處理。
  • 可程式設計著色器階段:GPU 管線中由程式設計師控制的階段。
  • 紋理:用影像改變表面外觀。

第7–12章:光與外觀

  • 陰影貼圖:主要的影像空間陰影技術及其過濾變體。
  • BRDF 與微表面理論:表面反射的物理基礎。
  • 基於影像的光照與全域性光照:對光在場景中相互作用的近似。

第13–17章:表示方式

  • 公告板、粒子與體素:多邊形網格之外的選擇。
  • 細分曲面與曲面細分:由粗糙控制網格生成的平滑曲面。

第18–24章:效能、VR 與硬體

  • 剔除與細節層次:跳過不可見的部分,或降低遠處物體的精度。
  • 延遲、分塊與分簇著色:高效處理大量光源的著色結構。
  • VR/AR 渲染:在快速而穩定的幀率要求下渲染。

評析

優點

  • 一冊之內的廣度。 24 章從管線和變換,經基於物理的著色、全域性光照、體積與非真實感渲染,直到最佳化、加速、VR 與硬體。
  • 第四版的更新。 出版社強調新增了虛擬與增強現實一章,以及對視覺外觀、全域性光照、曲線與曲面的新覆蓋。本版有三位作者加入原有團隊。
  • 帶參考文獻的指南。 大多數章末有延伸閱讀,作者宣告的做法是每個主題只介紹少數有代表性的方法,其餘依靠參考文獻。
  • 評論者的推薦。 出版社援引的評語來自 Valve、NVIDIA、Unity、Cesium 的從業者,以及《Physically Based Rendering》的合著者,認為它濃縮了大量工作,既有深度又附有參考文獻。
  • 免費附加內容。 關於碰撞檢測的一章以及線性代數和三角學附錄可在作者網站免費獲取。

侷限

  • 預設已有知識。 前言期望讀者具備基本的計算機圖形學、電腦科學和程式設計知識,本書不是入門課程。
  • 講演算法,不講 API。 它不教授 OpenGL、Vulkan 或 Direct3D,讀者需要另備程式設計資料來實現書中所述內容。
  • 有意選取。 建模與動畫被排除在外,作者還指出,有些章(以陰影為例)已有專門的整本書。
  • 篇幅。 約 1,200 頁,宜按章查閱,而不是從頭讀到尾。

在課程中的定位

這是圖形學書單中全面、重實踐的參考書。《Computer Graphics from Scratch》是簡短的入門,讀者要自己寫光線追蹤器和光柵化器;《Interactive Computer Graphics》是自頂向下的 WebGL 課程;二者都是讀本書之前認識管線的途徑。《Fundamentals of Computer Graphics》是講光線追蹤和光柵化背後數學與演算法的標準本科教材。《Physically Based Rendering》給出一個離線、照片級真實感渲染器的原始碼及其數學,而本書的目標是 GPU 上的互動速率。

《Interaction Design》屬於課程的另一側,講以使用者為中心的設計,而非渲染。學過第一門圖形學課程之後,可將本書與《Fundamentals of Computer Graphics》並讀或在其後讀;想要一個完整的、面向離線照片級真實感並附數學推導的渲染器時,再轉向《Physically Based Rendering》。

如何使用本書

本書面向學過第一門圖形學課程、熟悉線性代數並有一些圖形 API 經驗的讀者,在職的圖形程式設計師也在使用。

實用安排:

  • 核心: 第2–3章(管線、GPU)、第4章(變換)、第5–6章(著色與紋理)、第7章(陰影),以及第18–19章(最佳化與加速)。
  • 外觀路線: 依次讀第8–11章,學習基於物理的著色與光照;第9章是這一組中最長的一章。
  • 專題章節: 按需閱讀第12–15章(後處理、其他表示、體積與風格化);第16–17章(幾何);第20–21章(效率與 VR/AR)。
  • 參考: 把第22–23章當作相交測試和硬體的查閱材料。

手邊備一個圖形 API,對讀過的每一章實現其中一項功能;書中只作概述之處,則沿著所引參考文獻深入。