13

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

4

1 回答 1

21

这只是一个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)

它缩放和偏移纹理坐标。 XYvalues 控制纹理平铺偏移ZW量。

于 2013-02-20T10:16:57.640 回答