微軟亞洲研究院網(wǎng)絡(luò)圖形組用計(jì)算機(jī)展現(xiàn)質(zhì)、色、光、影的極致,詮釋最直觀、震撼的科學(xué)之美。
在微軟自主研制的Xbox游戲機(jī)里打斗,你可以感受到栩栩如生的虛擬場景:鱗片經(jīng)過陽光折射在劍龍粗糙的身體上泛著光,水波泛起層層漣漪如同置身湖邊,你甚至可以聆聽頭朝下跳入水中時(shí)激起一圈圈水花,感受躲避敵人時(shí)草葉掃過臉頰的瞬間。
“我想凡是做圖形學(xué)研究的人,都有一種強(qiáng)烈的完美主義傾向,我們組的人都概莫能外?!蔽④泚喼扪芯吭壕W(wǎng)絡(luò)圖形組主任研究員童欣1999年加入微軟,在計(jì)算機(jī)上呈現(xiàn)極致的視覺感受一直是他和同事追求的目標(biāo)。
微軟亞洲研究院網(wǎng)絡(luò)圖形組的研究領(lǐng)域主要集中在微軟的圖形系統(tǒng)和平臺以及DirectX和XDK游戲平臺。對于網(wǎng)絡(luò)圖形組來說,把創(chuàng)新技術(shù)轉(zhuǎn)化到產(chǎn)品只是第一步,接下來就像用彩線織布,網(wǎng)絡(luò)圖形組提供彩線,開發(fā)者再用彩線織出各種樣式。
“在過去的十年里,驅(qū)動整個(gè)圖形學(xué)發(fā)展的關(guān)鍵就是GPU(圖形處理器)的發(fā)展,隨著游戲和影視圖像質(zhì)量越來越逼近,我們希望兩者最后能有一樣的生產(chǎn)流程?!盭box上的真實(shí)細(xì)膩的顯示,正是網(wǎng)絡(luò)圖形組利用前沿的圖形技術(shù)創(chuàng)造的一條“彩線”。伴隨著Windows 7的發(fā)布,網(wǎng)絡(luò)圖形組的創(chuàng)新研究也將影響更多的人,童欣的夢想也越來越接近現(xiàn)實(shí)。
windows 7里的中國智慧
微軟的新一代操作系統(tǒng)WindOWS7有一個(gè)鮮為人知的特性——自帶了DirectX 11,支持了名為DirectCompute的GPGPU(圖形處理器通用計(jì)算)編程接口。也就是說,Windows 7成了第一個(gè)原生支持GPGPU的操作系統(tǒng)。有了對GPGPU的支持,Windows 7向眾多的開發(fā)人員和用戶開啟了使用GPU進(jìn)行并行計(jì)算的大門。
“過去的圖形芯片的廠商,會發(fā)布一些專有的API,或者一些專有的程序幫助用戶來做開發(fā)。這樣問題就出現(xiàn)了:用戶不僅需要對硬件有很好的了解,而且當(dāng)用戶要將應(yīng)用遷移到另一個(gè)GPU上是很困難的,意味著程序要重寫。”童欣對記者說。在過去的幾年里,因?yàn)橛螒蚝陀脩魧蕵沸枨蟮尿?qū)動,GPU的能力越來越強(qiáng)。同時(shí),開始用GPU做一些通用的計(jì)算。而DirectX11在GPU上,提供了一套通用于不同GPU的編程語言。
“從最終的用戶來講,Windows 7提供了很多體驗(yàn),從開發(fā)者角度來講,全新平臺提供了很多新的可能性,去開發(fā)更好的、更新的應(yīng)用?!蓖勒f。
如何體現(xiàn)出GPGPU的強(qiáng)大威力,怎樣才能向其他開發(fā)人員演示如何使用新的GPGPU接口?
為此,網(wǎng)絡(luò)圖形組開發(fā)了兩項(xiàng)基于GPGPU(圖形處理器通用計(jì)算)核心技術(shù):DTC(離散紋理壓縮)和ITess(并行幾何鑲嵌)。
創(chuàng)新之美
影響圖像效果有兩方面,一個(gè)是模型本身網(wǎng)格的精細(xì)程度,包括凹凸等立體的幾何細(xì)節(jié),一個(gè)是色彩的變化(材質(zhì)、紋理的變化)。為了在這兩方面提升圖像效果,網(wǎng)絡(luò)圖形組可謂絞盡腦汁。
從早期的《玩具總動員》到最新的《冰河世紀(jì)3》,大屏幕上那些圓潤精細(xì)的模型都少不了細(xì)分算法的功勞。但是,這個(gè)算法在傳統(tǒng)上只能由CPU完成,因?yàn)樗婕暗皆S多不規(guī)則的操作,需要串行地一步步執(zhí)行。如果硬要用GPU來實(shí)現(xiàn),就必須要涉及到大量的外部IO,降低了細(xì)分的效率,同時(shí)細(xì)分的程度也有限制。DirectCompute帶來的新功能使得開發(fā)人員可以更靈活和高效地利用GPU,把那些不規(guī)則操作并行化,而不用任何多余的外部IO。這樣一來,GPU就可以并行地全速執(zhí)行細(xì)分。沒過多長時(shí)間,網(wǎng)絡(luò)圖形組就誕生出了第一個(gè)原型演示,并給這個(gè)算法起了個(gè)名字:iTess,意思是無限細(xì)分算法(infinity tessellation)。它可以把輸入的粗糙模型進(jìn)行無限的自適應(yīng)細(xì)分,得到用戶需要的更為精細(xì)的模型。后來,這個(gè)演示順利地成為了DirectX 11 SDK的一個(gè)例子。
“可以想象,第一,我送給GPU的數(shù)據(jù)是很少的數(shù)據(jù)。第二,我在GPU上可以生成很多的數(shù)據(jù),最后顯示的質(zhì)量可以達(dá)到很高。一方面CPU的計(jì)算減少了,另一方面?zhèn)鬏斠矞p少了。這對于游戲和三維形體顯示來講,這是非常有價(jià)值的事情?!?/p>
為了顯示圖片的良好效果,一方面要有一個(gè)比較精細(xì)的幾何模型。另一方面要有非常漂亮的顏色和紋理變化細(xì)節(jié)。這樣帶來的問題就是存儲量很大,傳輸也很費(fèi)時(shí)間。于是要做一些壓縮。網(wǎng)絡(luò)圖形組很快提供了一種新的紋理壓縮算法,將DirectX 11的計(jì)算型渲染器用于紋理貼圖壓縮。新算法質(zhì)量更高,用戶可以快速地看到這個(gè)效果,計(jì)算也比以前快了幾百倍;對于效果而言,也是很大的提升。
“最大的難點(diǎn)在于我們把這個(gè)算法寫出來之后,我們要經(jīng)過很多的討論研究,怎么讓它中間的數(shù)據(jù)結(jié)構(gòu)相關(guān)性最小、生成數(shù)據(jù)結(jié)構(gòu)最小,這樣它可以最有效地生成最后的結(jié)果。”盡管并不容易,但對于微軟亞洲研究院的研究員們來說,挑戰(zhàn)就意味著突破。
挑戰(zhàn)光影極限
“PC上的GPU從無到有,大概用了兩三年的時(shí)間,就超越了當(dāng)時(shí)最先進(jìn)的圖形工作站能達(dá)到的圖形效果,甚至提供了更多的編程的特性。而微軟研究院集中了世界上最優(yōu)秀的一批圖形學(xué)的研究員,研發(fā)了一系列基于GPU的算法和軟件?!被叵肫鹞④浽趫D像學(xué)方向的一步步摸索和創(chuàng)新,童欣充滿感慨。
2003年,微軟亞洲研究院網(wǎng)絡(luò)圖形組的研究成果——凸凹的感覺樹干,登上了ACM Siggraph ComputerGraphics的封面。在世界頂級學(xué)術(shù)雜志上發(fā)表論文,也就意味著代表了站在了圖形學(xué)的研究的前沿。這一技術(shù)隨后被應(yīng)用于之后發(fā)布的Vista系統(tǒng)。
“在DirectX 11和Windows 7上開發(fā)這個(gè)平臺,只是第一步。下一步面臨的更重要問題,就是如何充分使用這一平臺,研發(fā)一系列算法和工具,縮短開發(fā)流程帶給用戶更真、更好的光影效果?”童欣說,“而通用GPU的計(jì)算,除了一些圖形的應(yīng)用,我們更希望把GPU應(yīng)用到非圖形計(jì)算上。這就需要進(jìn)一步研究利用DirectX 11設(shè)計(jì)一些更好的API、開發(fā)工具,讓原來熟悉CPU計(jì)算的開發(fā)者快速地實(shí)現(xiàn)GPU的一些應(yīng)用,自由的探討這方面應(yīng)用的可能性?!?/p>
圖形學(xué)的一個(gè)目標(biāo)是帶給用戶真實(shí)世界一樣的視覺體驗(yàn)。目前HDTV(數(shù)字電視)的分辨率已經(jīng)能達(dá)到1920×1080,PC顯示器的分辨率甚至可以達(dá)到更高,這就意味著說我們的游戲可以做到更高的分辨率。童欣希望有一天,人眼看到的精細(xì)程度和制成圖像的顯示精細(xì)程度是沒有差別的。
“分辨率、光影效果,我們都希望能達(dá)到與電影一樣的程度,同時(shí)帶給用戶交互的體驗(yàn)。”盡管還有很多的工作要做,童欣和同事們?nèi)栽凇捌珗?zhí)”地不斷挑戰(zhàn)質(zhì)、色、光、影的極致,詮釋最直觀、震撼的科學(xué)之美。