1

Here is the syntax I've read

tex t a b - Samples the texture in b (which should be one of the fs registers) at the coordinates in a, putting the resulting colour in t.

but In some opensource project code I found someone wrote tex like this:

tex ft0.xyzw vi0.xyzw fs0 <fLinear,mLinear,clamp,2d,rgba,b:45>//what's the bias:45?

and this

tex ft3, v3, fs0<2d, linear, miplinear,dxt1>//what is dxt1, are there any like this?

which really confusing me about what stuff I can put in <> it seems no order requirement

thanks for any hints

4

1 回答 1

2

我只能猜测那些其他标志的含义——它们不在我见过的任何文档中,而且绝对不在 AGALMiniAssembler 的库存版本中。我的直觉是,它们很可能被为与特定 Flash 包(如 Starling 或 Away3D)一起使用而创建的 AGALMiniAssembler 的扩展版本使用。我会坚持使用有据可查的纹理标志 - 请参阅我帖子末尾链接的 pdf。

至于顺序,您是正确的 - 将标签传递给 tex 函数时顺序无关紧要,假设您使用的是 Adob​​e 提供的 AGALMiniAssembler 的基本版本。

这样做的原因相对简单:当操作转换为字节码时,单个“tex”操作使用的每个标记都由单个 64 位字段表示。顺序无关紧要,因为不同的标签将在字段中占据不同的位。当同时使用占据字段相同部分的两个标签时,您仍然会遇到麻烦 - 例如“最近”和“线性”,或者“mipnearest”和“nomip”(注意这些指令之间的冲突行为! )。

如果您想查看当前非 beta 版 Flash 中实现的操作,或者如果您想进一步了解字节码在传递给着色器之前是如何组装的,请查看此 pdf 。

于 2014-05-20T15:51:34.157 回答