bgfx/3rdparty/glsl-optimizer/tests/fragment/unity-Reflective_Bumped_Unlit-in.txt
Branimir Karadzic dee3fe5266 Initial commit.
2012-04-03 20:30:07 -07:00

75 lines
1.7 KiB
Text

struct v2f_vertex_lit {
vec2 uv;
vec4 diff;
vec4 spec;
};
struct v2f_img {
vec4 pos;
vec2 uv;
};
struct appdata_img {
vec4 vertex;
vec2 texcoord;
};
struct v2f {
vec4 pos;
float fog;
vec2 uv;
vec2 uv2;
vec3 I;
vec3 TtoW0;
vec3 TtoW1;
vec3 TtoW2;
};
struct appdata_tan {
vec4 vertex;
vec4 tangent;
vec3 normal;
vec4 texcoord;
};
uniform sampler2D _BumpMap;
uniform samplerCube _Cube;
uniform sampler2D _MainTex;
uniform vec4 _ReflectColor;
vec4 UnpackNormal( in vec4 packednormal );
vec4 frag( in v2f i );
vec4 UnpackNormal( in vec4 packednormal ) {
vec4 normal;
normal.xy = ((packednormal.wy * 2.00000) - 1.00000);
normal.z = sqrt( ((1.00000 - (normal.x * normal.x )) - (normal.y * normal.y )) );
return normal;
}
vec4 frag( in v2f i ) {
vec4 normal;
vec4 texcol;
vec3 wn;
vec3 r;
vec4 c;
vec4 reflcolor;
normal = UnpackNormal( texture2D( _BumpMap, i.uv2));
texcol = texture2D( _MainTex, i.uv);
wn.x = dot( i.TtoW0, normal.xyz );
wn.y = dot( i.TtoW1, normal.xyz );
wn.z = dot( i.TtoW2, normal.xyz );
r = reflect( i.I, wn);
c = (gl_LightModel.ambient * texcol);
c.xyz *= 2.00000;
reflcolor = ((textureCube( _Cube, r) * _ReflectColor) * texcol.w );
return (c + reflcolor);
}
varying vec4 xlv_FOG;
void main() {
vec4 xl_retval;
v2f xlt_i;
xlt_i.pos = vec4(0.0);
xlt_i.fog = float( xlv_FOG);
xlt_i.uv = vec2( gl_TexCoord[0]);
xlt_i.uv2 = vec2( gl_TexCoord[1]);
xlt_i.I = vec3( gl_TexCoord[2]);
xlt_i.TtoW0 = vec3( gl_TexCoord[3]);
xlt_i.TtoW1 = vec3( gl_TexCoord[4]);
xlt_i.TtoW2 = vec3( gl_TexCoord[5]);
xl_retval = frag( xlt_i);
gl_FragData[0] = vec4( xl_retval);
}