//// BEGIN COMPILER 0 INFO LOG ////

//// END COMPILER 0 INFO LOG ////


//// BEGIN COMPILER 0 OBJ CODE ////
#extension GL_ARB_gpu_shader5 : enable
void initGlobals();
vec4 _utexture(in sampler2D _us, in vec2 _uc){
return texture2D(_us, _uc);
}
uniform vec3 _uiResolution;
uniform float _uiTime;
uniform float _uiTimeDelta;
uniform int _uiFrame;
uniform float _uiFrameRate;
uniform float _uiChannelTime[4];
uniform vec3 _uiChannelResolution[4];
uniform vec4 _uiMouse;
uniform sampler2D _uiChannel0;
uniform sampler2D _uiChannel1;
uniform sampler2D _uiChannel2;
uniform sampler2D _uiChannel3;
uniform vec4 _uiDate;
uniform float _uiSampleRate;
struct _uChannel {
vec3 _uresolution;
float _utime;
};
uniform _uChannel _uiChannel[4];
void _umainImage(out vec4 _uo, in vec2 _uf);
void main(){
initGlobals();
vec4 _ucolor = vec4(0.0, 0.0, 0.0, 1.0);
_umainImage(_ucolor, gl_FragCoord.xy);
(_ucolor.w = 1.0);
(gl_FragColor = _ucolor);
}
void _urotate(inout vec2 _uv, in float _uangle);
float _usdTorus(in vec3 _up, in vec2 _ut);
vec2 _umarch(in vec3 _upos, in vec3 _udir);
vec3 _ucamera(in vec2 _uuv);
vec3 _ublackbody(in float _uTemp);
float _uscene(in vec3 _up);
float _ug;
float _ut;
float _ua;
vec3 _uss;
vec4 _uvv;
vec3 _ublackbody(in float _uTemp){
vec3 _ucol = vec3(255.0, 255.0, 255.0);
(_ucol.x = ((56100000.0 * pow(_uTemp, -1.5)) + 148.0));
(_ucol.y = ((100.04 * log(_uTemp)) - 623.59998));
if ((_uTemp > 6500.0))
{
(_ucol.y = ((35200000.0 * pow(_uTemp, -1.5)) + 184.0));
}
(_ucol.z = ((194.17999 * log(_uTemp)) - 1448.6));
(_ucol = (clamp(_ucol, 0.0, 255.0) / 255.0));
if ((_uTemp < 1000.0))
{
(_ucol *= (_uTemp / 1000.0));
}
return _ucol;
}
void _umainImage(out vec4 _uo, in vec2 _uf){
(_ut = (_uiTime * 0.5));
for (int _ui = 0; (_ui < 4); (_ui++))
{
(_uvv[_ui] = _utexture(_uiChannel0, vec2((float(_ui) / 6.0), 0.0099999998)).x);
}
vec2 _uR = _uiResolution.xy;
vec2 _uuv = (vec2((_uf - (_uR / 2.0))) / _uR.y);
vec3 _udir = _ucamera(_uuv);
vec3 _upos = vec3(0.0, 0.0, 0.0);
vec2 _uinter = _umarch(_upos, _udir);
(_uo.xyz = vec3(((_uinter.y * 0.050999999) - (_uinter.x * 0.001))));
(_uo.xyz += (1.0 * _ublackbody(((15.0 - ((2.0 * _uinter.y) - (0.1 * _uinter.x))) * 50.0))));
(_uo.xyz = ((sin(((_uo.xyz * 6.0) - 0.40000001)) * 0.5) + 0.5));
}
float _uscene(in vec3 _up){
float _uscale = 1.0;
float _ur2 = 0.0;
float _uk = 0.0;
(_ua = cos(((0.5 * _up.z) + _ut)));
_urotate(_up.yx, _ua);
(_up.xy += ((vec2(cos(_ut), sin(_ut)) * 0.25) + 1.0));
(_up.z -= _ut);
(_uss = _up);
for (int _ui = 0; (_ui < 4); (_ui++))
{
(_up.xyz = (1.0 - (2.0 * fract(((0.5 * _up.xyz) + 0.5)))));
(_ur2 = _usdTorus(_up, vec2(0.20999999, ((0.40000001 * _uvv[_ui]) + 0.20999999))));
(_uk = (1.0 / _ur2));
(_up *= _uk);
(_uscale *= _uk);
}
(_uss = (_up * (fract(_uss) + 0.5)));
return ((0.25 * (abs(_up.x) + (length((fract(_uss.xz) - 0.5)) * 0.1))) / _uscale);
}
vec2 _umarch(in vec3 _upos, in vec3 _udir){
vec2 _udist = vec2(0.0, 0.0);
vec3 _up = vec3(0.0, 0.0, 0.0);
vec2 _us = vec2(0.0, 0.0);
vec3 _udirr = vec3(0.0, 0.0, 0.0);
for (int _ui = 0; (_ui < 100); (++_ui))
{
(_udirr = _udir);
(_up = (_upos + (_udirr * _udist.y)));
(_udist.x = _uscene(_up));
(_udist.y += _udist.x);
if (((_udist.x < 0.00050000002) || (_udist.y > 6.0)))
{
(_up = _uss);
(_ug = _up.y);
(_ug += (step(sin((5.0 * _up.x)), 0.5) + step(sin((20.0 * _up.x)), 0.5)));
break;
}
(_us.x++);
}
(_us.y = _udist.y);
return _us;
}
float _usdTorus(in vec3 _up, in vec2 _ut){
vec2 _uq = vec2((length(_up.zy) - _ut.x), _up.x);
return (length(_uq) - _ut.y);
}
vec3 _ucamera(in vec2 _uuv){
float _ufov = 1.0;
vec3 _uforw = vec3(0.0, 0.0, -1.0);
vec3 _uright = vec3(1.0, 0.0, 0.0);
vec3 _uup = vec3(0.0, 1.0, 0.0);
return normalize((((_uuv.x * _uright) + (_uuv.y * _uup)) + (_ufov * _uforw)));
}
void _urotate(inout vec2 _uv, in float _uangle){
(_uv = vec2(((cos(_uangle) * _uv.x) + (sin(_uangle) * _uv.y)), (((-sin(_uangle)) * _uv.x) + (cos(_uangle) * _uv.y))));
}
void initGlobals(){
(_ug = 0.0);
(_ut = 0.0);
(_ua = 0.0);
(_uss = vec3(0.0, 0.0, 0.0));
(_uvv = vec4(0.0, 0.0, 0.0, 0.0));
}

//// END COMPILER 0 OBJ CODE ////


