實(shí)時(shí)渲染關(guān)注于快速的在電腦上生成一系列的畫面卤妒,是圖形學(xué)中交互性最強(qiáng)的一個(gè)領(lǐng)域。當(dāng)一個(gè)畫面出現(xiàn)的屏幕上字币,用戶做出操作或者反應(yīng)荚孵,并且這個(gè)操作會(huì)影響接下來生成什么樣的畫面。用戶反饋和計(jì)算機(jī)渲染組成的循環(huán)維持在一個(gè)足夠快的頻率里進(jìn)行纬朝,就使得用戶不會(huì)感覺自己看到的是單獨(dú)的一張張畫面收叶,更確切的說,會(huì)使用戶沉浸在這樣的一個(gè)動(dòng)態(tài)過程中共苛。
畫面顯示的頻率是通過每秒鐘渲染多少幀(FPS)來表示或者赫茲(Hertz)判没。在頻率為每秒鐘一幀的時(shí)候,幾乎沒有交互性可言隅茎,用戶會(huì)痛苦的等待每一幀新畫面的生成澄峰。當(dāng)達(dá)到6FPS的時(shí)候,交互性的感覺開始出現(xiàn)辟犀。電子游戲致力于達(dá)到30,60,72或者更高的FPS俏竞,因?yàn)樵谶@樣的渲染速度下,用戶可以聚焦于自己的游戲操作和反應(yīng)上。
電影投影儀的畫面頻率是24FPS魂毁,但是通過一個(gè)快門系統(tǒng)(shutter system)把每一幀顯示2或4次來避免畫面閃爍玻佩。刷新率(refresh rate)和顯示頻率(display rate)是兩個(gè)不同的概念,刷新率用Hertz(Hz)表示席楚。一個(gè)能夠把每幀照亮(illuminates)3次的快門(shutter)就擁有72Hz的刷新率咬崔。LCD顯示器同樣也區(qū)分刷新率和顯示頻率兩個(gè)概念。
觀看屏幕上以24FPS播放的畫面是可以接受的一個(gè)狀態(tài)烦秩,但是更高的頻率有助于最小化響應(yīng)時(shí)間(response time)垮斯。低至15毫秒的時(shí)間延遲可以減緩和干擾(slow and interfere)互動(dòng)性。舉例而言只祠,虛擬現(xiàn)實(shí)類產(chǎn)品使用的頭戴式顯示器一般需要90FPS來降低延遲感兜蠕。
對(duì)于實(shí)時(shí)渲染來說不止要考慮交互性。如果渲染速度作為唯一的評(píng)判標(biāo)準(zhǔn)抛寝,任何能快速響應(yīng)玩家指令并且在屏幕上畫點(diǎn)什么的程序都可以滿足牺氨。實(shí)時(shí)的渲染一般意味著產(chǎn)生三維的圖片。
交互性和三維空間感這兩點(diǎn)對(duì)于實(shí)時(shí)渲染這個(gè)定義來說是充分的墩剖,但是出現(xiàn)了第三個(gè)元素成為了其定義中的一部分:圖形加速的硬件猴凹。很多人認(rèn)為1996年出現(xiàn)的3Dfx Voodoo 1 card是消費(fèi)級(jí)三維圖形顯卡的開端。隨著這個(gè)市場(chǎng)快速的進(jìn)步岭皂,每個(gè)臺(tái)式機(jī)郊霎,筆記本,和移動(dòng)設(shè)備都擁有了內(nèi)置的顯卡爷绘。圖1.1和1.2是一些經(jīng)過硬件加速的渲染結(jié)果书劝。
圖形硬件的進(jìn)步助力了在交互計(jì)算機(jī)圖形學(xué)領(lǐng)域的研究成果大爆炸。我們將會(huì)聚焦于提供方法來加快渲染速度和提高圖像質(zhì)量土至,于此同時(shí)描述加速算法和圖形APIs的特性和限制购对。我們將無法深度的覆蓋每一個(gè)主題,所以我們的目標(biāo)是展現(xiàn)關(guān)鍵的概念和術(shù)語陶因,解釋相關(guān)領(lǐng)域里最魯棒和具有可行性的算法骡苞,并且提供鏈接通往最佳的進(jìn)一步獲取信息的地方。希望我們做的這些努力楷扬,提供給你理解這些領(lǐng)域的工具解幽,會(huì)值得你花時(shí)間和精力來閱讀此書。
1.1 內(nèi)容概覽
下面是對(duì)書中章節(jié)的簡(jiǎn)要介紹烘苹。
Chapter 2躲株, 圖形渲染管線(The Graphics Rendering Pipeline)。實(shí)時(shí)渲染的核心就是設(shè)置一系列的渲染步驟來描述一個(gè)場(chǎng)景(scene)并轉(zhuǎn)化為可視的東西镣衡。
Chapter 3霜定,圖形處理單元(The Graphics Processing Unit)〉涤疲現(xiàn)代GPU對(duì)渲染管線的各階段實(shí)現(xiàn),是使用一堆固定功能的可編程的單元的組合望浩。
Chapter 4辖所,空間變換(Transform)≡瘢空間變換是最基本的工具奴烙,用來操作物體的頂點(diǎn)(position)助被,朝向(orientation)剖张,大小(size)揩环,和形狀(shape)以及相機(jī)的坐標(biāo)和視角搔弄。
Chapter 5,著色基礎(chǔ)(Shading Basic)丰滑。開始討論關(guān)于材質(zhì)(materials)和光(lights)的定義顾犹,以及如何使用來取得想要的表面效果,是真實(shí)感(realistic)還是風(fēng)格化的(stylized)褒墨。其他于表現(xiàn)相關(guān)的主題也會(huì)涉及炫刷,比如通過使用抗鋸齒(antialiasing),透明效果(transparency)和伽馬矯正(gamma correction)來提供更高的圖像質(zhì)量郁妈。
Chapter 6浑玛,紋理技術(shù)(Texturing)。作為最強(qiáng)大的工具之一用于在實(shí)時(shí)渲染中能夠快速的訪問和在表面顯示圖片噩咪。這個(gè)過程叫做紋理化顾彰,并且有非常多的不同辦法來實(shí)現(xiàn)。
Chapter 7胃碾,陰影(Shadows)涨享。為場(chǎng)景增加陰影可以增強(qiáng)真實(shí)感和理解。最流行的陰影計(jì)算算法會(huì)被介紹仆百。
Chapter 8厕隧,光和顏色(Light and Color)。在我們使用基于物理的渲染(physically based rendering)之前俄周,我們首先需要理解如何量化光照和顏色栏账。并且在我們的基于物理渲染的流程處理完畢后,我們需要把結(jié)果轉(zhuǎn)化為用于屏幕顯示的值栈源,這個(gè)過程中需要考慮到屏幕的屬性和觀看的環(huán)境挡爵。這兩個(gè)主題都會(huì)在這一章里被涵蓋。
Chapter 9甚垦,基于物理的著色(Physically Based Shading)茶鹃。我們從頭建立一個(gè)對(duì)于物理著色模型的理解涣雕。這一章會(huì)開始于以物理現(xiàn)象為基礎(chǔ)(underlying physical phenomena),包含許多渲染材質(zhì)的模型闭翩,并且結(jié)束于混合材質(zhì)并濾波挣郭,以避免鋸齒和保留表現(xiàn)效果。
Chapter 10疗韵,局部光照(Local Illumination)兑障。探討描述更精致的光照的算法〗锻簦考慮表面著色流译,即光照由物體表面自發(fā),那些擁有各種特色形狀的物理物體(physical objects)者疤。
Chapter 11福澡,全局光照(Global Illumination)。模擬光和場(chǎng)景之間多次交互增強(qiáng)畫面真實(shí)感的算法驹马。我們討論環(huán)境和方向遮蔽革砸,以及全局光照的漫反射和高光的渲染方法,也有一些有希望的(promising)統(tǒng)一的(unified)方法糯累。
Chapter 12算利,圖像空間的效果(Image-Space Effects)。圖形硬件非常擅長高速處理圖像泳姐。首先會(huì)討論圖像濾波和二次投影(reprojection)效拭,然后我們后調(diào)研幾個(gè)流行的后處理效果:鏡頭光圈(lens flares),動(dòng)態(tài)模糊(motion flur)仗岸,和景深(depth of field)允耿。
Chapter 13,超越多邊形(Beyond Polygon)扒怖。三角形不總是最快的或者最真實(shí)的描述物體的方式较锡。其他的表示方式基于使用圖片,頂點(diǎn)云(point clouds)盗痒,voxels(體素)蚂蕴,和其他各具優(yōu)點(diǎn)的采樣組合形式(sets of samples)。
Chapter 14俯邓,體積的和半透明的渲染(Volumetric and Translucency Rendering)骡楼。這里的關(guān)注點(diǎn)在于體積化的材質(zhì)表現(xiàn)的理論和實(shí)現(xiàn),以及和光源的交互稽鞭。物理效果的模擬范圍從大規(guī)模的氣體效果(large-scale atmospheric)到頭發(fā)纖維(hair fibers)間的光線散射(scattering)鸟整。
Chapter 15,非照相寫實(shí)主義的渲染(Non-Photorealistic Rendering)朦蕴。嘗試把場(chǎng)景變得很真實(shí)并非唯一的渲染方式篮条。其他的風(fēng)格弟头,比如卡通著色(cartoon shading)和水彩效果(watercolor effect),將會(huì)調(diào)研涉茧。線條和文本的生成技術(shù)也會(huì)討論赴恨。
Chapter 16,多邊形技術(shù)(Polygonal Techniques)伴栓。各種來源的幾何數(shù)據(jù)(Geometric data)有時(shí)需要進(jìn)行調(diào)整伦连,以獲得更快的速度和更好的效果。這里會(huì)介紹關(guān)于多邊形數(shù)據(jù)的表示和壓縮的各方面內(nèi)容钳垮。
Chapter 17惑淳,曲線和曲面(curves and curved surfaces)。更復(fù)雜的表面表示方式可以提供一些優(yōu)勢(shì)扔枫,比如能夠在質(zhì)量和渲染速度之間做出權(quán)衡(trade off)汛聚,更緊湊(compact)的表示锹安,和平滑(smooth)的表面生成短荐。
Chapter 18,管線優(yōu)化(Pipeline Optimization)叹哭。當(dāng)一個(gè)應(yīng)用運(yùn)行并使用高效的算法時(shí)忍宋,各種優(yōu)化技術(shù)可以使得程序運(yùn)行的更快。尋找性能瓶頸(bottleneck)并決定如何處理是這章的主題风罩。多線程也會(huì)被討論糠排。
Chapter 19,加速算法(Acceleration Algorithm)超升。在程序運(yùn)行起來之后入宦,需要做的是提升運(yùn)行速度。各種形式的裁剪(culling)和細(xì)節(jié)分層渲染(level of detail rendering)會(huì)涉及室琢。
Chapter 20乾闰,高效的著色(Effect Shading)。場(chǎng)景里出現(xiàn)大量的光時(shí)會(huì)顯著的降低性能盈滴。在判斷一個(gè)像素是否會(huì)顯示之前就完全的執(zhí)行著色操作是一種浪費(fèi)涯肩。我們會(huì)探索大量的方法阻止這種浪費(fèi)的發(fā)生,以及其他的低效的著色行為巢钓。
Chapter 21, 虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)(Virtual and Augmented Reality)。這些領(lǐng)域在以快速且穩(wěn)定的頻率生成真實(shí)的圖片時(shí)乱灵,會(huì)遇到一些特有的挑戰(zhàn)溯饵,和相應(yīng)的技術(shù)。
Chapter 22背镇,交叉檢測(cè)方法(Intersection Test Methods)咬展。交叉檢測(cè)對(duì)于渲染花履,用戶交互,碰撞檢測(cè)都非常重要挚赊。這里會(huì)深入探討大量的關(guān)于幾何交叉檢測(cè)的高效算法诡壁。
Chapter 23,圖形硬件(Graphics Hardware)荠割。這里會(huì)聚焦于一些部分如顏色深度(color depth)妹卿,幀緩沖(framebuffer)和基礎(chǔ)算數(shù)類型(basic architecture types)。提供一個(gè)有代表性的GPU學(xué)習(xí)例子蔑鹦。
Chapter 24夺克,The Future. Take a guess (we do). 這里不翻譯了。
由于篇幅限制嚎朽,我們提供了關(guān)于碰撞檢測(cè)(Collision Detection)章節(jié)的下載铺纽,在realtimerendering.com這個(gè)網(wǎng)站上,并且還有一些關(guān)于線性代數(shù)和三角形幾何的擴(kuò)展內(nèi)容哟忍。
1.2 符號(hào)(Notation)和定義(Definitions)
首先狡门,我們應(yīng)該解釋一些本書里用到的術(shù)語。想獲得關(guān)于本章節(jié)和本書中許多術(shù)語的詳盡解釋锅很,可以訪問realtimerendering.com上面的線性代數(shù)擴(kuò)展內(nèi)容其馏。
(這部分內(nèi)容暫時(shí)不看)