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)

テクスチャ座標をスケーリングおよびオフセットします。 XY値は、テクスチャ タイリングオフセットZWを制御します。

于 2013-02-20T10:16:57.640 に答える