微軟亞洲研究院網絡圖形組用計算機展現質、色、光、影的極致,詮釋最直觀、震撼的科學之美。
在微軟自主研制的Xbox游戲機里打斗,你可以感受到栩栩如生的虛擬場景:鱗片經過陽光折射在劍龍粗糙的身體上泛著光,水波泛起層層漣漪如同置身湖邊,你甚至可以聆聽頭朝下跳入水中時激起一圈圈水花,感受躲避敵人時草葉掃過臉頰的瞬間。
“我想凡是做圖形學研究的人,都有一種強烈的完美主義傾向,我們組的人都概莫能外。”微軟亞洲研究院網絡圖形組主任研究員童欣1999年加入微軟,在計算機上呈現極致的視覺感受一直是他和同事追求的目標。
微軟亞洲研究院網絡圖形組的研究領域主要集中在微軟的圖形系統和平臺以及DirectX和XDK游戲平臺。對于網絡圖形組來說,把創新技術轉化到產品只是第一步,接下來就像用彩線織布,網絡圖形組提供彩線,開發者再用彩線織出各種樣式。
“在過去的十年里,驅動整個圖形學發展的關鍵就是GPU(圖形處理器)的發展,隨著游戲和影視圖像質量越來越逼近,我們希望兩者最后能有一樣的生產流程。”Xbox上的真實細膩的顯示,正是網絡圖形組利用前沿的圖形技術創造的一條“彩線”。伴隨著Windows 7的發布,網絡圖形組的創新研究也將影響更多的人,童欣的夢想也越來越接近現實。
windows 7里的中國智慧
微軟的新一代操作系統WindOWS7有一個鮮為人知的特性——自帶了DirectX 11,支持了名為DirectCompute的GPGPU(圖形處理器通用計算)編程接口。也就是說,Windows 7成了第一個原生支持GPGPU的操作系統。有了對GPGPU的支持,Windows 7向眾多的開發人員和用戶開啟了使用GPU進行并行計算的大門。
“過去的圖形芯片的廠商,會發布一些專有的API,或者一些專有的程序幫助用戶來做開發。這樣問題就出現了:用戶不僅需要對硬件有很好的了解,而且當用戶要將應用遷移到另一個GPU上是很困難的,意味著程序要重寫。”童欣對記者說。在過去的幾年里,因為游戲和用戶對娛樂需求的驅動,GPU的能力越來越強。同時,開始用GPU做一些通用的計算。而DirectX11在GPU上,提供了一套通用于不同GPU的編程語言。

“從最終的用戶來講,Windows 7提供了很多體驗,從開發者角度來講,全新平臺提供了很多新的可能性,去開發更好的、更新的應用。”童欣說。
如何體現出GPGPU的強大威力,怎樣才能向其他開發人員演示如何使用新的GPGPU接口?
為此,網絡圖形組開發了兩項基于GPGPU(圖形處理器通用計算)核心技術:DTC(離散紋理壓縮)和ITess(并行幾何鑲嵌)。
創新之美
影響圖像效果有兩方面,一個是模型本身網格的精細程度,包括凹凸等立體的幾何細節,一個是色彩的變化(材質、紋理的變化)。為了在這兩方面提升圖像效果,網絡圖形組可謂絞盡腦汁。
從早期的《玩具總動員》到最新的《冰河世紀3》,大屏幕上那些圓潤精細的模型都少不了細分算法的功勞。但是,這個算法在傳統上只能由CPU完成,因為它涉及到許多不規則的操作,需要串行地一步步執行。如果硬要用GPU來實現,就必須要涉及到大量的外部IO,降低了細分的效率,同時細分的程度也有限制。DirectCompute帶來的新功能使得開發人員可以更靈活和高效地利用GPU,把那些不規則操作并行化,而不用任何多余的外部IO。這樣一來,GPU就可以并行地全速執行細分。沒過多長時間,網絡圖形組就誕生出了第一個原型演示,并給這個算法起了個名字:iTess,意思是無限細分算法(infinity tessellation)。它可以把輸入的粗糙模型進行無限的自適應細分,得到用戶需要的更為精細的模型。后來,這個演示順利地成為了DirectX 11 SDK的一個例子。
“可以想象,第一,我送給GPU的數據是很少的數據。第二,我在GPU上可以生成很多的數據,最后顯示的質量可以達到很高。一方面CPU的計算減少了,另一方面傳輸也減少了。這對于游戲和三維形體顯示來講,這是非常有價值的事情。”
為了顯示圖片的良好效果,一方面要有一個比較精細的幾何模型。另一方面要有非常漂亮的顏色和紋理變化細節。這樣帶來的問題就是存儲量很大,傳輸也很費時間。于是要做一些壓縮。網絡圖形組很快提供了一種新的紋理壓縮算法,將DirectX 11的計算型渲染器用于紋理貼圖壓縮。新算法質量更高,用戶可以快速地看到這個效果,計算也比以前快了幾百倍;對于效果而言,也是很大的提升。
“最大的難點在于我們把這個算法寫出來之后,我們要經過很多的討論研究,怎么讓它中間的數據結構相關性最小、生成數據結構最小,這樣它可以最有效地生成最后的結果。”盡管并不容易,但對于微軟亞洲研究院的研究員們來說,挑戰就意味著突破。
挑戰光影極限
“PC上的GPU從無到有,大概用了兩三年的時間,就超越了當時最先進的圖形工作站能達到的圖形效果,甚至提供了更多的編程的特性。而微軟研究院集中了世界上最優秀的一批圖形學的研究員,研發了一系列基于GPU的算法和軟件。”回想起微軟在圖像學方向的一步步摸索和創新,童欣充滿感慨。
2003年,微軟亞洲研究院網絡圖形組的研究成果——凸凹的感覺樹干,登上了ACM Siggraph ComputerGraphics的封面。在世界頂級學術雜志上發表論文,也就意味著代表了站在了圖形學的研究的前沿。這一技術隨后被應用于之后發布的Vista系統。
“在DirectX 11和Windows 7上開發這個平臺,只是第一步。下一步面臨的更重要問題,就是如何充分使用這一平臺,研發一系列算法和工具,縮短開發流程帶給用戶更真、更好的光影效果?”童欣說,“而通用GPU的計算,除了一些圖形的應用,我們更希望把GPU應用到非圖形計算上。這就需要進一步研究利用DirectX 11設計一些更好的API、開發工具,讓原來熟悉CPU計算的開發者快速地實現GPU的一些應用,自由的探討這方面應用的可能性。”
圖形學的一個目標是帶給用戶真實世界一樣的視覺體驗。目前HDTV(數字電視)的分辨率已經能達到1920×1080,PC顯示器的分辨率甚至可以達到更高,這就意味著說我們的游戲可以做到更高的分辨率。童欣希望有一天,人眼看到的精細程度和制成圖像的顯示精細程度是沒有差別的。
“分辨率、光影效果,我們都希望能達到與電影一樣的程度,同時帶給用戶交互的體驗。”盡管還有很多的工作要做,童欣和同事們仍在“偏執”地不斷挑戰質、色、光、影的極致,詮釋最直觀、震撼的科學之美。