出版時(shí)間:2010-6 出版社:清華大學(xué)出版社 作者:阮亞 頁(yè)數(shù):692 字?jǐn)?shù):1055000 譯者:楊柏林,陳根浪,王聰
Tag標(biāo)簽:無(wú)
前言
組合,也就是把一些基本操作組織成一個(gè)不明顯的整體,這對(duì)命令式編程非常重要。微處理器的指令集體系結(jié)構(gòu)(ISA)是一個(gè)多功能的組合接口,開發(fā)軟件渲染器的程序員們?cè)诓粩嘧非笳鎸?shí)感圖像的過(guò)程中,會(huì)高效并富于創(chuàng)造性地使用它們。早期的硬件圖形設(shè)備增強(qiáng)了渲染的性能,但是在組合方面經(jīng)常會(huì)付出高額的成本,其結(jié)果造成在可編程性和應(yīng)用的創(chuàng)新方面也需要付出很高的代價(jià)。類微處理器的可編程硬件一直都在發(fā)展(如Ikonas圖形系統(tǒng))。但圖形硬件加速的主要形式一直圍繞著固定渲染操作序列展開,通常稱為圖形流水線(graphic pipeline)。這些系統(tǒng)的早期接口,如CORE和后來(lái)的PHIGS,允許程序員指定渲染的結(jié)果,但不允許進(jìn)行組合?! ∥矣行覅⑴c了OpenGL從20世紀(jì)90年代初期Silicon Graphics定義的前身IRISGL,到通過(guò)指定相應(yīng)的體系結(jié)構(gòu)(非正式名稱為OpenGL Machine)來(lái)解決組合需要的過(guò)程,這些指令是通過(guò)命令式編程接口來(lái)訪問(wèn)的。許多特征——例如,嚴(yán)格規(guī)定的語(yǔ)義;表驅(qū)動(dòng)的操作,如模板和深度緩沖功能;使用通用一維、二維和三維查找函數(shù)實(shí)現(xiàn)的紋理映射;可重復(fù)性的要求——確保程序員可以使用OpenGL的各種操作,生成強(qiáng)大可靠的結(jié)果。OpenGL支持一些有用的技術(shù),包括基于紋理的體積渲染,使用模板緩沖區(qū)的陰影體積和構(gòu)造立方體幾何算法,如封蓋(在裁剪平面和由多邊形構(gòu)造的實(shí)體相交處計(jì)算表平面)。后來(lái),Mark Peercy和他的合作者在SIGGRAPH2000上發(fā)表的論文“交互式多通道可編程著色”闡釋了任意的Render Man著色器均可以通過(guò)組合OpenGL渲染操作來(lái)實(shí)現(xiàn)加速。 在這10年中,集成電路技術(shù)原動(dòng)力的增長(zhǎng)使得OpenGL體系結(jié)構(gòu)(以及后來(lái)的Direct3D)擴(kuò)展到了ISA接口。這些擴(kuò)展在圖形流水線中作為可編程頂點(diǎn)和片段著色器出現(xiàn),現(xiàn)在,隨著CUDA的引入,這些擴(kuò)展已經(jīng)成為了與微處理器同等重要的數(shù)據(jù)并行ISA了。盡管和完整的類微處理器多功能性相比,它的周期還不是那么完整,但圖形硬件加速的巨大威力對(duì)程序員來(lái)講已經(jīng)變得比以前更易用了?! ∷挠?jì)算能力非常強(qiáng)大!在編寫本書時(shí),NVIDIAGeForce8800Ultra每秒可以執(zhí)行超過(guò)400億次的浮點(diǎn)運(yùn)算——比10年前最強(qiáng)大的超級(jí)計(jì)算機(jī)還要厲害,并且是現(xiàn)今最強(qiáng)大的微處理器功能的5倍。Ultra所支持的數(shù)據(jù)并行編程模型可以充分發(fā)揮其計(jì)算能力,而不必關(guān)心究竟使用了多少個(gè)處理器。這是非常重要的,因?yàn)榻裉斓腢ltra已經(jīng)包含了100個(gè)處理器,而明天的Ultra可能包含更多,以后會(huì)更多。如摩爾定律所言,我們看不到集成電路密度究竟會(huì)發(fā)展到何種程度,但是大規(guī)模并行系統(tǒng)無(wú)疑是計(jì)算的未來(lái),而圖形硬件將會(huì)引導(dǎo)這種趨勢(shì)?! ”緯占舜罅孔钋把氐腉PU編程實(shí)例?,F(xiàn)在,已是將數(shù)據(jù)并行處理納入工作中的時(shí)候了。本書前4部分介紹的是GPU在幾何體、光照、渲染和圖像處理領(lǐng)域的具體應(yīng)用。第V、VI部分?jǐn)U大了GPU的應(yīng)用范圍,通過(guò)一些具體的可被數(shù)據(jù)并行GPU技術(shù)解決的非圖形應(yīng)用程序來(lái)說(shuō)明這一點(diǎn)。這些應(yīng)用多種多樣,從剛體模擬到流體模擬,從病毒簽名匹配到加密和解密,從隨機(jī)數(shù)生成到Gaussian計(jì)算?! ∽钕冗M(jìn)的計(jì)算設(shè)備究竟在哪里呢?本書的封面提醒我們,人類的大腦仍然是最強(qiáng)大的并行計(jì)算系統(tǒng)。計(jì)算機(jī)科學(xué)一個(gè)長(zhǎng)期的目標(biāo)是達(dá)到并最終超越人類的大腦。對(duì)計(jì)算機(jī)圖形社區(qū)的成員來(lái)講,這將是非常振奮人心的,因?yàn)樗麄兞私?、解決并掌控著大規(guī)模并行計(jì)算的挑戰(zhàn),他們最有可能實(shí)現(xiàn)這個(gè)夢(mèng)想。
內(nèi)容概要
《GPU精粹3》是GPU精粹系列暢銷書的第三卷,展示了當(dāng)今最前沿的圖形處理單元(GPU)編程技術(shù)。現(xiàn)代GPU的可編程性讓開發(fā)者不僅可以在自己的崗位上迅速脫穎而出,更使得他們可以在非圖形應(yīng)用程序中運(yùn)用GPU的卓越處理能力,例如,物理仿真、金融分析,甚至是病毒檢測(cè)——尤其是在cuDA體系結(jié)構(gòu)下。圖形學(xué)仍然是GPU主要應(yīng)用領(lǐng)域,通過(guò)學(xué)習(xí)本書,讀者會(huì)驚喜地發(fā)現(xiàn)一些最新的算法,使用它們可以創(chuàng)建非常真實(shí)的角色,實(shí)現(xiàn)更逼真的光照效果,以及完成繪制后的混合效果?! ”緯黝} ·幾何體 ·光照和陰影 ·渲染 ·圖像效果 ·物理仿真 ·GPU計(jì)算
作者簡(jiǎn)介
《GPU精粹3》的主編是NVIDIA公司開發(fā)者培訓(xùn)部的資深經(jīng)理Hubert Nguyen。他是一位經(jīng)驗(yàn)豐富的圖形工程師,曾為NVIDIA公司的Demo Team部門做出過(guò)巨大貢獻(xiàn)。他編著的圖書GPU Gems(Addison Wesley,2004)和《GPU精粹2》都非常暢銷。
書籍目錄
第Ⅰ部分 幾何體 第1章 使用GPU 生成復(fù)雜的程序化地形 第2章 群體動(dòng)畫渲染 第3章 DirectX 10 混合形狀:打破限制 第4章 下一代SpeedTree 渲染 第5章 普遍自適應(yīng)的網(wǎng)格優(yōu)化 第6章 GPU 生成的樹的過(guò)程式風(fēng)動(dòng)畫 第7章 GPU 上基于點(diǎn)的變形球可視化 第Ⅱ部分 光照和陰影 第8章 區(qū)域求和的差值陰影貼圖 第9章 使用全局照明實(shí)現(xiàn)互動(dòng)的電影級(jí)重光照 第10章 在可編程GPU 中實(shí)現(xiàn)并行分割的陰影貼圖 第11章 使用層次化的遮擋剔除和幾何體著色器得到高效魯棒的陰影體 第12章 高質(zhì)量的環(huán)境遮擋 第13章 作為后置處理的體積光照散射 第Ⅲ部分 渲染 第14章 用于真實(shí)感實(shí)時(shí)皮膚渲染的高級(jí)技術(shù) 第15章 可播放的全方位捕捉 第16章 Crysis 中植被的過(guò)程化動(dòng)畫和著色 第17章 魯棒的多鏡面反射和折射 第18章 用于浮雕映射的松散式錐形步進(jìn) 第19章 Tabula Rasa 中的延遲著色 第20章 基于GPU 的重要性采樣 第Ⅳ部分 圖像效果 第21章 真正的Impostor 第22章 在GPU 上處理法線貼圖 第23章 高速的離屏粒子 第24章 保持線性的重要性 第25章 在GPU 上渲染向量圖 第26章 通過(guò)顏色進(jìn)行對(duì)象探測(cè):使用 GPU 進(jìn)行實(shí)時(shí)視頻圖像處理 第28章 實(shí)用景深后期處理 第Ⅴ部分 物理仿真 第29章 GPU 上實(shí)時(shí)剛體仿真 第30章 實(shí)時(shí)仿真與3D 流體渲染 第31章 使用CUDA 進(jìn)行快速N-body 仿真 第32章 使用CUDA 進(jìn)行寬階段碰撞檢測(cè) 第33章 用于碰撞檢測(cè)的LCP算法的CUDA 實(shí)現(xiàn) 第34章 使用單過(guò)程GPU 掃描和四面體轉(zhuǎn)換的有向距離場(chǎng) 第Ⅵ部分 GPU 計(jì)算 第35章 使用GPU 進(jìn)行病毒特征的快速匹配 第36章 用GPU 進(jìn)行AES 加密和解密 第37章 使用CUDA 進(jìn)行高效的隨機(jī)數(shù)生成及應(yīng)用 第38章 使用CUDA 進(jìn)行地球內(nèi)部成像 第39章 使用CUDA 的并行前綴和(掃描方法) 第40章 高斯函數(shù)的增量計(jì)算 第41章 使用幾何體著色器處理緊湊和可變長(zhǎng)度的GPU 反饋
章節(jié)摘錄
我們首先通過(guò)對(duì)片段的每個(gè)位置指定一個(gè)透明度值來(lái)執(zhí)行混合,這個(gè)透明度值基于片段位置的距離。在進(jìn)行實(shí)際繪制前,我們?cè)谝粋€(gè)透明度路徑中累加這些透明度值。在繪制時(shí),我們可以基于片段的透明度值,以及在透明度路徑中存儲(chǔ)的累加透明度值,來(lái)決定一個(gè)片段對(duì)總像素顏色的作用效果。最終,我們使用法線擾動(dòng)技術(shù)來(lái)增加細(xì)節(jié),改善流表面的混合。當(dāng)將表面作為有向片段渲染時(shí),我們?cè)诿總€(gè)片段處略微地?cái)_動(dòng)法線。法線的擾動(dòng)由流密度場(chǎng)的曲率決定,密度場(chǎng)位于渲染片段的粒子位置處。密度場(chǎng)的曲率可以在速度限制路徑中通過(guò)計(jì)算密度場(chǎng)及梯度得到。使用梯度,我們可以獲得關(guān)于被渲染片段尺寸的一個(gè)向量,相切于流表面。這個(gè)向量與曲率(一個(gè)3×3矩陣)相乘,可獲得法線沿切向量的一個(gè)變化量。我們僅存儲(chǔ)使用點(diǎn)積得到的且法線投影到切向量方向的變化量,結(jié)果是一個(gè)縮放因子。這是對(duì)粒子位置偏離度的一個(gè)估計(jì)(實(shí)際上,它僅包含了部分的偏離度)。這個(gè)縮放因子被存儲(chǔ)起來(lái),在表面渲染階段,可以將該縮放因子與重新構(gòu)建的切向量結(jié)合使用,來(lái)構(gòu)成正方形法線的擾動(dòng)法線。 7.7結(jié)論 本章給出了一個(gè)方法,該方法有效且高效地在GPU中實(shí)現(xiàn)了Witkin and Heckbert 1994的基于點(diǎn)的隱式表面可視化,在保持互動(dòng)級(jí)幀速率的情況下渲染可變形球。我們的方法由三部分構(gòu)成:計(jì)算受限速度、斥力及粒子密度,來(lái)實(shí)現(xiàn)接近一致的粒子分布。后面兩部分包含了一個(gè)用于GPU粒子系統(tǒng)的新算法,粒子之間相互影響。方法的最后一個(gè)部分對(duì)原始方法進(jìn)行了改進(jìn),加速了流表面粒子的分布,并可以在不連續(xù)的表面使用分布,這樣防止了空隙。相比于行進(jìn)立方體(Marching Cubes)方法和光線追蹤方法,這個(gè)方法具有明顯的性能優(yōu)勢(shì),這是因?yàn)槠鋸?fù)雜度取決于流表面面積,而前兩種方法的復(fù)雜度取決于流的體積。 目前給出的方法仍然沒(méi)有解決所有的問(wèn)題。算法的進(jìn)一步改進(jìn)包含具有適應(yīng)性的粒子尺寸(這樣可以使流表面的臨時(shí)空隙被快速填充)。同時(shí),新生成的不連續(xù)表面部分并不總是在其表面具有粒子,這意味著只要它們?nèi)匀徊贿B續(xù),就一直不會(huì)收到任何粒子。但最大的問(wèn)題在于,對(duì)位于較遠(yuǎn)且較小的流部分的處理。由于斥力算法需要包含每個(gè)粒子的一個(gè)剪輯空間,因此有限分辨率的視口很可能導(dǎo)致多個(gè)粒子映射到了同一個(gè)像素上,造成數(shù)據(jù)丟失。最終的研究方向包括渲染表面粒子來(lái)實(shí)現(xiàn)不同的視覺(jué)效果,圖7-11就是這樣的一個(gè)例子。
媒體關(guān)注與評(píng)論
“GPU精粹系列展示了下一代3D引擎所需的大量核心算法?!薄 狹artin Mittring Grytek首席圖形程序員
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載