FXComposer中的Annotations与Semantics

DXSAS : DirectX Standard Annotations and Semantics,DirectX引入的一项在Shader代码与应用程序之间进行数据绑定的规范,当出到0.8时被广泛用于各种应用程序中,后来从MS的产品线中神秘消失,有关DXSAS的规范文档被从MSDN中移除,只留下几页引用说明。。。

简单来说,当我们在DX中使用Shader的时候,我们会使用一个常量表来设置各种参数值,其中最重要的当属世界变换矩阵了。这在用DX写游戏程序时没有问题,但是在其他一些Shader编辑工具中问题就出来了,如何设置这些变量?当然,每种工具可以提供自己的方法,比如现在Max,Maya都提供了自己的方法在Shader中绑定世界变换矩阵,但问题是每种工具提供的方法都不一样,这样写出来的Shader文件就麻烦了。。。

于是,MS这时站出来,提出了一个标准: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

有标准是好事,而且我们也能看到,大量的Shader工具及游戏引擎也使用到了SAS,比如FXComposer,比如RenderMonkey,比如CryEngine。。。当然,各工具可能对SAS都会有自己的扩展,但大部分还都是按照标准来的。

可是,为什么MS突然就将这标准移除了。。。而且,没有任何理由的。。。以至于FXComposer1.8版本以前的文档中附带的SAS描述章节也跟着一并删除,我在FXComposer2.5上找遍了整个手册也没找到这个 WorldViewProjection 从哪里来,翻遍了MSDN上HLSL有关的内容也没有看到这几个关键字。无奈Google之,原来受此困惑的人还真不少。

好在,Nvidia推出了一份新的文档,描述SAS的使用方法,或许Nvidia也很困惑,“which came from DirectX 9, and are sometimes hard to find”。。。但是新的FXComposer手册中对这些只字未提却是我仍然很困惑的,对于像我这样的一个新手来说,完全不可能知道这些东西是如何来的,如何去找这些Semantics的定义。

Nvidia网站上的SAS说明文档:http://developer.nvidia.com/object/using_sas.html

以及FXComposor官方论坛上置顶的关于SAS文档的说明贴,当时我竟然没看到这个置顶贴 :(  http://developer.nvidia.com/forums/index.php?showtopic=1358

其他人提出的一些相关疑问:

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

留下这些记录,也许有跟我一样的初哥们,少点困惑 :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值