2013-02-18 10 views
7

In Unity3D c'è un pezzo di codice per un vertex:glsl TRANSFORM_TEX

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; 
} 

In righe sotto:

o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); 

qual è il compito principale della funzione TRANSFORM_TEX e cosa è equivale in CgFx!

risposta

8

È solo un Unity3D specifico macro, non esiste l'equivalente Cg. È possibile trovare questo macro definizione nel file:

Unità \ Editor \ Data \ CGIncludes \ UnityCG.inc

E 'definita in questo modo:

// Transforms 2D UV by scale/bias property 
#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw) 

È scalabile e offset coordinate della trama. XY valori controlla la trama e ZW l'offset.

+2

quindi cosa fa? –