FXComposer中的Annotations與Semantics
DXSAS : DirectX Standard Annotations and Semantics,DirectX引入的一項(xiàng)在Shader代碼與應(yīng)用程序之間進(jìn)行數(shù)據(jù)綁定的規(guī)范,當(dāng)出到0.8時被廣泛用于各種應(yīng)用程序中,后來從MS的產(chǎn)品線中神秘消失,有關(guān)DXSAS的規(guī)范文檔被從MSDN中移除,只留下幾頁引用說明。。。
簡單來說,當(dāng)我們在DX中使用Shader的時候,我們會使用一個常量表來設(shè)置各種參數(shù)值,其中最重要的當(dāng)屬世界變換矩陣了。這在用DX寫游戲程序時沒有問題,但是在其他一些Shader編輯工具中問題就出來了,如何設(shè)置這些變量?當(dāng)然,每種工具可以提供自己的方法,比如現(xiàn)在Max,Maya都提供了自己的方法在Shader中綁定世界變換矩陣,但問題是每種工具提供的方法都不一樣,這樣寫出來的Shader文件就麻煩了。。。
于是,MS這時站出來,提出了一個標(biāo)準(zhǔn):DXSAS。這是目前還能找到的DXSAS的一段描述:
Standard annotations and semantics (DXSAS) provide a method of using shaders in a standard way that enables shaders to be used with tools, applications, and game engines. DXSAS defines a set of semantics and annotations that are attached to host application values and effect parameters for the purpose of sharing effects.
地址:http://msdn.microsoft.com/en-us/library/bb173004(VS.85).aspx
有標(biāo)準(zhǔn)是好事,而且我們也能看到,大量的Shader工具及游戲引擎也使用到了SAS,比如FXComposer,比如RenderMonkey,比如CryEngine。。。當(dāng)然,各工具可能對SAS都會有自己的擴(kuò)展,但大部分還都是按照標(biāo)準(zhǔn)來的。
可是,為什么MS突然就將這標(biāo)準(zhǔn)移除了。。。而且,沒有任何理由的。。。以至于FXComposer1.8版本以前的文檔中附帶的SAS描述章節(jié)也跟著一并刪除,我在FXComposer2.5上找遍了整個手冊也沒找到這個 WorldViewProjection 從哪里來,翻遍了MSDN上HLSL有關(guān)的內(nèi)容也沒有看到這幾個關(guān)鍵字。無奈Google之,原來受此困惑的人還真不少。
好在,Nvidia推出了一份新的文檔,描述SAS的使用方法,或許Nvidia也很困惑,“which came from DirectX 9, and are sometimes hard to find”。。。但是新的FXComposer手冊中對這些只字未提卻是我仍然很困惑的,對于像我這樣的一個新手來說,完全不可能知道這些東西是如何來的,如何去找這些Semantics的定義。
Nvidia網(wǎng)站上的SAS說明文檔:http://developer.nvidia.com/object/using_sas.html
以及FXComposor官方論壇上置頂?shù)年P(guān)于SAS文檔的說明貼,當(dāng)時我竟然沒看到這個置頂貼 :( http://developer.nvidia.com/forums/index.php?showtopic=1358
其他人提出的一些相關(guān)疑問:
http://developer.nvidia.com/forums/index.php?showtopic=750
http://developer.nvidia.com/forums/index.php?showtopic=31
http://developer.nvidia.com/forums/index.php?showtopic=1061
http://developer.nvidia.com/forums/index.php?showtopic=1347
http://developer.nvidia.com/forums/index.php?showtopic=1394
留下這些記錄,也許有跟我一樣的初哥們,少點(diǎn)困惑 :)
posted on 2009-09-28 00:02 白云哥 閱讀(1902) 評論(3) 編輯 收藏 引用 所屬分類: GameDev