在unity3d中,有一段用于顶点着色器的代码:
v2f vert(appdata_full v) {
v2f o;
o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
o.vertexColor = v.color * _TintColor;
return o;
}
在下面的行中:
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
TRANSFORM_TEX函数的主要任务是什么,以及它在CgFx中的等效功能是什么!
最佳答案
这只是特定于Unity3D
的宏,没有等效的Cg
。
您可以在文件中找到此宏定义:
Unity \ Editor \ Data \ CGIncludes \ UnityCG.inc
它是这样定义的:
// Transforms 2D UV by scale/bias property
#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw)
它缩放和偏移纹理坐标。
XY
值控制纹理平铺和ZW
偏移量。关于unity3d - OpenGL着色语言TRANSFORM_TEX,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14942210/