2008年6月15日 星期日

饒了我吧,ATi …

不知道各位有沒有注意到,FancyDesigner裡的鏡面反射效果是可以有巢狀反射的。什麼是巢狀反射呢?舉例來說,如果有一塊大理石地板反射了地板上的傢俱,而有一面鏡子又反射了這塊地板,則鏡子裡的地板也可以看到所反射的傢俱。

Ati的顯示卡:茶几下的木板周圍可看見明顯的鋸齒狀白邊
(按圖放大)

nVidia的顯示卡:一切正常
(按圖放大)

這種情況在現實生活中常見,不過虛擬實境裡可不容易達成。當然囉,咱們儒思科技的研發團隊照例是責無旁貸,拼了老命來完成這偉大的任務。(有點臉紅了 :P)

話說FancyDesigner團隊所獨家開發的巢狀鏡射演算法(Nest Reflection Algorithm)總算是不付所託,圓滿達成任務;不過為了兼顧效能上的考量,鏡射裡的影像是會出現鋸齒狀的,而這也是要求完美的我們心中的痛。

不過最近隨著顯示卡的效能越來越強,我們倒是想出了解決之道,所以現今的FancyDesigner版本已可在鏡射面裡呈現高畫質反鋸齒的影像。不過,問題可來了,採用新的做法之後,卻發現在ATi的顯示卡上居然會出現奇怪的白邊,我們接連更換了幾次ATi的驅動程式都沒有用,而在nVidia的顯示卡上卻一切正常。唉,這可真是令人喪氣呀!據我推測,應該是ATi為了在反鋸齒(Anti-Aliasing)上取得較好的效能,而出現的錯誤。

ATi與nVidia這兩家公司我可是看著他們成長茁壯的,看著他們這十幾年來如何在3D晶片的市場攻城掠地的。nVidia的3D晶片一向在效能上較為突出,想當年,我還曾經以nVidia的TNT2顯示卡與SGI的Indigo2繪圖工作站做過一場慘烈的對比。結果售價高達一百多萬台幣的Indigo2竟然在效能上慘敗給當時售價僅有8仟多台幣的TNT2顯示卡。至於ATi方面,雖然早期在與nVidia的競爭上,效能並非總是能佔有什麼優勢,不過在畫質上的表現卻是令人印象深刻。特別是在全景反鋸齒(Full Scene Anti-Aliasing)上的表現,即使打開了高達6倍取樣的反鋸齒效果,在效能上的影響並不明顯。所以以往我都會跟人客推薦採用ATi的顯示卡。

不過,看來這次我們算是無意間踩到ATi的痛腳了,當Back Buffer與Render Target同使採用反鋸齒時,竟然會出現明顯的鋸齒狀白邊,而如果所採用的取樣倍數不一致,則下場更慘,連整個Back Buffer的Background color都會被改掉,而且整個Back Buffer都會呈現不堪的白邊鋸齒狀。看來,還是nVidia比較遵循著D3D的規則來發展,不僅畫面一切正常,而且畫質與效能也相當不錯。

不過雖然這是人家驅動程式的瑕疵,但是我們總不能要每個使用者都換用nVidia的顯示卡呀!所以囉,幾經琢磨之下,目前我已經想到了解決之道來避開ATi的這隻臭蟲,只是行不行得通還得實際去測試才知道,各位看倌就敬候佳音吧!

沒有留言:

張貼留言