bgfx/examples/runtime/shaders/glsl/fs_bump.bin
2012-10-27 21:34:41 -07:00

101 lines
No EOL
4 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#version 140
uniform vec4 u_lightRgbInnerR[4];
uniform vec4 u_lightPosRadius[4];
uniform sampler2D u_texNormal;
uniform sampler2D u_texColor;
varying vec2 v_texcoord0;
varying vec3 v_tangent;
varying vec3 v_normal;
varying vec3 v_view;
varying vec3 v_wpos;
void main ()
{
mat3 tmpvar_1;
tmpvar_1[0] = v_tangent;
tmpvar_1[1] = ((v_normal.yzx * v_tangent.zxy) - (v_normal.zxy * v_tangent.yzx));
tmpvar_1[2] = v_normal;
vec3 tmpvar_2;
tmpvar_2 = normalize(((2.0 * texture2D (u_texNormal, v_texcoord0).xyz) - 1.0));
vec3 tmpvar_3;
tmpvar_3 = (u_lightPosRadius[0].xyz - v_wpos);
float edge0_4;
edge0_4 = u_lightRgbInnerR[0].w;
float t_5;
t_5 = max (min ((((sqrt(dot (tmpvar_3, tmpvar_3)) / u_lightPosRadius[0].w) - edge0_4) / (1.0 - edge0_4)), 1.0), 0.0);
vec3 tmpvar_6;
tmpvar_6 = (tmpvar_1 * normalize(tmpvar_3));
float tmpvar_7;
tmpvar_7 = dot (tmpvar_2, tmpvar_6);
vec2 tmpvar_8;
tmpvar_8.x = tmpvar_7;
tmpvar_8.y = dot ((tmpvar_6 - ((2.0 * tmpvar_7) * tmpvar_2)), v_view);
vec4 tmpvar_9;
tmpvar_9.xw = vec2(1.0, 1.0);
tmpvar_9.y = max (0.0, tmpvar_7);
tmpvar_9.z = (float((tmpvar_7 >= 0.0)) * max (0.0, tmpvar_8.y));
vec3 tmpvar_10;
tmpvar_10 = (u_lightPosRadius[1].xyz - v_wpos);
float edge0_11;
edge0_11 = u_lightRgbInnerR[1].w;
float t_12;
t_12 = max (min ((((sqrt(dot (tmpvar_10, tmpvar_10)) / u_lightPosRadius[1].w) - edge0_11) / (1.0 - edge0_11)), 1.0), 0.0);
vec3 tmpvar_13;
tmpvar_13 = (tmpvar_1 * normalize(tmpvar_10));
float tmpvar_14;
tmpvar_14 = dot (tmpvar_2, tmpvar_13);
vec2 tmpvar_15;
tmpvar_15.x = tmpvar_14;
tmpvar_15.y = dot ((tmpvar_13 - ((2.0 * tmpvar_14) * tmpvar_2)), v_view);
vec4 tmpvar_16;
tmpvar_16.xw = vec2(1.0, 1.0);
tmpvar_16.y = max (0.0, tmpvar_14);
tmpvar_16.z = (float((tmpvar_14 >= 0.0)) * max (0.0, tmpvar_15.y));
vec3 tmpvar_17;
tmpvar_17 = (u_lightPosRadius[2].xyz - v_wpos);
float edge0_18;
edge0_18 = u_lightRgbInnerR[2].w;
float t_19;
t_19 = max (min ((((sqrt(dot (tmpvar_17, tmpvar_17)) / u_lightPosRadius[2].w) - edge0_18) / (1.0 - edge0_18)), 1.0), 0.0);
vec3 tmpvar_20;
tmpvar_20 = (tmpvar_1 * normalize(tmpvar_17));
float tmpvar_21;
tmpvar_21 = dot (tmpvar_2, tmpvar_20);
vec2 tmpvar_22;
tmpvar_22.x = tmpvar_21;
tmpvar_22.y = dot ((tmpvar_20 - ((2.0 * tmpvar_21) * tmpvar_2)), v_view);
vec4 tmpvar_23;
tmpvar_23.xw = vec2(1.0, 1.0);
tmpvar_23.y = max (0.0, tmpvar_21);
tmpvar_23.z = (float((tmpvar_21 >= 0.0)) * max (0.0, tmpvar_22.y));
vec3 tmpvar_24;
tmpvar_24 = (u_lightPosRadius[3].xyz - v_wpos);
float edge0_25;
edge0_25 = u_lightRgbInnerR[3].w;
float t_26;
t_26 = max (min ((((sqrt(dot (tmpvar_24, tmpvar_24)) / u_lightPosRadius[3].w) - edge0_25) / (1.0 - edge0_25)), 1.0), 0.0);
vec3 tmpvar_27;
tmpvar_27 = (tmpvar_1 * normalize(tmpvar_24));
float tmpvar_28;
tmpvar_28 = dot (tmpvar_2, tmpvar_27);
vec2 tmpvar_29;
tmpvar_29.x = tmpvar_28;
tmpvar_29.y = dot ((tmpvar_27 - ((2.0 * tmpvar_28) * tmpvar_2)), v_view);
vec4 tmpvar_30;
tmpvar_30.xw = vec2(1.0, 1.0);
tmpvar_30.y = max (0.0, tmpvar_28);
tmpvar_30.z = (float((tmpvar_28 >= 0.0)) * max (0.0, tmpvar_29.y));
vec4 tmpvar_31;
tmpvar_31 = texture2D (u_texColor, v_texcoord0);
vec4 result_32;
result_32.xyz = pow (tmpvar_31.xyz, vec3(2.2, 2.2, 2.2));
result_32.w = tmpvar_31.w;
gl_FragColor.xyz = (max (vec3(0.05, 0.05, 0.05), (((((u_lightRgbInnerR[0].xyz * max (0.0, clamp (tmpvar_9.y, 0.0, 1.0))) * (1.0 - (t_5 * (t_5 * (3.0 - (2.0 * t_5)))))) + ((u_lightRgbInnerR[1].xyz * max (0.0, clamp (tmpvar_16.y, 0.0, 1.0))) * (1.0 - (t_12 * (t_12 * (3.0 - (2.0 * t_12))))))) + ((u_lightRgbInnerR[2].xyz * max (0.0, clamp (tmpvar_23.y, 0.0, 1.0))) * (1.0 - (t_19 * (t_19 * (3.0 - (2.0 * t_19))))))) + ((u_lightRgbInnerR[3].xyz * max (0.0, clamp (tmpvar_30.y, 0.0, 1.0))) * (1.0 - (t_26 * (t_26 * (3.0 - (2.0 * t_26)))))))) * result_32.xyz);
gl_FragColor.w = 1.0;
vec4 result_33;
result_33.xyz = pow (gl_FragColor.xyz, vec3(0.454545, 0.454545, 0.454545));
result_33.w = gl_FragColor.w;
gl_FragColor = result_33;
}