OpenGL着色语言TRANSFORM_TEX

时间:2013-02-18 17:42:35

标签: unity3d shader

在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中的等价是什么!

1 个答案:

答案 0 :(得分:10)

这只是一个Unity3D具体的,没有Cg等价物。 您可以在文件中找到此宏定义:

  

统一\编辑\数据\ 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 偏移

相关问题