这是我读过的语法
tex t a b - 在a的坐标处对b中的纹理(应该是fs寄存器之一)进行采样,将得到的颜色放在t中。
但在一些开源项目代码中,我发现有人写了这样的tex:
tex ft0.xyzw vi0.xyzw fs0 <fLinear,mLinear,clamp,2d,rgba,b:45>//what's the bias:45?
和这个
tex ft3, v3, fs0<2d, linear, miplinear,dxt1>//what is dxt1, are there any like this?
让我真的很困惑我可以放入什么东西&lt;&gt;似乎没有订单要求
感谢任何提示
答案 0 :(得分:1)
我只能猜测其他旗帜的含义 - 它们不在我见过的任何文件中,而且绝对不是AGALMiniAssembler的股票版本。我的直觉是,它们很可能被AGALMiniAssembler的扩展版本用于特定Flash包(如Starling或Away3D)。我坚持使用记录良好的纹理标志 - 请参阅我帖子末尾的pdf链接。
至于订单,你是对的 - 假设你使用Adobe提供的AGALMiniAssembler的基本版本,将标签传递给tex函数时顺序无关紧要。
这样做的原因相对简单:单个&#39; tex使用的每个标签都是如此。当操作转换为字节码时,操作由单个64位字段表示。顺序并不重要,因为不同的标签将占据该字段内的不同位。当同时使用占据相同部分字段的两个标签时,您仍然会遇到麻烦 - &#34;最接近&#34;和&#34;线性&#34;例如,或者&#34; mipnearest&#34;和#34; nomip&#34; (注意这些指令之间的冲突行为!)。
如果您想查看当前非测试版Flash中实现的操作,或者您希望在传递到着色器之前进一步了解字节码的组装方式,请查看this pdf