2013-02-18 22 views
7

Trong unity3d có một đoạn mã cho một vertex shader:OpenGL Shading Language 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; 
} 

Trong dòng dưới đây:

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

nhiệm vụ chính của chức năng TRANSFORM_TEX là gì và những gì là nó equiavalent trong CgFx!

Trả lời

8

Nó chỉ là một Unity3D cụ vĩ mô, không có Cg tương đương. Bạn có thể tìm định nghĩa macro này trong file:

Unity \ Biên tập \ Data \ CGIncludes \ UnityCG.inc

Nó được định nghĩa theo cách này:

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

Nó quy mô và hiệu số tọa độ kết cấu. XY giá trị điều khiển ốp lát kết cấuZW các offset.

+2

vậy nó sẽ làm gì? –

Các vấn đề liên quan