mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-11-29 02:55:36 -05:00
103 lines
4 KiB
Text
103 lines
4 KiB
Text
|
#ifdef GL_ES
|
|||
|
precision highp float;
|
|||
|
#endif // GL_ES
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
|