bgfx/examples/runtime/shaders/gles/fs_raymarching.bin
2012-10-07 20:41:18 -07:00

234 lines
No EOL
9.3 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.

#ifdef GL_ES
precision highp float;
#endif // GL_ES
uniform vec3 u_lightDir;
uniform mat4 u_mtx;
varying vec2 v_texcoord0;
varying vec4 v_color0;
void main ()
{
vec4 tmpvar_1;
tmpvar_1.zw = vec2(0.0, 1.0);
tmpvar_1.x = v_texcoord0.x;
tmpvar_1.y = v_texcoord0.y;
vec4 tmpvar_2;
tmpvar_2 = (u_mtx * tmpvar_1);
vec3 tmpvar_3;
tmpvar_3 = (tmpvar_2.xyz / tmpvar_2.w);
vec4 tmpvar_4;
tmpvar_4.zw = vec2(1.0, 1.0);
tmpvar_4.x = v_texcoord0.x;
tmpvar_4.y = v_texcoord0.y;
vec4 tmpvar_5;
tmpvar_5 = (u_mtx * tmpvar_4);
vec3 tmpvar_6;
tmpvar_6 = (tmpvar_5.xyz / tmpvar_5.w);
float tmpvar_7;
vec3 arg0_8;
arg0_8 = (tmpvar_6 - tmpvar_3);
tmpvar_7 = sqrt(dot (arg0_8, arg0_8));
vec3 tmpvar_9;
tmpvar_9 = normalize((tmpvar_6 - tmpvar_3));
vec3 _ray_10;
_ray_10 = tmpvar_3;
vec3 _dir_11;
_dir_11 = tmpvar_9;
int ii_12;
float tt_13;
tt_13 = 0.0;
ii_12 = 0;
for (int ii_12 = 0; ii_12 < 64; ) {
vec3 _pos_14;
_pos_14 = (_ray_10 + (_dir_11 * tt_13));
vec3 tmpvar_15;
tmpvar_15 = max ((abs(_pos_14) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_16;
_pos_16 = (_pos_14 + vec3(4.0, 0.0, 0.0));
vec3 _pos_17;
_pos_17 = (_pos_14 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_18;
_pos_18 = (_pos_14 + vec3(0.0, 4.0, 0.0));
vec3 _pos_19;
_pos_19 = (_pos_14 + vec3(0.0, -4.0, 0.0));
vec3 _pos_20;
_pos_20 = (_pos_14 + vec3(0.0, 0.0, 4.0));
vec3 _pos_21;
_pos_21 = (_pos_14 + vec3(0.0, 0.0, -4.0));
float tmpvar_22;
tmpvar_22 = min (min (min (min (min (min ((sqrt(dot (tmpvar_15, tmpvar_15)) - 0.5), (sqrt(dot (_pos_16, _pos_16)) - 1.0)), (sqrt(dot (_pos_17, _pos_17)) - 1.0)), (sqrt(dot (_pos_18, _pos_18)) - 1.0)), (sqrt(dot (_pos_19, _pos_19)) - 1.0)), (sqrt(dot (_pos_20, _pos_20)) - 1.0)), (sqrt(dot (_pos_21, _pos_21)) - 1.0));
if ((tmpvar_22 > 0.001)) {
tt_13 = (tt_13 + tmpvar_22);
};
ii_12 = (ii_12 + 1);
};
float tmpvar_23;
if ((tt_13 < tmpvar_7)) {
tmpvar_23 = tt_13;
} else {
tmpvar_23 = 0.0;
};
if ((tmpvar_23 > 0.5)) {
vec3 tmpvar_24;
tmpvar_24 = (tmpvar_3 + (tmpvar_9 * tmpvar_23));
vec3 _pos_25;
_pos_25 = (tmpvar_24 + vec3(0.002, 0.0, 0.0));
vec3 tmpvar_26;
tmpvar_26 = max ((abs(_pos_25) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_27;
_pos_27 = (_pos_25 + vec3(4.0, 0.0, 0.0));
vec3 _pos_28;
_pos_28 = (_pos_25 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_29;
_pos_29 = (_pos_25 + vec3(0.0, 4.0, 0.0));
vec3 _pos_30;
_pos_30 = (_pos_25 + vec3(0.0, -4.0, 0.0));
vec3 _pos_31;
_pos_31 = (_pos_25 + vec3(0.0, 0.0, 4.0));
vec3 _pos_32;
_pos_32 = (_pos_25 + vec3(0.0, 0.0, -4.0));
vec3 _pos_33;
_pos_33 = (tmpvar_24 - vec3(0.002, 0.0, 0.0));
vec3 tmpvar_34;
tmpvar_34 = max ((abs(_pos_33) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_35;
_pos_35 = (_pos_33 + vec3(4.0, 0.0, 0.0));
vec3 _pos_36;
_pos_36 = (_pos_33 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_37;
_pos_37 = (_pos_33 + vec3(0.0, 4.0, 0.0));
vec3 _pos_38;
_pos_38 = (_pos_33 + vec3(0.0, -4.0, 0.0));
vec3 _pos_39;
_pos_39 = (_pos_33 + vec3(0.0, 0.0, 4.0));
vec3 _pos_40;
_pos_40 = (_pos_33 + vec3(0.0, 0.0, -4.0));
vec3 _pos_41;
_pos_41 = (tmpvar_24 + vec3(0.0, 0.002, 0.0));
vec3 tmpvar_42;
tmpvar_42 = max ((abs(_pos_41) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_43;
_pos_43 = (_pos_41 + vec3(4.0, 0.0, 0.0));
vec3 _pos_44;
_pos_44 = (_pos_41 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_45;
_pos_45 = (_pos_41 + vec3(0.0, 4.0, 0.0));
vec3 _pos_46;
_pos_46 = (_pos_41 + vec3(0.0, -4.0, 0.0));
vec3 _pos_47;
_pos_47 = (_pos_41 + vec3(0.0, 0.0, 4.0));
vec3 _pos_48;
_pos_48 = (_pos_41 + vec3(0.0, 0.0, -4.0));
vec3 _pos_49;
_pos_49 = (tmpvar_24 - vec3(0.0, 0.002, 0.0));
vec3 tmpvar_50;
tmpvar_50 = max ((abs(_pos_49) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_51;
_pos_51 = (_pos_49 + vec3(4.0, 0.0, 0.0));
vec3 _pos_52;
_pos_52 = (_pos_49 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_53;
_pos_53 = (_pos_49 + vec3(0.0, 4.0, 0.0));
vec3 _pos_54;
_pos_54 = (_pos_49 + vec3(0.0, -4.0, 0.0));
vec3 _pos_55;
_pos_55 = (_pos_49 + vec3(0.0, 0.0, 4.0));
vec3 _pos_56;
_pos_56 = (_pos_49 + vec3(0.0, 0.0, -4.0));
vec3 _pos_57;
_pos_57 = (tmpvar_24 + vec3(0.0, 0.0, 0.002));
vec3 tmpvar_58;
tmpvar_58 = max ((abs(_pos_57) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_59;
_pos_59 = (_pos_57 + vec3(4.0, 0.0, 0.0));
vec3 _pos_60;
_pos_60 = (_pos_57 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_61;
_pos_61 = (_pos_57 + vec3(0.0, 4.0, 0.0));
vec3 _pos_62;
_pos_62 = (_pos_57 + vec3(0.0, -4.0, 0.0));
vec3 _pos_63;
_pos_63 = (_pos_57 + vec3(0.0, 0.0, 4.0));
vec3 _pos_64;
_pos_64 = (_pos_57 + vec3(0.0, 0.0, -4.0));
vec3 _pos_65;
_pos_65 = (tmpvar_24 - vec3(0.0, 0.0, 0.002));
vec3 tmpvar_66;
tmpvar_66 = max ((abs(_pos_65) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_67;
_pos_67 = (_pos_65 + vec3(4.0, 0.0, 0.0));
vec3 _pos_68;
_pos_68 = (_pos_65 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_69;
_pos_69 = (_pos_65 + vec3(0.0, 4.0, 0.0));
vec3 _pos_70;
_pos_70 = (_pos_65 + vec3(0.0, -4.0, 0.0));
vec3 _pos_71;
_pos_71 = (_pos_65 + vec3(0.0, 0.0, 4.0));
vec3 _pos_72;
_pos_72 = (_pos_65 + vec3(0.0, 0.0, -4.0));
vec3 tmpvar_73;
tmpvar_73.x = (min (min (min (min (min (min ((sqrt(dot (tmpvar_26, tmpvar_26)) - 0.5), (sqrt(dot (_pos_27, _pos_27)) - 1.0)), (sqrt(dot (_pos_28, _pos_28)) - 1.0)), (sqrt(dot (_pos_29, _pos_29)) - 1.0)), (sqrt(dot (_pos_30, _pos_30)) - 1.0)), (sqrt(dot (_pos_31, _pos_31)) - 1.0)), (sqrt(dot (_pos_32, _pos_32)) - 1.0)) - min (min (min (min (min (min ((sqrt(dot (tmpvar_34, tmpvar_34)) - 0.5), (sqrt(dot (_pos_35, _pos_35)) - 1.0)), (sqrt(dot (_pos_36, _pos_36)) - 1.0)), (sqrt(dot (_pos_37, _pos_37)) - 1.0)), (sqrt(dot (_pos_38, _pos_38)) - 1.0)), (sqrt(dot (_pos_39, _pos_39)) - 1.0)), (sqrt(dot (_pos_40, _pos_40)) - 1.0)));
tmpvar_73.y = (min (min (min (min (min (min ((sqrt(dot (tmpvar_42, tmpvar_42)) - 0.5), (sqrt(dot (_pos_43, _pos_43)) - 1.0)), (sqrt(dot (_pos_44, _pos_44)) - 1.0)), (sqrt(dot (_pos_45, _pos_45)) - 1.0)), (sqrt(dot (_pos_46, _pos_46)) - 1.0)), (sqrt(dot (_pos_47, _pos_47)) - 1.0)), (sqrt(dot (_pos_48, _pos_48)) - 1.0)) - min (min (min (min (min (min ((sqrt(dot (tmpvar_50, tmpvar_50)) - 0.5), (sqrt(dot (_pos_51, _pos_51)) - 1.0)), (sqrt(dot (_pos_52, _pos_52)) - 1.0)), (sqrt(dot (_pos_53, _pos_53)) - 1.0)), (sqrt(dot (_pos_54, _pos_54)) - 1.0)), (sqrt(dot (_pos_55, _pos_55)) - 1.0)), (sqrt(dot (_pos_56, _pos_56)) - 1.0)));
tmpvar_73.z = (min (min (min (min (min (min ((sqrt(dot (tmpvar_58, tmpvar_58)) - 0.5), (sqrt(dot (_pos_59, _pos_59)) - 1.0)), (sqrt(dot (_pos_60, _pos_60)) - 1.0)), (sqrt(dot (_pos_61, _pos_61)) - 1.0)), (sqrt(dot (_pos_62, _pos_62)) - 1.0)), (sqrt(dot (_pos_63, _pos_63)) - 1.0)), (sqrt(dot (_pos_64, _pos_64)) - 1.0)) - min (min (min (min (min (min ((sqrt(dot (tmpvar_66, tmpvar_66)) - 0.5), (sqrt(dot (_pos_67, _pos_67)) - 1.0)), (sqrt(dot (_pos_68, _pos_68)) - 1.0)), (sqrt(dot (_pos_69, _pos_69)) - 1.0)), (sqrt(dot (_pos_70, _pos_70)) - 1.0)), (sqrt(dot (_pos_71, _pos_71)) - 1.0)), (sqrt(dot (_pos_72, _pos_72)) - 1.0)));
vec3 tmpvar_74;
tmpvar_74 = normalize(tmpvar_73);
float tmpvar_75;
tmpvar_75 = dot (tmpvar_74, u_lightDir);
vec2 tmpvar_76;
tmpvar_76.x = tmpvar_75;
tmpvar_76.y = dot ((u_lightDir - ((2.0 * tmpvar_75) * tmpvar_74)), tmpvar_9);
float tmpvar_77;
tmpvar_77 = max (0.0, tmpvar_75);
vec4 tmpvar_78;
tmpvar_78.xw = vec2(1.0, 1.0);
tmpvar_78.y = tmpvar_77;
tmpvar_78.z = (float((tmpvar_75 >= 0.0)) * max (0.0, tmpvar_76.y));
float tmpvar_79;
tmpvar_79 = ((0.9 * tmpvar_77) + (pow (tmpvar_78.z, 128.0) * max ((0.2 + (0.8 * pow ((1.0 - tmpvar_75), 5.0))), 0.0)));
vec3 _pos_80;
_pos_80 = tmpvar_24;
vec3 _normal_81;
_normal_81 = tmpvar_74;
int ii_82;
float occ_83;
occ_83 = 0.0;
ii_82 = 1;
for (int ii_82 = 1; ii_82 < 4; ) {
float tmpvar_84;
tmpvar_84 = float(ii_82);
vec3 _pos_85;
_pos_85 = (_pos_80 + ((_normal_81 * tmpvar_84) * 0.2));
vec3 tmpvar_86;
tmpvar_86 = max ((abs(_pos_85) - vec3(2.5, 2.5, 2.5)), 0.0);
vec3 _pos_87;
_pos_87 = (_pos_85 + vec3(4.0, 0.0, 0.0));
vec3 _pos_88;
_pos_88 = (_pos_85 + vec3(-4.0, 0.0, 0.0));
vec3 _pos_89;
_pos_89 = (_pos_85 + vec3(0.0, 4.0, 0.0));
vec3 _pos_90;
_pos_90 = (_pos_85 + vec3(0.0, -4.0, 0.0));
vec3 _pos_91;
_pos_91 = (_pos_85 + vec3(0.0, 0.0, 4.0));
vec3 _pos_92;
_pos_92 = (_pos_85 + vec3(0.0, 0.0, -4.0));
occ_83 = (occ_83 + (((tmpvar_84 * 0.2) - min (min (min (min (min (min ((sqrt(dot (tmpvar_86, tmpvar_86)) - 0.5), (sqrt(dot (_pos_87, _pos_87)) - 1.0)), (sqrt(dot (_pos_88, _pos_88)) - 1.0)), (sqrt(dot (_pos_89, _pos_89)) - 1.0)), (sqrt(dot (_pos_90, _pos_90)) - 1.0)), (sqrt(dot (_pos_91, _pos_91)) - 1.0)), (sqrt(dot (_pos_92, _pos_92)) - 1.0))) / pow (2.0, tmpvar_84)));
ii_82 = (ii_82 + 1);
};
float tmpvar_93;
tmpvar_93 = pow ((tmpvar_79 * (1.0 - occ_83)), 0.454545);
vec4 tmpvar_94;
tmpvar_94.w = 1.0;
tmpvar_94.x = tmpvar_93;
tmpvar_94.y = tmpvar_93;
tmpvar_94.z = tmpvar_93;
gl_FragColor = tmpvar_94;
gl_FragDepth = (tmpvar_23 / tmpvar_7);
} else {
gl_FragColor = v_color0;
gl_FragDepth = 1.0;
};
}