RIVEÚµŸÄËÔìó­®Á­¶¿ÇÊÌßàåæçèéêëìñò��”–ÌÎÏÄÐì�’þp©C‚jÔ layerÊËatmosjÔ³œBTSR §§Kò -KT-W-1ˆ-8 ÀIK Jî ùeKDfû?g#& b�Kvs_mainvs_mainfs_mainfs_main|struct U { a: vec4, b: vec4, c: vec4, d: vec4, nightCol: vec4, } struct VOut { @builtin(position) position: vec4, @location(0) uv: vec2, } @group(0) @binding(0) var u: U; @group(0) @binding(1) var srcTex: texture_2d; @group(0) @binding(2) var srcSamp: sampler; fn hash(p: vec2) -> f32 { let q = fract((p * vec2(123.34f, 456.21f))); let r = (q + vec2(dot(q, (q + vec2(45.32f))))); return fract((r.x * r.y)); } fn src(uv_1: vec2) -> vec3 { let _e8 = textureSample(srcTex, srcSamp, clamp(uv_1, vec2(0f), vec2(1f))); return _e8.xyz; } @vertex fn vs_main(@builtin(vertex_index) i: u32) -> VOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var o: VOut; let p_1 = pos[i]; o.position = vec4(p_1, 0f, 1f); o.uv = vec2(((p_1.x * 0.5f) + 0.5f), (0.5f - (p_1.y * 0.5f))); let _e31 = o; return _e31; } @fragment fn fs_main(in: VOut) -> @location(0) vec4 { var uv: vec2; var col: vec3; var acc: vec3 = vec3(0f); var i_1: i32 = 0i; let time = u.a.x; let intensity = u.a.y; let grainAmt = u.a.z; let vignetteAmt = u.a.w; let glowAmt = u.b.x; let warpAmt = u.b.y; let night = u.b.z; let flash = u.b.w; let _e35 = u.c; let res = _e35.xy; let _e39 = u.c; let click = _e39.zw; let pulseAge = u.d.x; let awareness = u.d.y; let bolt = u.d.z; let shake = u.d.w; let aspect = vec2((res.x / res.y), 1f); uv = in.uv; let st = floor((time * 30f)); let _e67 = uv; let _e70 = hash(vec2(st, 1f)); let _e73 = hash(vec2(st, 2f)); uv = (_e67 + (((vec2(_e70, _e73) - vec2(0.5f)) * 0.012f) * shake)); let w = (warpAmt * intensity); let _e83 = uv; let _e87 = uv.y; let _e95 = uv.y; let _e106 = uv.x; let _e114 = uv.x; uv = (_e83 + ((w * 0.003f) * vec2((sin(((_e87 * 5f) + (time * 0.5f))) + (0.4f * sin(((_e95 * 17f) - (time * 0.9f))))), (cos(((_e106 * 4f) - (time * 0.4f))) + (0.4f * cos(((_e114 * 19f) + (time * 0.7f)))))))); if (pulseAge < 1.4f) { let _e129 = uv; let dv = ((_e129 - click) * aspect); let dist = length(dv); let ring = (exp(-(pow(((dist - (pulseAge * 1.1f)) * 18f), 2f))) * (1f - (pulseAge / 1.4f))); let _e147 = uv; uv = (_e147 - (((normalize((dv + vec2(0.00001f))) / aspect) * ring) * 0.016f)); } let _e157 = uv; let off = (((_e157 - vec2(0.5f)) * 0.0025f) * (0.5f + intensity)); let _e166 = uv; let _e168 = src((_e166 + off)); let _e170 = uv; let _e171 = src(_e170); let _e173 = uv; let _e175 = src((_e173 - off)); col = vec3(_e168.x, _e171.y, _e175.z); loop { let _e184 = i_1; if (_e184 < 12i) { } else { break; } { let _e187 = i_1; let ang = ((f32(_e187) * 0.5235988f) + 0.26f); let dir = (vec2(cos(ang), sin(ang)) / aspect); let _e197 = acc; let _e198 = uv; let _e202 = src((_e198 + (dir * 0.006f))); let _e209 = uv; let _e213 = src((_e209 + (dir * 0.018f))); acc = (_e197 + (max((_e202 - vec3(0.35f)), vec3(0f)) + (max((_e213 - vec3(0.35f)), vec3(0f)) * 0.6f))); } continuing { let _e224 = i_1; i_1 = (_e224 + 1i); } } let _e227 = col; let _e228 = acc; col = (_e227 + ((((_e228 / vec3(19.2f)) * glowAmt) * intensity) * 1.6f)); let _e237 = col; let l = dot(_e237, vec3(0.299f, 0.587f, 0.114f)); let _e243 = col; let _e244 = col; let _e252 = u.nightCol; col = mix(_e243, ((_e244 * vec3(0.7f, 0.72f, 0.95f)) + (_e252.xyz * 0.05f)), (night * 0.8f)); let _e260 = col; col = (_e260 + (((vec3(1f, 0.85f, 0.7f) * flash) * 0.12f) * (1f - l))); let b = clamp(bolt, 0f, 1.5f); let _e275 = col; let grey = dot(_e275, vec3(0.299f, 0.587f, 0.114f)); let _e281 = col; col = mix(_e281, (vec3(grey) * vec3(0.82f, 0.9f, 1.08f)), clamp((b * 0.35f), 0f, 0.45f)); let _e294 = col; let _e299 = col; col = mix(_e294, smoothstep(vec3(0.02f), vec3(0.8f), _e299), clamp((b * 0.6f), 0f, 0.8f)); let _e307 = col; col = (_e307 + ((vec3(0.55f, 0.6f, 0.75f) * b) * 0.08f)); let vd = length((((in.uv - vec2(0.5f)) * aspect) * vec2(0.78f, 1f))); let inner = mix(0.36f, 0.2f, awareness); let vig = smoothstep(inner, 0.9f, vd); let _e331 = col; col = (_e331 * (1f - clamp(((((vig * vig) * (3f - vig)) * 0.5f) * vignetteAmt), 0f, 0.97f))); let step24_ = floor((time * 24f)); let fc = (in.uv * res); let _e356 = hash((fc + vec2((step24_ * 37f), (step24_ * 11f)))); let g = (_e356 - 0.5f); let _e359 = col; col = (_e359 + vec3(((g * (0.03f + (0.18f * l))) * grainAmt))); let _e368 = col; let _e371 = hash(vec2(step24_, 7f)); col = (_e368 * (1f + (((_e371 - 0.5f) * 0.05f) * intensity))); let _e380 = col; return vec4(clamp(_e380, vec3(0f), vec3(1f)), 1f); }  PçÂ` Åvs_mainmainS#version 300 es precision highp float; precision highp int; struct U { vec4 a; vec4 b; vec4 c; vec4 d; vec4 nightCol; }; struct VOut { vec4 position; vec2 uv; }; smooth out vec2 _vs2fs_location0; float hash(vec2 p) { vec2 q = fract((p * vec2(123.34, 456.21))); vec2 r = (q + vec2(dot(q, (q + vec2(45.32))))); return fract((r.x * r.y)); } void main() { uint i = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); VOut o = VOut(vec4(0.0), vec2(0.0)); vec2 p_1 = pos[i]; o.position = vec4(p_1, 0.0, 1.0); o.uv = vec2(((p_1.x * 0.5) + 0.5), (0.5 - (p_1.y * 0.5))); VOut _e31 = o; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain›#version 300 es precision highp float; precision highp int; struct U { vec4 a; vec4 b; vec4 c; vec4 d; vec4 nightCol; }; struct VOut { vec4 position; vec2 uv; }; layout(std140) uniform U_block_0Fragment { U _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; float hash(vec2 p) { vec2 q = fract((p * vec2(123.34, 456.21))); vec2 r = (q + vec2(dot(q, (q + vec2(45.32))))); return fract((r.x * r.y)); } vec3 src(vec2 uv_1) { vec4 _e8 = texture(_group_0_binding_1_fs, vec2(clamp(uv_1, vec2(0.0), vec2(1.0)))); return _e8.xyz; } void main() { VOut in_ = VOut(gl_FragCoord, _vs2fs_location0); vec2 uv = vec2(0.0); vec3 col = vec3(0.0); vec3 acc = vec3(0.0); int i_1 = 0; float time = _group_0_binding_0_fs.a.x; float intensity = _group_0_binding_0_fs.a.y; float grainAmt = _group_0_binding_0_fs.a.z; float vignetteAmt = _group_0_binding_0_fs.a.w; float glowAmt = _group_0_binding_0_fs.b.x; float warpAmt = _group_0_binding_0_fs.b.y; float night = _group_0_binding_0_fs.b.z; float flash = _group_0_binding_0_fs.b.w; vec4 _e35 = _group_0_binding_0_fs.c; vec2 res = _e35.xy; vec4 _e39 = _group_0_binding_0_fs.c; vec2 click = _e39.zw; float pulseAge = _group_0_binding_0_fs.d.x; float awareness = _group_0_binding_0_fs.d.y; float bolt = _group_0_binding_0_fs.d.z; float shake = _group_0_binding_0_fs.d.w; vec2 aspect = vec2((res.x / res.y), 1.0); uv = in_.uv; float st = floor((time * 30.0)); vec2 _e67 = uv; float _e70 = hash(vec2(st, 1.0)); float _e73 = hash(vec2(st, 2.0)); uv = (_e67 + (((vec2(_e70, _e73) - vec2(0.5)) * 0.012) * shake)); float w = (warpAmt * intensity); vec2 _e83 = uv; float _e87 = uv.y; float _e95 = uv.y; float _e106 = uv.x; float _e114 = uv.x; uv = (_e83 + ((w * 0.003) * vec2((sin(((_e87 * 5.0) + (time * 0.5))) + (0.4 * sin(((_e95 * 17.0) - (time * 0.9))))), (cos(((_e106 * 4.0) - (time * 0.4))) + (0.4 * cos(((_e114 * 19.0) + (time * 0.7)))))))); if ((pulseAge < 1.4)) { vec2 _e129 = uv; vec2 dv = ((_e129 - click) * aspect); float dist = length(dv); float ring = (exp(-(pow(((dist - (pulseAge * 1.1)) * 18.0), 2.0))) * (1.0 - (pulseAge / 1.4))); vec2 _e147 = uv; uv = (_e147 - (((normalize((dv + vec2(1e-5))) / aspect) * ring) * 0.016)); } vec2 _e157 = uv; vec2 off = (((_e157 - vec2(0.5)) * 0.0025) * (0.5 + intensity)); vec2 _e166 = uv; vec3 _e168 = src((_e166 + off)); vec2 _e170 = uv; vec3 _e171 = src(_e170); vec2 _e173 = uv; vec3 _e175 = src((_e173 - off)); col = vec3(_e168.x, _e171.y, _e175.z); bool loop_init = true; while(true) { if (!loop_init) { int _e224 = i_1; i_1 = (_e224 + 1); } loop_init = false; int _e184 = i_1; if ((_e184 < 12)) { } else { break; } { int _e187 = i_1; float ang = ((float(_e187) * 0.5235988) + 0.26); vec2 dir = (vec2(cos(ang), sin(ang)) / aspect); vec3 _e197 = acc; vec2 _e198 = uv; vec3 _e202 = src((_e198 + (dir * 0.006))); vec2 _e209 = uv; vec3 _e213 = src((_e209 + (dir * 0.018))); acc = (_e197 + (max((_e202 - vec3(0.35)), vec3(0.0)) + (max((_e213 - vec3(0.35)), vec3(0.0)) * 0.6))); } } vec3 _e227 = col; vec3 _e228 = acc; col = (_e227 + ((((_e228 / vec3(19.2)) * glowAmt) * intensity) * 1.6)); vec3 _e237 = col; float l = dot(_e237, vec3(0.299, 0.587, 0.114)); vec3 _e243 = col; vec3 _e244 = col; vec4 _e252 = _group_0_binding_0_fs.nightCol; col = mix(_e243, ((_e244 * vec3(0.7, 0.72, 0.95)) + (_e252.xyz * 0.05)), (night * 0.8)); vec3 _e260 = col; col = (_e260 + (((vec3(1.0, 0.85, 0.7) * flash) * 0.12) * (1.0 - l))); float b = clamp(bolt, 0.0, 1.5); vec3 _e275 = col; float grey = dot(_e275, vec3(0.299, 0.587, 0.114)); vec3 _e281 = col; col = mix(_e281, (vec3(grey) * vec3(0.82, 0.9, 1.08)), clamp((b * 0.35), 0.0, 0.45)); vec3 _e294 = col; vec3 _e299 = col; col = mix(_e294, smoothstep(vec3(0.02), vec3(0.8), _e299), clamp((b * 0.6), 0.0, 0.8)); vec3 _e307 = col; col = (_e307 + ((vec3(0.55, 0.6, 0.75) * b) * 0.08)); float vd = length((((in_.uv - vec2(0.5)) * aspect) * vec2(0.78, 1.0))); float inner = mix(0.36, 0.2, awareness); float vig = smoothstep(inner, 0.9, vd); vec3 _e331 = col; col = (_e331 * (1.0 - clamp(((((vig * vig) * (3.0 - vig)) * 0.5) * vignetteAmt), 0.0, 0.97))); float step24_ = floor((time * 24.0)); vec2 fc = (in_.uv * res); float _e356 = hash((fc + vec2((step24_ * 37.0), (step24_ * 11.0)))); float g = (_e356 - 0.5); vec3 _e359 = col; col = (_e359 + vec3(((g * (0.03 + (0.18 * l))) * grainAmt))); vec3 _e368 = col; float _e371 = hash(vec2(step24_, 7.0)); col = (_e368 * (1.0 + (((_e371 - 0.5) * 0.05) * intensity))); vec3 _e380 = col; _fs2p_location0 = vec4(clamp(_e380, vec3(0.0), vec3(1.0)), 1.0); return; }  Pzì�êK¾‡ U_block_0Fragment_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_main // language: metal1.0 #include #include using metal::uint; struct U { metal::float4 a; metal::float4 b; metal::float4 c; metal::float4 d; metal::float4 nightCol; }; struct VOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_6 { metal::float2 inner[3]; }; float hash( metal::float2 p ) { metal::float2 q = metal::fract(p * metal::float2(123.34, 456.21)); metal::float2 r = q + metal::float2(metal::dot(q, q + metal::float2(45.32))); return metal::fract(r.x * r.y); } metal::float3 src( metal::float2 uv_1, metal::texture2d srcTex, metal::sampler srcSamp ) { metal::float4 _e8 = srcTex.sample(srcSamp, metal::clamp(uv_1, metal::float2(0.0), metal::float2(1.0))); return _e8.xyz; } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint i [[vertex_id]] ) { type_6 pos = type_6 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; VOut o = {}; metal::float2 p_1 = pos.inner[i]; o.position = metal::float4(p_1, 0.0, 1.0); o.uv = metal::float2((p_1.x * 0.5) + 0.5, 0.5 - (p_1.y * 0.5)); VOut _e31 = o; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv_2 [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant U& u [[buffer(0)]] , metal::texture2d srcTex [[texture(0)]] , metal::sampler srcSamp [[sampler(0)]] ) { const VOut in = { position, varyings_1.uv_2 }; metal::float2 uv = {}; metal::float3 col = {}; metal::float3 acc = metal::float3(0.0); int i_1 = 0; float time = u.a.x; float intensity = u.a.y; float grainAmt = u.a.z; float vignetteAmt = u.a.w; float glowAmt = u.b.x; float warpAmt = u.b.y; float night = u.b.z; float flash = u.b.w; metal::float4 _e35 = u.c; metal::float2 res = _e35.xy; metal::float4 _e39 = u.c; metal::float2 click = _e39.zw; float pulseAge = u.d.x; float awareness = u.d.y; float bolt = u.d.z; float shake = u.d.w; metal::float2 aspect = metal::float2(res.x / res.y, 1.0); uv = in.uv; float st = metal::floor(time * 30.0); metal::float2 _e67 = uv; float _e70 = hash(metal::float2(st, 1.0)); float _e73 = hash(metal::float2(st, 2.0)); uv = _e67 + (((metal::float2(_e70, _e73) - metal::float2(0.5)) * 0.012) * shake); float w = warpAmt * intensity; metal::float2 _e83 = uv; float _e87 = uv.y; float _e95 = uv.y; float _e106 = uv.x; float _e114 = uv.x; uv = _e83 + ((w * 0.003) * metal::float2(metal::sin((_e87 * 5.0) + (time * 0.5)) + (0.4 * metal::sin((_e95 * 17.0) - (time * 0.9))), metal::cos((_e106 * 4.0) - (time * 0.4)) + (0.4 * metal::cos((_e114 * 19.0) + (time * 0.7))))); if (pulseAge < 1.4) { metal::float2 _e129 = uv; metal::float2 dv = (_e129 - click) * aspect; float dist = metal::length(dv); float ring = metal::exp(-(metal::pow((dist - (pulseAge * 1.1)) * 18.0, 2.0))) * (1.0 - (pulseAge / 1.4)); metal::float2 _e147 = uv; uv = _e147 - (((metal::normalize(dv + metal::float2(0.00001)) / aspect) * ring) * 0.016); } metal::float2 _e157 = uv; metal::float2 off = ((_e157 - metal::float2(0.5)) * 0.0025) * (0.5 + intensity); metal::float2 _e166 = uv; metal::float3 _e168 = src(_e166 + off, srcTex, srcSamp); metal::float2 _e170 = uv; metal::float3 _e171 = src(_e170, srcTex, srcSamp); metal::float2 _e173 = uv; metal::float3 _e175 = src(_e173 - off, srcTex, srcSamp); col = metal::float3(_e168.x, _e171.y, _e175.z); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e224 = i_1; i_1 = as_type(as_type(_e224) + as_type(1)); } loop_init = false; int _e184 = i_1; if (_e184 < 12) { } else { break; } { int _e187 = i_1; float ang = (static_cast(_e187) * 0.5235988) + 0.26; metal::float2 dir = metal::float2(metal::cos(ang), metal::sin(ang)) / aspect; metal::float3 _e197 = acc; metal::float2 _e198 = uv; metal::float3 _e202 = src(_e198 + (dir * 0.006), srcTex, srcSamp); metal::float2 _e209 = uv; metal::float3 _e213 = src(_e209 + (dir * 0.018), srcTex, srcSamp); acc = _e197 + (metal::max(_e202 - metal::float3(0.35), metal::float3(0.0)) + (metal::max(_e213 - metal::float3(0.35), metal::float3(0.0)) * 0.6)); } } metal::float3 _e227 = col; metal::float3 _e228 = acc; col = _e227 + ((((_e228 / metal::float3(19.2)) * glowAmt) * intensity) * 1.6); metal::float3 _e237 = col; float l = metal::dot(_e237, metal::float3(0.299, 0.587, 0.114)); metal::float3 _e243 = col; metal::float3 _e244 = col; metal::float4 _e252 = u.nightCol; col = metal::mix(_e243, (_e244 * metal::float3(0.7, 0.72, 0.95)) + (_e252.xyz * 0.05), night * 0.8); metal::float3 _e260 = col; col = _e260 + (((metal::float3(1.0, 0.85, 0.7) * flash) * 0.12) * (1.0 - l)); float b = metal::clamp(bolt, 0.0, 1.5); metal::float3 _e275 = col; float grey = metal::dot(_e275, metal::float3(0.299, 0.587, 0.114)); metal::float3 _e281 = col; col = metal::mix(_e281, metal::float3(grey) * metal::float3(0.82, 0.9, 1.08), metal::clamp(b * 0.35, 0.0, 0.45)); metal::float3 _e294 = col; metal::float3 _e299 = col; col = metal::mix(_e294, metal::smoothstep(metal::float3(0.02), metal::float3(0.8), _e299), metal::clamp(b * 0.6, 0.0, 0.8)); metal::float3 _e307 = col; col = _e307 + ((metal::float3(0.55, 0.6, 0.75) * b) * 0.08); float vd = metal::length(((in.uv - metal::float2(0.5)) * aspect) * metal::float2(0.78, 1.0)); float inner = metal::mix(0.36, 0.2, awareness); float vig = metal::smoothstep(inner, 0.9, vd); metal::float3 _e331 = col; col = _e331 * (1.0 - metal::clamp((((vig * vig) * (3.0 - vig)) * 0.5) * vignetteAmt, 0.0, 0.97)); float step24_ = metal::floor(time * 24.0); metal::float2 fc = in.uv * res; float _e356 = hash(fc + metal::float2(step24_ * 37.0, step24_ * 11.0)); float g = _e356 - 0.5; metal::float3 _e359 = col; col = _e359 + metal::float3((g * (0.03 + (0.18 * l))) * grainAmt); metal::float3 _e368 = col; float _e371 = hash(metal::float2(step24_, 7.0)); col = _e368 * (1.0 + (((_e371 - 0.5) * 0.05) * intensity)); metal::float3 _e380 = col; return fs_mainOutput { metal::float4(metal::clamp(_e380, metal::float3(0.0), metal::float3(1.0)), 1.0) }; }  Pzì�êK¾‡ vs_mainmain<struct U { float4 a; float4 b; float4 c; float4 d; float4 nightCol; }; struct VOut { float4 position; float2 uv; }; static const float2 _50[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const VOut _58 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { VOut o = _58; o.position = float4(_50[uint(gl_VertexIndex)], 0.0f, 1.0f); o.uv = float2((_50[uint(gl_VertexIndex)].x * 0.5f) + 0.5f, 0.5f - (_50[uint(gl_VertexIndex)].y * 0.5f)); gl_Position = o.position; uv = o.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmain‰struct U { float4 a; float4 b; float4 c; float4 d; float4 nightCol; }; struct VOut { float4 position; float2 uv; }; cbuffer u : register(b0) { U u_1_m0 : packoffset(c0); }; Texture2D srcTex : register(t0); SamplerState srcSamp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _66; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _66 : SV_Target0; }; float hash(float2 p) { float2 _33 = frac(p * float2(123.339996337890625f, 456.209991455078125f)); float _35 = dot(_33, _33 + float2(45.31999969482421875f, 45.31999969482421875f)); float2 _37 = _33 + float2(_35, _35); return frac(_37.x * _37.y); } float3 src(float2 uv_1) { return srcTex.Sample(srcSamp, clamp(uv_1, float2(0.0f, 0.0f), float2(1.0f, 1.0f))).xyz; } void frag_main() { float3 col = float3(0.0f, 0.0f, 0.0f); int i = 0; float2 uv_1 = float2(0.0f, 0.0f); float3 acc = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); VOut _59 = { gl_FragCoord, uv }; float2 _193 = float2(u_1_m0.c.xy.x / u_1_m0.c.xy.y, 1.0f); uv_1 = _59.uv; float _196 = floor(u_1_m0.a.x * 30.0f); uv_1 += (((float2(hash(float2(_196, 1.0f)), hash(float2(_196, 2.0f))) - float2(0.5f, 0.5f)) * 0.01200000010430812835693359375f) * u_1_m0.d.w); uv_1 += (float2(sin((uv_1.y * 5.0f) + (u_1_m0.a.x * 0.5f)) + (0.4000000059604644775390625f * sin((uv_1.y * 17.0f) - (u_1_m0.a.x * 0.89999997615814208984375f))), cos((uv_1.x * 4.0f) - (u_1_m0.a.x * 0.4000000059604644775390625f)) + (0.4000000059604644775390625f * cos((uv_1.x * 19.0f) + (u_1_m0.a.x * 0.699999988079071044921875f)))) * ((u_1_m0.b.y * u_1_m0.a.y) * 0.0030000000260770320892333984375f)); if (u_1_m0.d.x < 1.39999997615814208984375f) { float2 _248 = (uv_1 - u_1_m0.c.zw) * _193; uv_1 -= (((normalize(_248 + float2(9.9999997473787516355514526367188e-06f, 9.9999997473787516355514526367188e-06f)) / _193) * (exp(-pow((length(_248) - (u_1_m0.d.x * 1.10000002384185791015625f)) * 18.0f, 2.0f)) * (1.0f - (u_1_m0.d.x / 1.39999997615814208984375f)))) * 0.01600000075995922088623046875f); } float2 _270 = ((uv_1 - float2(0.5f, 0.5f)) * 0.0024999999441206455230712890625f) * (0.5f + u_1_m0.a.y); col = float3(src(uv_1 + _270).x, src(uv_1).y, src(uv_1 - _270).z); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 12)) { break; } float _313 = (float(i) * 0.52359879016876220703125f) + 0.2599999904632568359375f; float2 _317 = float2(cos(_313), sin(_313)) / _193; acc += (max(src(uv_1 + (_317 * 0.006000000052154064178466796875f)) - float3(0.3499999940395355224609375f, 0.3499999940395355224609375f, 0.3499999940395355224609375f), float3(0.0f, 0.0f, 0.0f)) + (max(src(uv_1 + (_317 * 0.017999999225139617919921875f)) - float3(0.3499999940395355224609375f, 0.3499999940395355224609375f, 0.3499999940395355224609375f), float3(0.0f, 0.0f, 0.0f)) * 0.60000002384185791015625f)); i++; continue; } col += ((((acc / float3(19.200000762939453125f, 19.200000762939453125f, 19.200000762939453125f)) * u_1_m0.b.x) * u_1_m0.a.y) * 1.60000002384185791015625f); float3 _343 = col; float _344 = dot(_343, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)); float _354 = u_1_m0.b.z * 0.800000011920928955078125f; col = lerp(col, (col * float3(0.699999988079071044921875f, 0.7200000286102294921875f, 0.949999988079071044921875f)) + (u_1_m0.nightCol.xyz * 0.0500000007450580596923828125f), float3(_354, _354, _354)); col += (((float3(1.0f, 0.85000002384185791015625f, 0.699999988079071044921875f) * u_1_m0.b.w) * 0.119999997317790985107421875f) * (1.0f - _344)); float _363 = clamp(u_1_m0.d.z, 0.0f, 1.5f); float _365 = dot(col, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)); float _370 = clamp(_363 * 0.3499999940395355224609375f, 0.0f, 0.449999988079071044921875f); col = lerp(col, float3(_365, _365, _365) * float3(0.819999992847442626953125f, 0.89999997615814208984375f, 1.08000004291534423828125f), float3(_370, _370, _370)); float _377 = clamp(_363 * 0.60000002384185791015625f, 0.0f, 0.800000011920928955078125f); col = lerp(col, smoothstep(float3(0.0199999995529651641845703125f, 0.0199999995529651641845703125f, 0.0199999995529651641845703125f), float3(0.800000011920928955078125f, 0.800000011920928955078125f, 0.800000011920928955078125f), col), float3(_377, _377, _377)); col += ((float3(0.550000011920928955078125f, 0.60000002384185791015625f, 0.75f) * _363) * 0.07999999821186065673828125f); float _390 = smoothstep(lerp(0.36000001430511474609375f, 0.20000000298023223876953125f, u_1_m0.d.y), 0.89999997615814208984375f, length(((_59.uv - float2(0.5f, 0.5f)) * _193) * float2(0.7799999713897705078125f, 1.0f))); col *= (1.0f - clamp((((_390 * _390) * (3.0f - _390)) * 0.5f) * u_1_m0.a.w, 0.0f, 0.9700000286102294921875f)); float _401 = floor(u_1_m0.a.x * 24.0f); float _414 = ((hash((_59.uv * u_1_m0.c.xy) + float2(_401 * 37.0f, _401 * 11.0f)) - 0.5f) * (0.02999999932944774627685546875f + (0.180000007152557373046875f * _344))) * u_1_m0.a.z; col += float3(_414, _414, _414); col *= (1.0f + (((hash(float2(_401, 7.0f)) - 0.5f) * 0.0500000007450580596923828125f) * u_1_m0.a.y)); _66 = float4(clamp(col, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._66 = _66; return stage_output; }  Pzì�êK¾‡ HSLTUPaÿÿÿÿbÿÿÿÿc ÿÿÿÿd0ÿÿÿÿnightCol@ÿÿÿÿu_blockPusrcTexÿÿÿÿsrcSampÿÿÿÿvs_mainvs_mainfs_mainfs_mainø%#Ó GLSL.std.450Bvs_main;>@qfs_mainjmpqH#H#H# H#0H#@H #H #G G"G!GH#G"G!G"G!G; *G> G@Gj GmGp    +      ; ; ;!+®öB+áäC,+®G5B,!- +0,100+2€?,3226 < ;<; ?;?> A;A@!C+D€¿,EDD+F@@,GFD,HDF, IEGH+J? L N . O Q T+ V+ _ c k;kj n;nm;?p r+vðA+w@,xJJ+y¦›D<+z¦›D;+{ @+|ˆA+}fff?+~ÍÌÌ>+€@+€˜A+�333?+‚33³?+ƒÍÌŒ?+„�A+…¬Å'7,†……+‡oƒ<+ˆ ×#;, ‰000+Š+‹ +Œ’ ?+�¸…>+ަ›Ä;+�33³>, ����+‘¼t“<+’š™?+“+”š™™A, •”””+–ÍÌÌ?+—‡™>+˜¢E?+™Õxé=, š—˜™+›ìQ8?+œ33s?, ��›œ+žÍÌL=+ŸÍÌL?+ š™Y?, ¡2 �+¢�Âõ=+£À?+¤…ëQ?+¥q=Š?, ¦¤}¥+§ffæ>+¨ ×£<, ©¨¨¨, ªŸŸŸ+«ÍÌ ?+¬@?, ­«’¬+® ×£=+¯®G?,°¯2+±ìQ¸>+²ÍÌL>+³ìQx?+´ÀA+µB+¶0A+·ìQ8>+¸�Âõ<+¹à@, º222.¼ ¾ . ¿ Â Ä Å+ Ê ùF  GFH,FIVV+ Jÿÿÿÿ,FKJJ+ ƒ67øùø…  ! �"!”#!"P$##�%!$Q&%Q'%…(&' ) (þ)86 ,-7+ø*=.=/ù4ø4 5++13V67./W875O 988þ986BCø:;LKI;NMO= =;ùPøPAQRK==SRPUS02ATWMV>WUQXS…YXJ�ZYJQ[S…\[Jƒ]J\P^Z]AQ`M_>`^= aMQba>>bAcd>_=edfe>dfQga>@gý86qCøh;¾½¿;ÂÁŠ;Q»¼;¾À‰;GLK=lj=omP iloArsV=t=uùÃøÃAÅÆsVV=ÇÆAÅÈsV_=ÉÈAÅËsVÊ=ÌËAÅÍsV =ÎÍAÅÏs_V=ÐÏAÅÑs__=ÒÑAÅÓs_Ê=ÔÓAÅÕs_ =ÖÕAÄ×sÊ=Ø×OÙØØAÄÚsÊ=ÛÚOÜÛÛAÅÝs V=ÞÝAÅßs _=àßAÅás Ê=âáAÅãs =äãQåÙQæÙˆçåæPèç2Qéi>»é…êÇv ëê=ì»Píë29îíPïëw9ðïPñîðƒòñxŽóòyŽôóä�õìô>»õ…öÒÉ=÷»…øözAùú»_=ûú…üû{…ýÇJ�þüý ÿ þAù»_=…|…Ç}ƒ  …~�ÿAù»V= …  … Ç~ƒ      Aù»V=…€…Ç�� …~� PŽø�÷>»¸Þ‚÷úø=»ƒÜ…è  B…!Þƒƒ" !…#"„ $#w%$ &%ˆ'Þ‚ƒ(2'…)&(=*»�+† ,E+ˆ-,èŽ.-)Ž/.‡ƒ0*/>»0ùø=1»ƒ21xŽ32ˆ�4JÉŽ534=6»�7659 8,7Q98=:»9 ;,:Q<;==»ƒ>=59 ?,>Q@?P A9<@>½AùBøBöCEùMøM=FNLªHOIN›PO÷QúPCQøQQ RNªSRV© TS_VPFUT_‚FVNU>LVùDøD=WÁ±XW‹÷YúXYZøZùCøYù[ø[=]Áo^]…_^Œ�`_� a` b `Pcabˆdcè= eÀ=f»ŽgdŽ�hfg9 i,hƒ ji�  k(j‰=l»Žmd‘�nlm9 o,nƒ po�  q(p‰Ž rq’� skr� tes>Àtù\ø\ùEøE=uÁ€vu“>ÁvùBøC= w½= xÀˆ yx•Ž zyÐŽ {zÉŽ |{–� }w|>½}= ~½”~š= €½= �½… ‚��AÄ„sƒ=…„O †……Ž ‡†ž� ˆ‚‡…‰ÔŸP ‹‰‰‰  Š.€ˆ‹>½Š= Œ½Ž �¡ÖŽ Ž�¢ƒ�2Ž �Ž�� ‘Œ�>½‘ ’+â0£= “½””“š= •½P –”””… —–¦…˜’� ™+˜0§P ›™™™  š.•—›>½š= œ½= �½  ž1©ª�…Ÿ’’  +Ÿ0ŸP ¢     ¡.œž¢>½¡= £½Ž ¤­’Ž ¥¤®� ¦£¥>½¦Q§iƒ¨§x…©¨è…ª©° «Bª ¬.±²à ­1¬}«= ®½…¯­­ƒ°F­…±¯°…²±J…³²Î ´+³0³ƒµ2´Ž ¶®µ>½¶…·Ç´ ¸·Q¹i…º¹Ù…»¸µ…¼¸¶P½»¼�¾º½9¿¾ƒÀ¿J= Á½…·�ø…ÄÀÃ…ÅÄÌP ÆÅÅÅ� ÇÁÆ>½Ç= ȽPɸ¹9ÊɃËÊJ…ÌËž…ÍÌÉ�Î2ÍŽ ÏÈÎ>½Ï= н  Ñ+ЉºPÒÑ2>pÒý8 PçÂ` ÅÊËlitjÔ‡ôBTSR ]M]MK¨Mï� —ÛKâÛåÛýÛe AKWAkw ¸K ¹HUºá~ 69Kvs_fullvs_fullfs_backfs_backvs_eyevs_eyefs_eyefs_eyeMstruct U { res: vec4, light: vec4, lightCol: vec4, amb: vec4, sclera: vec4, blood: vec4, flashDir: vec4, flashCol: vec4, } struct Lit { dir: vec3, att: f32, } struct FOut { @builtin(position) pos: vec4, @location(0) uv: vec2, } struct EOut { @builtin(position) pos: vec4, @location(0) local: vec2, @location(1) @interpolate(flat) a: vec4, @location(2) @interpolate(flat) b: vec4, @location(3) @interpolate(flat) c: vec4, @location(4) scr: vec2, } const QUAD: vec2 = vec2(1.45f, 1.3f); @group(0) @binding(0) var u: U; @group(0) @binding(2) var maskTex: texture_2d; @group(0) @binding(4) var samp: sampler; fn hash2_(p_1: vec2) -> f32 { var p3_: vec3; p3_ = fract((vec3(p_1.x, p_1.y, p_1.x) * 0.1031f)); let _e9 = p3_; let _e10 = p3_; let _e11 = p3_; p3_ = (_e9 + vec3(dot(_e10, (_e11.yzx + vec3(33.33f))))); let _e20 = p3_.x; let _e22 = p3_.y; let _e25 = p3_.z; return fract(((_e20 + _e22) * _e25)); } fn vnoise(p_2: vec2) -> f32 { let i_3 = floor(p_2); let f = fract(p_2); let s_1 = ((f * f) * (vec2(3f) - (2f * f))); let _e10 = hash2_(i_3); let _e15 = hash2_((i_3 + vec2(1f, 0f))); let _e20 = hash2_((i_3 + vec2(0f, 1f))); let _e25 = hash2_((i_3 + vec2(1f, 1f))); return mix(mix(_e10, _e15, s_1.x), mix(_e20, _e25, s_1.x), s_1.y); } fn gnoise(p_3: vec2) -> f32 { let i_4 = floor(p_3); let f_1 = fract(p_3); let w = (((f_1 * f_1) * f_1) * ((f_1 * ((f_1 * 6f) - vec2(15f))) + vec2(10f))); let _e15 = hash2_(i_4); let ga = (_e15 * 6.2831855f); let _e22 = hash2_((i_4 + vec2(1f, 0f))); let gb = (_e22 * 6.2831855f); let _e29 = hash2_((i_4 + vec2(0f, 1f))); let gc = (_e29 * 6.2831855f); let _e36 = hash2_((i_4 + vec2(1f, 1f))); let gd = (_e36 * 6.2831855f); let a_2 = dot(vec2(cos(ga), sin(ga)), f_1); let b_1 = dot(vec2(cos(gb), sin(gb)), (f_1 - vec2(1f, 0f))); let c_1 = dot(vec2(cos(gc), sin(gc)), (f_1 - vec2(0f, 1f))); let d = dot(vec2(cos(gd), sin(gd)), (f_1 - vec2(1f, 1f))); return mix(mix(a_2, b_1, w.x), mix(c_1, d, w.x), w.y); } fn fbm(p_4: vec2) -> f32 { var v: f32 = 0f; var a_1: f32 = 0.5f; var q: vec2; var i_2: i32 = 0i; let rot = mat2x2(vec2(0.8f, 0.6f), vec2(-0.6f, 0.8f)); q = p_4; loop { let _e15 = i_2; if (_e15 < 4i) { } else { break; } { let _e18 = v; let _e19 = a_1; let _e20 = q; let _e21 = vnoise(_e20); v = (_e18 + (_e19 * _e21)); let _e24 = q; q = (((rot * _e24) * 2.03f) + vec2(17.1f, 9.3f)); let _e32 = a_1; a_1 = (_e32 * 0.5f); } continuing { let _e35 = i_2; i_2 = (_e35 + 1i); } } let _e38 = v; return _e38; } fn lamp(p_5: vec3) -> Lit { var o_2: Lit; let _e3 = u.light; let _e10 = u.light.z; let toL = vec3((_e3.xy - p_5.xy), (_e10 - p_5.z)); let d_1 = length(toL); o_2.dir = (toL / vec3(max(d_1, 0.001f))); let _e24 = u.light.w; let k_2 = (d_1 / max(_e24, 1f)); let _e32 = u.lightCol.w; o_2.att = (_e32 * pow((1f + (k_2 * k_2)), -1.5f)); let _e39 = o_2; return _e39; } fn shade(albedo: vec3, n: vec3, p_6: vec3, wrap: f32, sp: f32, sa: f32) -> vec3 { let v_1 = vec3(0f, 0f, 1f); let _e10 = lamp(p_6); let d1_ = max(((dot(n, _e10.dir) + wrap) / (1f + wrap)), 0f); let h1_ = normalize((_e10.dir + v_1)); let _e24 = u.flashDir; let fd = _e24.xyz; let fs = u.flashDir.w; let d2_1 = max(((dot(n, fd) + wrap) / (1f + wrap)), 0f); let h2_ = normalize((fd + v_1)); let _e41 = u.amb; let _e46 = u.amb.w; let ambient = (_e41.xyz * _e46); let _e50 = u.lightCol; let _e60 = u.flashCol; let _e68 = u.lightCol; let _e79 = u.flashCol; return ((albedo * ((ambient + (((_e50.xyz * _e10.att) * d1_) * 1.6f)) + ((_e60.xyz * fs) * d2_1))) + ((((_e68.xyz * _e10.att) * pow(max(dot(n, h1_), 0f), sp)) + ((_e79.xyz * fs) * pow(max(dot(n, h2_), 0f), sp))) * sa)); } fn skinLight(albedo_1: vec3, n_1: vec3, p_7: vec3, sp_1: f32, sa_1: f32) -> vec3 { let v_2 = vec3(0f, 0f, 1f); let _e9 = lamp(p_7); let _e12 = u.flashDir; let fd_1 = _e12.xyz; let fs_1 = u.flashDir.w; let dl = max(((dot(n_1, _e9.dir) + 0.35f) / 1.35f), 0f); let df = max(dot(n_1, fd_1), 0f); let _e31 = u.amb; let _e36 = u.amb.w; let _e42 = u.lightCol; let _e61 = u.flashCol; let _e71 = u.lightCol; let _e85 = u.flashCol; return ((albedo_1 * (((((_e31.xyz * _e36) * 0.7f) + (((_e42.xyz * _e9.att) * dl) * 1.1f)) + ((vec3(0.3f, 0.03f, 0.02f) * _e9.att) * 0.2f)) + (((_e61.xyz * fs_1) * df) * 0.55f))) + ((((_e71.xyz * _e9.att) * pow(max(dot(n_1, normalize((_e9.dir + v_2))), 0f), sp_1)) + ((_e85.xyz * fs_1) * pow(max(dot(n_1, normalize((fd_1 + v_2))), 0f), sp_1))) * sa_1)); } fn skinAlbedo(px: vec2) -> vec3 { var s: vec3; let _e4 = u.res.w; let wp = ((px / vec2(_e4)) * 0.006f); let _e14 = fbm(((wp * 1.3f) + vec2(4f))); s = mix(vec3(0.22f, 0.14f, 0.14f), vec3(0.38f, 0.26f, 0.25f), _e14); let _e30 = fbm(((wp * 2.2f) + vec2(11f))); let ridge = abs(((_e30 * 2f) - 1f)); let _e43 = fbm((wp * 0.7f)); let vein = ((1f - smoothstep(0f, 0.05f, ridge)) * smoothstep(0.35f, 0.65f, _e43)); let _e48 = s; s = mix(_e48, vec3(0.32f, 0.04f, 0.05f), (vein * 0.4f)); let _e56 = s; let _e60 = u.res.w; let _e65 = vnoise(((px / vec2(_e60)) * 0.45f)); s = (_e56 * (0.9f + (0.1f * _e65))); let _e71 = s; return _e71; } fn m4_(px_1: vec2) -> vec4 { let _e5 = u.res; let _e9 = textureSampleLevel(maskTex, samp, (px_1 / _e5.xy), 0f); return _e9; } fn openAt(px_2: vec2) -> f32 { let _e1 = m4_(px_2); return smoothstep(0.3f, 0.8f, _e1.x); } fn eyeball(in_2: EOut, q_1: vec2, d2_: f32, px_3: vec2, ao: f32) -> vec3 { var irisCol: vec3 = vec3(0f); var pupilCol: vec3 = vec3(0.004f, 0.002f, 0.002f); var pupilMask: f32 = 0f; var slit: bool = false; var scl: vec3; var albedo_2: vec3; var ball: vec3; let R_1 = in_2.a.z; let kind = in_2.a.w; let seed_1 = in_2.b.w; let v_3 = vec3(0f, 0f, 1f); let z = sqrt(max((1f - d2_), 0f)); let n_2 = normalize(vec3(q_1.x, q_1.y, (z + 0.0001f))); let yaw = (in_2.b.x * 0.62f); let pitch = (in_2.b.y * 0.48f); let g = normalize(vec3((sin(yaw) * cos(pitch)), sin(pitch), (cos(yaw) * cos(pitch)))); let t1_ = normalize(cross(vec3(0f, 1f, 0f), g)); let t2_ = cross(g, t1_); let e = vec3(dot(n_2, t1_), dot(n_2, t2_), dot(n_2, g)); let irisR = in_2.c.z; let ip = (e.xy / vec2(irisR)); let ir = length(ip); let front = step(0f, e.z); let irisMask = ((1f - smoothstep(0.96f, 1.04f, ir)) * front); let pr = mix(0.2f, 0.8f, in_2.b.z); if (irisMask > 0f) { let ang = atan2(ip.y, ip.x); let ring = vec2(cos(ang), sin(ang)); let _e103 = fbm(((ring * (11f + (ir * 2f))) + vec2((seed_1 * 7.1f), (seed_1 * 3.3f)))); if (kind < 0.5f) { let _e114 = vnoise(((ip * 6f) + vec2((seed_1 * 13f)))); irisCol = mix(vec3(0.025f, 0.012f, 0.01f), vec3(0.2f, 0.085f, 0.05f), ((_e103 * 0.9f) + (_e114 * 0.2f))); } else { if (kind < 1.5f) { irisCol = mix(vec3(0.42f, 0.47f, 0.5f), vec3(0.78f, 0.8f, 0.8f), _e103); let _e152 = vnoise(((ip * 9f) + vec2(seed_1))); pupilCol = mix(vec3(0.3f, 0.33f, 0.36f), vec3(0.55f, 0.58f, 0.6f), _e152); } else { if (kind < 2.5f) { irisCol = mix(vec3(0.32f, 0.17f, 0.02f), vec3(0.9f, 0.62f, 0.12f), _e103); slit = true; } else { irisCol = mix(vec3(0.45f, 0.04f, 0f), vec3(1f, 0.42f, 0.06f), _e103); slit = true; } } } let _e176 = irisCol; irisCol = (_e176 * (1f + (0.6f * exp(-(pow((((ir - pr) - 0.13f) * 12f), 2f)))))); let _e191 = irisCol; irisCol = (_e191 * mix(1f, 0.12f, smoothstep(0.72f, 0.98f, ir))); let _e199 = slit; if _e199 { let s_2 = (pow((ip.x / ((pr * 0.3f) + 0.03f)), 2f) + pow((ip.y / 0.95f), 2f)); pupilMask = (1f - smoothstep(0.85f, 1.15f, s_2)); } else { pupilMask = (1f - smoothstep((pr - 0.03f), (pr + 0.02f), ir)); } } let _e228 = u.sclera; scl = _e228.xyz; let rim = (1f - z); let back = clamp((1f - e.z), 0f, 1f); if (irisMask < 1f) { let sp_2 = (e.xy / vec2((1f + max(e.z, -0.5f)))); let _e255 = fbm(((sp_2 * 3f) + vec2((seed_1 * 5f)))); let v1_ = abs(((_e255 * 2f) - 1f)); let _e270 = fbm((((sp_2 * 7f) + vec2((seed_1 * 9f))) + vec2(3f))); let v2_ = abs(((_e270 * 2f) - 1f)); let reach = smoothstep(0.02f, 0.45f, back); let _e296 = u.sclera.w; let veins = (((((1f - smoothstep(0f, 0.07f, v1_)) + (0.7f * (1f - smoothstep(0f, 0.05f, v2_)))) * reach) * _e296) * 1.3f); let _e300 = scl; let _e303 = u.blood; let _e310 = u.sclera.w; scl = mix(_e300, (_e303.xyz * 0.8f), ((0.45f * _e310) * smoothstep(0f, 0.6f, back))); let _e318 = scl; let _e321 = u.blood; scl = mix(_e318, _e321.xyz, (clamp(veins, 0f, 1f) * 0.85f)); let _e329 = scl; scl = (_e329 * mix(1f, 0.5f, smoothstep(0.3f, 1f, rim))); } let _e337 = scl; let _e338 = irisCol; albedo_2 = mix(_e337, _e338, irisMask); let _e341 = albedo_2; let _e342 = pupilCol; let _e343 = pupilMask; albedo_2 = mix(_e341, _e342, (_e343 * irisMask)); let surf = vec3((in_2.a.xy + (q_1 * R_1)), (z * R_1)); let _e352 = albedo_2; let _e356 = shade(_e352, n_2, surf, 0.2f, 70f, 0.3f); ball = _e356; let corneaW = ((1f - smoothstep(0.9f, 1.25f, ir)) * front); let nc = normalize((n_2 + ((g * 0.45f) * corneaW))); let _e369 = lamp(surf); let hl = normalize((_e369.dir + v_3)); let _e375 = u.flashDir; let hf = normalize((_e375.xyz + v_3)); let _e379 = ball; let _e382 = u.lightCol; let _e394 = u.flashCol; let _e399 = u.flashDir.w; ball = (_e379 + (((((_e382.xyz * _e369.att) * pow(max(dot(nc, hl), 0f), 650f)) + ((_e394.xyz * _e399) * pow(max(dot(nc, hf), 0f), 650f))) * 3.5f) * corneaW)); let _e412 = ball; ball = (_e412 + vec3((pow(max(dot(nc, vec3(-0.29875273f, -0.4267896f, 0.8535792f)), 0f), 900f) * 0.7f))); let _e426 = ball; let _e427 = irisCol; let _e429 = pupilMask; ball = (_e426 + ((((_e427 * irisMask) * (1f - _e429)) * in_2.c.y) * 1.4f)); let _e439 = ball; ball = (_e439 * mix(0.2f, 1f, smoothstep(0f, 0.6f, z))); let _e447 = ball; ball = (_e447 * mix(0.3f, 1f, smoothstep(0.35f, 1f, ao))); let _e455 = ball; let _e461 = openAt((px_3 - vec2(0f, (R_1 * 0.1f)))); ball = (_e455 * mix(0.55f, 1f, _e461)); let _e468 = u.light; let toLamp = normalize(((_e468.xy - px_3) + vec2(0.001f, 0f))); let _e476 = ball; let _e481 = openAt((px_3 + ((toLamp * R_1) * 0.22f))); ball = (_e476 * mix(0.4f, 1f, _e481)); let _e486 = ball; return _e486; } fn lidSkin(q_2: vec2, px_4: vec2, R: f32, seed: f32, o_3: vec4, open: f32, inAlmond: f32, e2_: f32, prox: f32, k_1: f32, openAmt: f32) -> vec3 { var skin: vec3; var skinCol: vec3; let zs = sqrt(max((1f - e2_), 0f)); let isLower = (smoothstep(0.25f, 0.4f, o_3.y) * (1f - smoothstep(0.6f, 0.75f, o_3.y))); let upperLid = (inAlmond * (1f - isLower)); let lowerLid = (inAlmond * isLower); let xs = (q_2.x / 1.35f); let arc = max((1f - ((0.6f * xs) * xs)), 0f); let yc = ((-((0.46f + (0.26f * openAmt))) * arc) - 0.1f); let dc = ((q_2.y - yc) / 0.14f); let crease = ((exp((-(dc) * dc)) * (0.15f + (0.85f * openAmt))) * (1f - lowerLid)); let yt = ((0.62f * arc) + 0.18f); let dt = ((q_2.y - yt) / 0.16f); let trough = ((exp((-(dt) * dt)) * (1f - inAlmond)) * (0.3f + (0.7f * openAmt))); let dhdy = (((((0.35f * crease) * 2f) * dc) / 0.14f) + ((((0.25f * trough) * 2f) * dt) / 0.16f)); let ns = normalize(vec3(((q_2.x / 4f) * inAlmond), (((q_2.y / 3.2f) * inAlmond) - (dhdy * 0.3f)), 1f)); let _e112 = skinAlbedo(px_4); skin = _e112; let _e114 = skin; let _e115 = skin; skin = mix(_e114, (_e115 * vec3(0.62f, 0.5f, 0.66f)), (trough * 0.6f)); let k2_ = (k_1 * 2.4f); let _e130 = openAt((px_4 + (vec2(k2_, k2_) * 0.7071f))); let _e136 = openAt((px_4 + (vec2(-(k2_), k2_) * 0.7071f))); let _e143 = openAt((px_4 + (vec2(k2_, -(k2_)) * 0.7071f))); let _e149 = openAt((px_4 - (vec2(k2_, k2_) * 0.7071f))); let proxFar = (0.25f * (((_e130 + _e136) + _e143) + _e149)); let sore = clamp(((prox * 1.3f) + (proxFar * 0.35f)), 0f, 1f); let _e161 = skin; skin = mix(_e161, vec3(0.46f, 0.12f, 0.12f), (sore * 0.55f)); let _e169 = skin; skin = mix(_e169, vec3(0.62f, 0.3f, 0.3f), ((lowerLid * smoothstep(0.05f, 0.35f, prox)) * 0.6f)); let side = sign((q_2.x + 0.0001f)); let cp = vec2(((q_2.x * side) - 1.22f), q_2.y); let fan = atan2(cp.y, max(cp.x, 0.02f)); let _e202 = vnoise(((cp * 9f) + vec2(seed))); let feet = (((smoothstep(0.82f, 1f, sin(((fan * 26f) + (_e202 * 3f)))) * smoothstep(0f, 0.08f, cp.x)) * (1f - smoothstep(0.1f, 0.34f, length(cp)))) * (1f - inAlmond)); let _e225 = skin; skin = (_e225 * (1f - (0.18f * feet))); let wet = smoothstep(0.02f, 0.3f, prox); let _e234 = skin; let _e243 = skinLight(_e234, ns, vec3(px_4, 0f), mix(8f, 110f, wet), mix(0.015f, 0.9f, wet)); skinCol = _e243; let _e245 = skinCol; skinCol = (_e245 * (1f - (0.4f * crease))); let _e251 = skinCol; skinCol = (_e251 * (1f - ((0.12f * (1f - inAlmond)) * (1f - smoothstep(0.2f, 0.9f, e2_))))); let ks = max((R * 0.022f), 1f); let _e272 = m4_((px_4 - vec2(0f, ks))); let _e276 = m4_((px_4 + vec2(0f, ks))); let seam = ((smoothstep(0.15f, 0.4f, abs((_e276.y - _e272.y))) * step(0.5f, _e272.z)) * step(0.5f, _e276.z)); let upperMargin = (upperLid * smoothstep(0.02f, 0.22f, prox)); let _e307 = vnoise(vec2(((q_2.x * 80f) + ((q_2.y * 30f) * side)), (seed * 11f))); let strands = smoothstep(0.3f, 0.72f, _e307); let lash = clamp(((upperMargin * (0.55f + (0.45f * strands))) + ((seam * 0.55f) * arc)), 0f, 1f); let _e323 = skinCol; return mix(_e323, vec3(0.012f, 0.006f, 0.006f), lash); } @vertex fn vs_full(@builtin(vertex_index) i: u32) -> FOut { var p: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var o: FOut; let _e15 = p[i]; o.pos = vec4(_e15, 0f, 1f); let _e22 = p[i].x; let _e29 = p[i].y; o.uv = vec2(((_e22 * 0.5f) + 0.5f), (0.5f - (_e29 * 0.5f))); let _e35 = o; return _e35; } @fragment fn fs_back(in: FOut) -> @location(0) vec4 { var col: vec3; let _e4 = u.res; let px_5 = (in.uv * _e4.xy); let _e9 = lamp(vec3(px_5, 0f)); let _e10 = skinAlbedo(px_5); let _e14 = u.res.w; let wp_1 = ((px_5 / vec2(_e14)) * 0.006f); let bp = ((wp_1 * 1.1f) + vec2(4f)); let _e24 = gnoise(bp); let _e30 = gnoise(((bp * 2.1f) + vec2(3f))); let b0_ = (_e24 + (0.5f * _e30)); let _e38 = gnoise((bp + vec2(0.02f, 0f))); let _e48 = gnoise((((bp + vec2(0.02f, 0f)) * 2.1f) + vec2(3f))); let bx = ((_e38 + (0.5f * _e48)) - b0_); let _e57 = gnoise((bp + vec2(0f, 0.02f))); let _e67 = gnoise((((bp + vec2(0f, 0.02f)) * 2.1f) + vec2(3f))); let by = ((_e57 + (0.5f * _e67)) - b0_); let nw = normalize(vec3((-(bx) * 22f), (-(by) * 22f), 1f)); let _e85 = skinLight(_e10, nw, vec3(px_5, 0f), 40f, 0.03f); col = _e85; let _e87 = col; let _e90 = u.lightCol; col = (_e87 + (((_e90.xyz * _e9.att) * _e9.att) * 0.06f)); let _e99 = col; return vec4(_e99, 1f); } @vertex fn vs_eye(@builtin(vertex_index) i_1: u32, @location(0) a: vec4, @location(1) b: vec4, @location(2) c: vec4) -> EOut { var k: array, 6> = array, 6>(vec2(-1f, -1f), vec2(1f, -1f), vec2(1f, 1f), vec2(-1f, -1f), vec2(1f, 1f), vec2(-1f, 1f)); var o_1: EOut; let _e25 = k[i_1]; let corner = (_e25 * QUAD); let px_6 = (a.xy + (corner * a.z)); let _e38 = u.res.x; let _e48 = u.res.y; o_1.pos = vec4((((px_6.x / _e38) * 2f) - 1f), (1f - ((px_6.y / _e48) * 2f)), 0f, 1f); o_1.local = corner; o_1.scr = px_6; o_1.a = a; o_1.b = b; o_1.c = c; let _e62 = o_1; return _e62; } @fragment fn fs_eye(in_1: EOut) -> @location(0) vec4 { var col_1: vec3 = vec3(0f); var flesh: vec3; let R_2 = in_1.a.z; let seed_2 = in_1.b.w; let q_3 = in_1.local; let px_7 = in_1.scr; let _e7 = m4_(px_7); let open_1 = smoothstep(0.3f, 0.8f, _e7.x); let inAlmond_1 = smoothstep(0.3f, 0.7f, _e7.z); let own = (1f - smoothstep(0.85f, 1f, (pow((q_3.x / 1.34f), 2f) + pow((q_3.y / 0.74f), 2f)))); let d2_2 = dot(q_3, q_3); let sphere = clamp((((1f - sqrt(d2_2)) * R_2) / 1.5f), 0f, 1f); let e2_1 = (pow((q_3.x / 1.42f), 2f) + pow((q_3.y / 1.22f), 2f)); let zone = (1f - smoothstep(0.45f, 1f, e2_1)); let ballA = ((open_1 * sphere) * own); let fleshA = (((open_1 * (1f - sphere)) * own) * inAlmond_1); let skinA = (((1f - open_1) * zone) * mix(0.85f, 1f, inAlmond_1)); let alpha = clamp(((ballA + fleshA) + skinA), 0f, 1f); if (alpha < 0.002f) { return vec4(0f); } let k_3 = max((R_2 * 0.1f), 2f); let _e88 = openAt((px_7 + vec2(k_3, 0f))); let _e92 = openAt((px_7 - vec2(k_3, 0f))); let _e97 = openAt((px_7 + vec2(0f, k_3))); let _e102 = openAt((px_7 - vec2(0f, k_3))); let ao_1 = (0.25f * (((_e88 + _e92) + _e97) + _e102)); if (ballA > 0.001f) { let _e111 = col_1; let _e112 = eyeball(in_1, q_3, d2_2, px_7, ao_1); col_1 = (_e111 + (_e112 * ballA)); } if (fleshA > 0.001f) { let _e121 = vnoise(((q_3 * 18f) + vec2(seed_2))); let fleshAlb = mix(vec3(0.42f, 0.08f, 0.1f), vec3(0.66f, 0.2f, 0.22f), _e121); let nf = normalize(vec3(((q_3.x * 0.7f) + ((_e121 - 0.5f) * 0.4f)), (q_3.y * 0.7f), 1f)); let _e151 = shade(fleshAlb, nf, vec3(px_7, (R_2 * 0.5f)), 0.3f, 90f, 0.9f); flesh = _e151; let _e153 = flesh; flesh = (_e153 * mix(0.35f, 1f, smoothstep(0.35f, 1f, ao_1))); let _e161 = col_1; let _e162 = flesh; col_1 = (_e161 + (_e162 * fleshA)); } if (skinA > 0.001f) { let _e167 = col_1; let _e170 = lidSkin(q_3, px_7, R_2, seed_2, _e7, open_1, inAlmond_1, e2_1, ao_1, k_3, in_1.c.x); col_1 = (_e167 + (_e170 * skinA)); } let _e173 = col_1; return vec4(_e173, alpha); }  €-þ©a�áG5vs_fullmainñ #version 300 es precision highp float; precision highp int; struct U { vec4 res; vec4 light; vec4 lightCol; vec4 amb; vec4 sclera; vec4 blood; vec4 flashDir; vec4 flashCol; }; struct Lit { vec3 dir; float att; }; struct FOut { vec4 pos; vec2 uv; }; struct EOut { vec4 pos; vec2 local; vec4 a; vec4 b; vec4 c; vec2 scr; }; const vec2 QUAD = vec2(1.45, 1.3); smooth out vec2 _vs2fs_location0; float hash2_(vec2 p_1) { vec3 p3_ = vec3(0.0); p3_ = fract((vec3(p_1.x, p_1.y, p_1.x) * 0.1031)); vec3 _e9 = p3_; vec3 _e10 = p3_; vec3 _e11 = p3_; p3_ = (_e9 + vec3(dot(_e10, (_e11.yzx + vec3(33.33))))); float _e20 = p3_.x; float _e22 = p3_.y; float _e25 = p3_.z; return fract(((_e20 + _e22) * _e25)); } float vnoise(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f = fract(p_2); vec2 s_1 = ((f * f) * (vec2(3.0) - (2.0 * f))); float _e10 = hash2_(i_3); float _e15 = hash2_((i_3 + vec2(1.0, 0.0))); float _e20 = hash2_((i_3 + vec2(0.0, 1.0))); float _e25 = hash2_((i_3 + vec2(1.0, 1.0))); return mix(mix(_e10, _e15, s_1.x), mix(_e20, _e25, s_1.x), s_1.y); } float gnoise(vec2 p_3) { vec2 i_4 = floor(p_3); vec2 f_1 = fract(p_3); vec2 w = (((f_1 * f_1) * f_1) * ((f_1 * ((f_1 * 6.0) - vec2(15.0))) + vec2(10.0))); float _e15 = hash2_(i_4); float ga = (_e15 * 6.2831855); float _e22 = hash2_((i_4 + vec2(1.0, 0.0))); float gb = (_e22 * 6.2831855); float _e29 = hash2_((i_4 + vec2(0.0, 1.0))); float gc = (_e29 * 6.2831855); float _e36 = hash2_((i_4 + vec2(1.0, 1.0))); float gd = (_e36 * 6.2831855); float a_2 = dot(vec2(cos(ga), sin(ga)), f_1); float b_1 = dot(vec2(cos(gb), sin(gb)), (f_1 - vec2(1.0, 0.0))); float c_1 = dot(vec2(cos(gc), sin(gc)), (f_1 - vec2(0.0, 1.0))); float d = dot(vec2(cos(gd), sin(gd)), (f_1 - vec2(1.0, 1.0))); return mix(mix(a_2, b_1, w.x), mix(c_1, d, w.x), w.y); } float fbm(vec2 p_4) { float v = 0.0; float a_1 = 0.5; vec2 q = vec2(0.0); int i_2 = 0; mat2x2 rot = mat2x2(vec2(0.8, 0.6), vec2(-0.6, 0.8)); q = p_4; bool loop_init = true; while(true) { if (!loop_init) { int _e35 = i_2; i_2 = (_e35 + 1); } loop_init = false; int _e15 = i_2; if ((_e15 < 4)) { } else { break; } { float _e18 = v; float _e19 = a_1; vec2 _e20 = q; float _e21 = vnoise(_e20); v = (_e18 + (_e19 * _e21)); vec2 _e24 = q; q = (((rot * _e24) * 2.03) + vec2(17.1, 9.3)); float _e32 = a_1; a_1 = (_e32 * 0.5); } } float _e38 = v; return _e38; } void main() { uint i = uint(gl_VertexID); vec2 p[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FOut o = FOut(vec4(0.0), vec2(0.0)); vec2 _e15 = p[i]; o.pos = vec4(_e15, 0.0, 1.0); float _e22 = p[i].x; float _e29 = p[i].y; o.uv = vec2(((_e22 * 0.5) + 0.5), (0.5 - (_e29 * 0.5))); FOut _e35 = o; gl_Position = _e35.pos; _vs2fs_location0 = _e35.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_backmainÚ#version 300 es precision highp float; precision highp int; struct U { vec4 res; vec4 light; vec4 lightCol; vec4 amb; vec4 sclera; vec4 blood; vec4 flashDir; vec4 flashCol; }; struct Lit { vec3 dir; float att; }; struct FOut { vec4 pos; vec2 uv; }; struct EOut { vec4 pos; vec2 local; vec4 a; vec4 b; vec4 c; vec2 scr; }; const vec2 QUAD = vec2(1.45, 1.3); layout(std140) uniform U_block_0Fragment { U _group_0_binding_0_fs; }; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; float hash2_(vec2 p_1) { vec3 p3_ = vec3(0.0); p3_ = fract((vec3(p_1.x, p_1.y, p_1.x) * 0.1031)); vec3 _e9 = p3_; vec3 _e10 = p3_; vec3 _e11 = p3_; p3_ = (_e9 + vec3(dot(_e10, (_e11.yzx + vec3(33.33))))); float _e20 = p3_.x; float _e22 = p3_.y; float _e25 = p3_.z; return fract(((_e20 + _e22) * _e25)); } float vnoise(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f = fract(p_2); vec2 s_1 = ((f * f) * (vec2(3.0) - (2.0 * f))); float _e10 = hash2_(i_3); float _e15 = hash2_((i_3 + vec2(1.0, 0.0))); float _e20 = hash2_((i_3 + vec2(0.0, 1.0))); float _e25 = hash2_((i_3 + vec2(1.0, 1.0))); return mix(mix(_e10, _e15, s_1.x), mix(_e20, _e25, s_1.x), s_1.y); } float gnoise(vec2 p_3) { vec2 i_4 = floor(p_3); vec2 f_1 = fract(p_3); vec2 w = (((f_1 * f_1) * f_1) * ((f_1 * ((f_1 * 6.0) - vec2(15.0))) + vec2(10.0))); float _e15 = hash2_(i_4); float ga = (_e15 * 6.2831855); float _e22 = hash2_((i_4 + vec2(1.0, 0.0))); float gb = (_e22 * 6.2831855); float _e29 = hash2_((i_4 + vec2(0.0, 1.0))); float gc = (_e29 * 6.2831855); float _e36 = hash2_((i_4 + vec2(1.0, 1.0))); float gd = (_e36 * 6.2831855); float a_2 = dot(vec2(cos(ga), sin(ga)), f_1); float b_1 = dot(vec2(cos(gb), sin(gb)), (f_1 - vec2(1.0, 0.0))); float c_1 = dot(vec2(cos(gc), sin(gc)), (f_1 - vec2(0.0, 1.0))); float d = dot(vec2(cos(gd), sin(gd)), (f_1 - vec2(1.0, 1.0))); return mix(mix(a_2, b_1, w.x), mix(c_1, d, w.x), w.y); } float fbm(vec2 p_4) { float v = 0.0; float a_1 = 0.5; vec2 q = vec2(0.0); int i_2 = 0; mat2x2 rot = mat2x2(vec2(0.8, 0.6), vec2(-0.6, 0.8)); q = p_4; bool loop_init = true; while(true) { if (!loop_init) { int _e35 = i_2; i_2 = (_e35 + 1); } loop_init = false; int _e15 = i_2; if ((_e15 < 4)) { } else { break; } { float _e18 = v; float _e19 = a_1; vec2 _e20 = q; float _e21 = vnoise(_e20); v = (_e18 + (_e19 * _e21)); vec2 _e24 = q; q = (((rot * _e24) * 2.03) + vec2(17.1, 9.3)); float _e32 = a_1; a_1 = (_e32 * 0.5); } } float _e38 = v; return _e38; } Lit lamp(vec3 p_5) { Lit o_2 = Lit(vec3(0.0), 0.0); vec4 _e3 = _group_0_binding_0_fs.light; float _e10 = _group_0_binding_0_fs.light.z; vec3 toL = vec3((_e3.xy - p_5.xy), (_e10 - p_5.z)); float d_1 = length(toL); o_2.dir = (toL / vec3(max(d_1, 0.001))); float _e24 = _group_0_binding_0_fs.light.w; float k_2 = (d_1 / max(_e24, 1.0)); float _e32 = _group_0_binding_0_fs.lightCol.w; o_2.att = (_e32 * pow((1.0 + (k_2 * k_2)), -1.5)); Lit _e39 = o_2; return _e39; } vec3 shade(vec3 albedo, vec3 n, vec3 p_6, float wrap, float sp, float sa) { vec3 v_1 = vec3(0.0, 0.0, 1.0); Lit _e10 = lamp(p_6); float d1_ = max(((dot(n, _e10.dir) + wrap) / (1.0 + wrap)), 0.0); vec3 h1_ = normalize((_e10.dir + v_1)); vec4 _e24 = _group_0_binding_0_fs.flashDir; vec3 fd = _e24.xyz; float fs = _group_0_binding_0_fs.flashDir.w; float d2_1 = max(((dot(n, fd) + wrap) / (1.0 + wrap)), 0.0); vec3 h2_ = normalize((fd + v_1)); vec4 _e41 = _group_0_binding_0_fs.amb; float _e46 = _group_0_binding_0_fs.amb.w; vec3 ambient = (_e41.xyz * _e46); vec4 _e50 = _group_0_binding_0_fs.lightCol; vec4 _e60 = _group_0_binding_0_fs.flashCol; vec4 _e68 = _group_0_binding_0_fs.lightCol; vec4 _e79 = _group_0_binding_0_fs.flashCol; return ((albedo * ((ambient + (((_e50.xyz * _e10.att) * d1_) * 1.6)) + ((_e60.xyz * fs) * d2_1))) + ((((_e68.xyz * _e10.att) * pow(max(dot(n, h1_), 0.0), sp)) + ((_e79.xyz * fs) * pow(max(dot(n, h2_), 0.0), sp))) * sa)); } vec3 skinLight(vec3 albedo_1, vec3 n_1, vec3 p_7, float sp_1, float sa_1) { vec3 v_2 = vec3(0.0, 0.0, 1.0); Lit _e9 = lamp(p_7); vec4 _e12 = _group_0_binding_0_fs.flashDir; vec3 fd_1 = _e12.xyz; float fs_1 = _group_0_binding_0_fs.flashDir.w; float dl = max(((dot(n_1, _e9.dir) + 0.35) / 1.35), 0.0); float df = max(dot(n_1, fd_1), 0.0); vec4 _e31 = _group_0_binding_0_fs.amb; float _e36 = _group_0_binding_0_fs.amb.w; vec4 _e42 = _group_0_binding_0_fs.lightCol; vec4 _e61 = _group_0_binding_0_fs.flashCol; vec4 _e71 = _group_0_binding_0_fs.lightCol; vec4 _e85 = _group_0_binding_0_fs.flashCol; return ((albedo_1 * (((((_e31.xyz * _e36) * 0.7) + (((_e42.xyz * _e9.att) * dl) * 1.1)) + ((vec3(0.3, 0.03, 0.02) * _e9.att) * 0.2)) + (((_e61.xyz * fs_1) * df) * 0.55))) + ((((_e71.xyz * _e9.att) * pow(max(dot(n_1, normalize((_e9.dir + v_2))), 0.0), sp_1)) + ((_e85.xyz * fs_1) * pow(max(dot(n_1, normalize((fd_1 + v_2))), 0.0), sp_1))) * sa_1)); } vec3 skinAlbedo(vec2 px) { vec3 s = vec3(0.0); float _e4 = _group_0_binding_0_fs.res.w; vec2 wp = ((px / vec2(_e4)) * 0.006); float _e14 = fbm(((wp * 1.3) + vec2(4.0))); s = mix(vec3(0.22, 0.14, 0.14), vec3(0.38, 0.26, 0.25), _e14); float _e30 = fbm(((wp * 2.2) + vec2(11.0))); float ridge = abs(((_e30 * 2.0) - 1.0)); float _e43 = fbm((wp * 0.7)); float vein = ((1.0 - smoothstep(0.0, 0.05, ridge)) * smoothstep(0.35, 0.65, _e43)); vec3 _e48 = s; s = mix(_e48, vec3(0.32, 0.04, 0.05), (vein * 0.4)); vec3 _e56 = s; float _e60 = _group_0_binding_0_fs.res.w; float _e65 = vnoise(((px / vec2(_e60)) * 0.45)); s = (_e56 * (0.9 + (0.1 * _e65))); vec3 _e71 = s; return _e71; } void main() { FOut in_ = FOut(gl_FragCoord, _vs2fs_location0); vec3 col = vec3(0.0); vec4 _e4 = _group_0_binding_0_fs.res; vec2 px_5 = (in_.uv * _e4.xy); Lit _e9 = lamp(vec3(px_5, 0.0)); vec3 _e10 = skinAlbedo(px_5); float _e14 = _group_0_binding_0_fs.res.w; vec2 wp_1 = ((px_5 / vec2(_e14)) * 0.006); vec2 bp = ((wp_1 * 1.1) + vec2(4.0)); float _e24 = gnoise(bp); float _e30 = gnoise(((bp * 2.1) + vec2(3.0))); float b0_ = (_e24 + (0.5 * _e30)); float _e38 = gnoise((bp + vec2(0.02, 0.0))); float _e48 = gnoise((((bp + vec2(0.02, 0.0)) * 2.1) + vec2(3.0))); float bx = ((_e38 + (0.5 * _e48)) - b0_); float _e57 = gnoise((bp + vec2(0.0, 0.02))); float _e67 = gnoise((((bp + vec2(0.0, 0.02)) * 2.1) + vec2(3.0))); float by = ((_e57 + (0.5 * _e67)) - b0_); vec3 nw = normalize(vec3((-(bx) * 22.0), (-(by) * 22.0), 1.0)); vec3 _e85 = skinLight(_e10, nw, vec3(px_5, 0.0), 40.0, 0.03); col = _e85; vec3 _e87 = col; vec4 _e90 = _group_0_binding_0_fs.lightCol; col = (_e87 + (((_e90.xyz * _e9.att) * _e9.att) * 0.06)); vec3 _e99 = col; _fs2p_location0 = vec4(_e99, 1.0); return; } vs_eyemain#version 300 es precision highp float; precision highp int; struct U { vec4 res; vec4 light; vec4 lightCol; vec4 amb; vec4 sclera; vec4 blood; vec4 flashDir; vec4 flashCol; }; struct Lit { vec3 dir; float att; }; struct FOut { vec4 pos; vec2 uv; }; struct EOut { vec4 pos; vec2 local; vec4 a; vec4 b; vec4 c; vec2 scr; }; const vec2 QUAD = vec2(1.45, 1.3); layout(std140) uniform U_block_0Vertex { U _group_0_binding_0_vs; }; layout(location = 0) in vec4 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; smooth out vec2 _vs2fs_location0; flat out vec4 _vs2fs_location1; flat out vec4 _vs2fs_location2; flat out vec4 _vs2fs_location3; smooth out vec2 _vs2fs_location4; float hash2_(vec2 p_1) { vec3 p3_ = vec3(0.0); p3_ = fract((vec3(p_1.x, p_1.y, p_1.x) * 0.1031)); vec3 _e9 = p3_; vec3 _e10 = p3_; vec3 _e11 = p3_; p3_ = (_e9 + vec3(dot(_e10, (_e11.yzx + vec3(33.33))))); float _e20 = p3_.x; float _e22 = p3_.y; float _e25 = p3_.z; return fract(((_e20 + _e22) * _e25)); } float vnoise(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f = fract(p_2); vec2 s_1 = ((f * f) * (vec2(3.0) - (2.0 * f))); float _e10 = hash2_(i_3); float _e15 = hash2_((i_3 + vec2(1.0, 0.0))); float _e20 = hash2_((i_3 + vec2(0.0, 1.0))); float _e25 = hash2_((i_3 + vec2(1.0, 1.0))); return mix(mix(_e10, _e15, s_1.x), mix(_e20, _e25, s_1.x), s_1.y); } float gnoise(vec2 p_3) { vec2 i_4 = floor(p_3); vec2 f_1 = fract(p_3); vec2 w = (((f_1 * f_1) * f_1) * ((f_1 * ((f_1 * 6.0) - vec2(15.0))) + vec2(10.0))); float _e15 = hash2_(i_4); float ga = (_e15 * 6.2831855); float _e22 = hash2_((i_4 + vec2(1.0, 0.0))); float gb = (_e22 * 6.2831855); float _e29 = hash2_((i_4 + vec2(0.0, 1.0))); float gc = (_e29 * 6.2831855); float _e36 = hash2_((i_4 + vec2(1.0, 1.0))); float gd = (_e36 * 6.2831855); float a_2 = dot(vec2(cos(ga), sin(ga)), f_1); float b_1 = dot(vec2(cos(gb), sin(gb)), (f_1 - vec2(1.0, 0.0))); float c_1 = dot(vec2(cos(gc), sin(gc)), (f_1 - vec2(0.0, 1.0))); float d = dot(vec2(cos(gd), sin(gd)), (f_1 - vec2(1.0, 1.0))); return mix(mix(a_2, b_1, w.x), mix(c_1, d, w.x), w.y); } float fbm(vec2 p_4) { float v = 0.0; float a_1 = 0.5; vec2 q = vec2(0.0); int i_2 = 0; mat2x2 rot = mat2x2(vec2(0.8, 0.6), vec2(-0.6, 0.8)); q = p_4; bool loop_init = true; while(true) { if (!loop_init) { int _e35 = i_2; i_2 = (_e35 + 1); } loop_init = false; int _e15 = i_2; if ((_e15 < 4)) { } else { break; } { float _e18 = v; float _e19 = a_1; vec2 _e20 = q; float _e21 = vnoise(_e20); v = (_e18 + (_e19 * _e21)); vec2 _e24 = q; q = (((rot * _e24) * 2.03) + vec2(17.1, 9.3)); float _e32 = a_1; a_1 = (_e32 * 0.5); } } float _e38 = v; return _e38; } Lit lamp(vec3 p_5) { Lit o_2 = Lit(vec3(0.0), 0.0); vec4 _e3 = _group_0_binding_0_vs.light; float _e10 = _group_0_binding_0_vs.light.z; vec3 toL = vec3((_e3.xy - p_5.xy), (_e10 - p_5.z)); float d_1 = length(toL); o_2.dir = (toL / vec3(max(d_1, 0.001))); float _e24 = _group_0_binding_0_vs.light.w; float k_2 = (d_1 / max(_e24, 1.0)); float _e32 = _group_0_binding_0_vs.lightCol.w; o_2.att = (_e32 * pow((1.0 + (k_2 * k_2)), -1.5)); Lit _e39 = o_2; return _e39; } vec3 shade(vec3 albedo, vec3 n, vec3 p_6, float wrap, float sp, float sa) { vec3 v_1 = vec3(0.0, 0.0, 1.0); Lit _e10 = lamp(p_6); float d1_ = max(((dot(n, _e10.dir) + wrap) / (1.0 + wrap)), 0.0); vec3 h1_ = normalize((_e10.dir + v_1)); vec4 _e24 = _group_0_binding_0_vs.flashDir; vec3 fd = _e24.xyz; float fs = _group_0_binding_0_vs.flashDir.w; float d2_1 = max(((dot(n, fd) + wrap) / (1.0 + wrap)), 0.0); vec3 h2_ = normalize((fd + v_1)); vec4 _e41 = _group_0_binding_0_vs.amb; float _e46 = _group_0_binding_0_vs.amb.w; vec3 ambient = (_e41.xyz * _e46); vec4 _e50 = _group_0_binding_0_vs.lightCol; vec4 _e60 = _group_0_binding_0_vs.flashCol; vec4 _e68 = _group_0_binding_0_vs.lightCol; vec4 _e79 = _group_0_binding_0_vs.flashCol; return ((albedo * ((ambient + (((_e50.xyz * _e10.att) * d1_) * 1.6)) + ((_e60.xyz * fs) * d2_1))) + ((((_e68.xyz * _e10.att) * pow(max(dot(n, h1_), 0.0), sp)) + ((_e79.xyz * fs) * pow(max(dot(n, h2_), 0.0), sp))) * sa)); } vec3 skinLight(vec3 albedo_1, vec3 n_1, vec3 p_7, float sp_1, float sa_1) { vec3 v_2 = vec3(0.0, 0.0, 1.0); Lit _e9 = lamp(p_7); vec4 _e12 = _group_0_binding_0_vs.flashDir; vec3 fd_1 = _e12.xyz; float fs_1 = _group_0_binding_0_vs.flashDir.w; float dl = max(((dot(n_1, _e9.dir) + 0.35) / 1.35), 0.0); float df = max(dot(n_1, fd_1), 0.0); vec4 _e31 = _group_0_binding_0_vs.amb; float _e36 = _group_0_binding_0_vs.amb.w; vec4 _e42 = _group_0_binding_0_vs.lightCol; vec4 _e61 = _group_0_binding_0_vs.flashCol; vec4 _e71 = _group_0_binding_0_vs.lightCol; vec4 _e85 = _group_0_binding_0_vs.flashCol; return ((albedo_1 * (((((_e31.xyz * _e36) * 0.7) + (((_e42.xyz * _e9.att) * dl) * 1.1)) + ((vec3(0.3, 0.03, 0.02) * _e9.att) * 0.2)) + (((_e61.xyz * fs_1) * df) * 0.55))) + ((((_e71.xyz * _e9.att) * pow(max(dot(n_1, normalize((_e9.dir + v_2))), 0.0), sp_1)) + ((_e85.xyz * fs_1) * pow(max(dot(n_1, normalize((fd_1 + v_2))), 0.0), sp_1))) * sa_1)); } vec3 skinAlbedo(vec2 px) { vec3 s = vec3(0.0); float _e4 = _group_0_binding_0_vs.res.w; vec2 wp = ((px / vec2(_e4)) * 0.006); float _e14 = fbm(((wp * 1.3) + vec2(4.0))); s = mix(vec3(0.22, 0.14, 0.14), vec3(0.38, 0.26, 0.25), _e14); float _e30 = fbm(((wp * 2.2) + vec2(11.0))); float ridge = abs(((_e30 * 2.0) - 1.0)); float _e43 = fbm((wp * 0.7)); float vein = ((1.0 - smoothstep(0.0, 0.05, ridge)) * smoothstep(0.35, 0.65, _e43)); vec3 _e48 = s; s = mix(_e48, vec3(0.32, 0.04, 0.05), (vein * 0.4)); vec3 _e56 = s; float _e60 = _group_0_binding_0_vs.res.w; float _e65 = vnoise(((px / vec2(_e60)) * 0.45)); s = (_e56 * (0.9 + (0.1 * _e65))); vec3 _e71 = s; return _e71; } void main() { uint i_1 = uint(gl_VertexID); vec4 a = _p2vs_location0; vec4 b = _p2vs_location1; vec4 c = _p2vs_location2; vec2 k[6] = vec2[6](vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0), vec2(1.0, 1.0), vec2(-1.0, 1.0)); EOut o_1 = EOut(vec4(0.0), vec2(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec2(0.0)); vec2 _e25 = k[i_1]; vec2 corner = (_e25 * QUAD); vec2 px_5 = (a.xy + (corner * a.z)); float _e38 = _group_0_binding_0_vs.res.x; float _e48 = _group_0_binding_0_vs.res.y; o_1.pos = vec4((((px_5.x / _e38) * 2.0) - 1.0), (1.0 - ((px_5.y / _e48) * 2.0)), 0.0, 1.0); o_1.local = corner; o_1.scr = px_5; o_1.a = a; o_1.b = b; o_1.c = c; EOut _e62 = o_1; gl_Position = _e62.pos; _vs2fs_location0 = _e62.local; _vs2fs_location1 = _e62.a; _vs2fs_location2 = _e62.b; _vs2fs_location3 = _e62.c; _vs2fs_location4 = _e62.scr; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_eyemain¶F#version 300 es precision highp float; precision highp int; struct U { vec4 res; vec4 light; vec4 lightCol; vec4 amb; vec4 sclera; vec4 blood; vec4 flashDir; vec4 flashCol; }; struct Lit { vec3 dir; float att; }; struct FOut { vec4 pos; vec2 uv; }; struct EOut { vec4 pos; vec2 local; vec4 a; vec4 b; vec4 c; vec2 scr; }; const vec2 QUAD = vec2(1.45, 1.3); layout(std140) uniform U_block_0Fragment { U _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_2_fs; smooth in vec2 _vs2fs_location0; flat in vec4 _vs2fs_location1; flat in vec4 _vs2fs_location2; flat in vec4 _vs2fs_location3; smooth in vec2 _vs2fs_location4; layout(location = 0) out vec4 _fs2p_location0; float hash2_(vec2 p_1) { vec3 p3_ = vec3(0.0); p3_ = fract((vec3(p_1.x, p_1.y, p_1.x) * 0.1031)); vec3 _e9 = p3_; vec3 _e10 = p3_; vec3 _e11 = p3_; p3_ = (_e9 + vec3(dot(_e10, (_e11.yzx + vec3(33.33))))); float _e20 = p3_.x; float _e22 = p3_.y; float _e25 = p3_.z; return fract(((_e20 + _e22) * _e25)); } float vnoise(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f = fract(p_2); vec2 s_1 = ((f * f) * (vec2(3.0) - (2.0 * f))); float _e10 = hash2_(i_3); float _e15 = hash2_((i_3 + vec2(1.0, 0.0))); float _e20 = hash2_((i_3 + vec2(0.0, 1.0))); float _e25 = hash2_((i_3 + vec2(1.0, 1.0))); return mix(mix(_e10, _e15, s_1.x), mix(_e20, _e25, s_1.x), s_1.y); } float gnoise(vec2 p_3) { vec2 i_4 = floor(p_3); vec2 f_1 = fract(p_3); vec2 w = (((f_1 * f_1) * f_1) * ((f_1 * ((f_1 * 6.0) - vec2(15.0))) + vec2(10.0))); float _e15 = hash2_(i_4); float ga = (_e15 * 6.2831855); float _e22 = hash2_((i_4 + vec2(1.0, 0.0))); float gb = (_e22 * 6.2831855); float _e29 = hash2_((i_4 + vec2(0.0, 1.0))); float gc = (_e29 * 6.2831855); float _e36 = hash2_((i_4 + vec2(1.0, 1.0))); float gd = (_e36 * 6.2831855); float a_2 = dot(vec2(cos(ga), sin(ga)), f_1); float b_1 = dot(vec2(cos(gb), sin(gb)), (f_1 - vec2(1.0, 0.0))); float c_1 = dot(vec2(cos(gc), sin(gc)), (f_1 - vec2(0.0, 1.0))); float d = dot(vec2(cos(gd), sin(gd)), (f_1 - vec2(1.0, 1.0))); return mix(mix(a_2, b_1, w.x), mix(c_1, d, w.x), w.y); } float fbm(vec2 p_4) { float v = 0.0; float a_1 = 0.5; vec2 q = vec2(0.0); int i_2 = 0; mat2x2 rot = mat2x2(vec2(0.8, 0.6), vec2(-0.6, 0.8)); q = p_4; bool loop_init = true; while(true) { if (!loop_init) { int _e35 = i_2; i_2 = (_e35 + 1); } loop_init = false; int _e15 = i_2; if ((_e15 < 4)) { } else { break; } { float _e18 = v; float _e19 = a_1; vec2 _e20 = q; float _e21 = vnoise(_e20); v = (_e18 + (_e19 * _e21)); vec2 _e24 = q; q = (((rot * _e24) * 2.03) + vec2(17.1, 9.3)); float _e32 = a_1; a_1 = (_e32 * 0.5); } } float _e38 = v; return _e38; } Lit lamp(vec3 p_5) { Lit o_2 = Lit(vec3(0.0), 0.0); vec4 _e3 = _group_0_binding_0_fs.light; float _e10 = _group_0_binding_0_fs.light.z; vec3 toL = vec3((_e3.xy - p_5.xy), (_e10 - p_5.z)); float d_1 = length(toL); o_2.dir = (toL / vec3(max(d_1, 0.001))); float _e24 = _group_0_binding_0_fs.light.w; float k_2 = (d_1 / max(_e24, 1.0)); float _e32 = _group_0_binding_0_fs.lightCol.w; o_2.att = (_e32 * pow((1.0 + (k_2 * k_2)), -1.5)); Lit _e39 = o_2; return _e39; } vec3 shade(vec3 albedo, vec3 n, vec3 p_6, float wrap, float sp, float sa) { vec3 v_1 = vec3(0.0, 0.0, 1.0); Lit _e10 = lamp(p_6); float d1_ = max(((dot(n, _e10.dir) + wrap) / (1.0 + wrap)), 0.0); vec3 h1_ = normalize((_e10.dir + v_1)); vec4 _e24 = _group_0_binding_0_fs.flashDir; vec3 fd = _e24.xyz; float fs = _group_0_binding_0_fs.flashDir.w; float d2_1 = max(((dot(n, fd) + wrap) / (1.0 + wrap)), 0.0); vec3 h2_ = normalize((fd + v_1)); vec4 _e41 = _group_0_binding_0_fs.amb; float _e46 = _group_0_binding_0_fs.amb.w; vec3 ambient = (_e41.xyz * _e46); vec4 _e50 = _group_0_binding_0_fs.lightCol; vec4 _e60 = _group_0_binding_0_fs.flashCol; vec4 _e68 = _group_0_binding_0_fs.lightCol; vec4 _e79 = _group_0_binding_0_fs.flashCol; return ((albedo * ((ambient + (((_e50.xyz * _e10.att) * d1_) * 1.6)) + ((_e60.xyz * fs) * d2_1))) + ((((_e68.xyz * _e10.att) * pow(max(dot(n, h1_), 0.0), sp)) + ((_e79.xyz * fs) * pow(max(dot(n, h2_), 0.0), sp))) * sa)); } vec3 skinLight(vec3 albedo_1, vec3 n_1, vec3 p_7, float sp_1, float sa_1) { vec3 v_2 = vec3(0.0, 0.0, 1.0); Lit _e9 = lamp(p_7); vec4 _e12 = _group_0_binding_0_fs.flashDir; vec3 fd_1 = _e12.xyz; float fs_1 = _group_0_binding_0_fs.flashDir.w; float dl = max(((dot(n_1, _e9.dir) + 0.35) / 1.35), 0.0); float df = max(dot(n_1, fd_1), 0.0); vec4 _e31 = _group_0_binding_0_fs.amb; float _e36 = _group_0_binding_0_fs.amb.w; vec4 _e42 = _group_0_binding_0_fs.lightCol; vec4 _e61 = _group_0_binding_0_fs.flashCol; vec4 _e71 = _group_0_binding_0_fs.lightCol; vec4 _e85 = _group_0_binding_0_fs.flashCol; return ((albedo_1 * (((((_e31.xyz * _e36) * 0.7) + (((_e42.xyz * _e9.att) * dl) * 1.1)) + ((vec3(0.3, 0.03, 0.02) * _e9.att) * 0.2)) + (((_e61.xyz * fs_1) * df) * 0.55))) + ((((_e71.xyz * _e9.att) * pow(max(dot(n_1, normalize((_e9.dir + v_2))), 0.0), sp_1)) + ((_e85.xyz * fs_1) * pow(max(dot(n_1, normalize((fd_1 + v_2))), 0.0), sp_1))) * sa_1)); } vec3 skinAlbedo(vec2 px) { vec3 s = vec3(0.0); float _e4 = _group_0_binding_0_fs.res.w; vec2 wp = ((px / vec2(_e4)) * 0.006); float _e14 = fbm(((wp * 1.3) + vec2(4.0))); s = mix(vec3(0.22, 0.14, 0.14), vec3(0.38, 0.26, 0.25), _e14); float _e30 = fbm(((wp * 2.2) + vec2(11.0))); float ridge = abs(((_e30 * 2.0) - 1.0)); float _e43 = fbm((wp * 0.7)); float vein = ((1.0 - smoothstep(0.0, 0.05, ridge)) * smoothstep(0.35, 0.65, _e43)); vec3 _e48 = s; s = mix(_e48, vec3(0.32, 0.04, 0.05), (vein * 0.4)); vec3 _e56 = s; float _e60 = _group_0_binding_0_fs.res.w; float _e65 = vnoise(((px / vec2(_e60)) * 0.45)); s = (_e56 * (0.9 + (0.1 * _e65))); vec3 _e71 = s; return _e71; } vec4 m4_(vec2 px_1) { vec4 _e5 = _group_0_binding_0_fs.res; vec4 _e9 = textureLod(_group_0_binding_2_fs, vec2((px_1 / _e5.xy)), 0.0); return _e9; } float openAt(vec2 px_2) { vec4 _e1 = m4_(px_2); return smoothstep(0.3, 0.8, _e1.x); } vec3 eyeball(EOut in_2, vec2 q_1, float d2_, vec2 px_3, float ao) { vec3 irisCol = vec3(0.0); vec3 pupilCol = vec3(0.004, 0.002, 0.002); float pupilMask = 0.0; bool slit = false; vec3 scl = vec3(0.0); vec3 albedo_2 = vec3(0.0); vec3 ball = vec3(0.0); float R_1 = in_2.a.z; float kind = in_2.a.w; float seed_1 = in_2.b.w; vec3 v_3 = vec3(0.0, 0.0, 1.0); float z = sqrt(max((1.0 - d2_), 0.0)); vec3 n_2 = normalize(vec3(q_1.x, q_1.y, (z + 0.0001))); float yaw = (in_2.b.x * 0.62); float pitch = (in_2.b.y * 0.48); vec3 g = normalize(vec3((sin(yaw) * cos(pitch)), sin(pitch), (cos(yaw) * cos(pitch)))); vec3 t1_ = normalize(cross(vec3(0.0, 1.0, 0.0), g)); vec3 t2_ = cross(g, t1_); vec3 e = vec3(dot(n_2, t1_), dot(n_2, t2_), dot(n_2, g)); float irisR = in_2.c.z; vec2 ip = (e.xy / vec2(irisR)); float ir = length(ip); float front = step(0.0, e.z); float irisMask = ((1.0 - smoothstep(0.96, 1.04, ir)) * front); float pr = mix(0.2, 0.8, in_2.b.z); if ((irisMask > 0.0)) { float ang = atan(ip.y, ip.x); vec2 ring = vec2(cos(ang), sin(ang)); float _e103 = fbm(((ring * (11.0 + (ir * 2.0))) + vec2((seed_1 * 7.1), (seed_1 * 3.3)))); if ((kind < 0.5)) { float _e114 = vnoise(((ip * 6.0) + vec2((seed_1 * 13.0)))); irisCol = mix(vec3(0.025, 0.012, 0.01), vec3(0.2, 0.085, 0.05), ((_e103 * 0.9) + (_e114 * 0.2))); } else { if ((kind < 1.5)) { irisCol = mix(vec3(0.42, 0.47, 0.5), vec3(0.78, 0.8, 0.8), _e103); float _e152 = vnoise(((ip * 9.0) + vec2(seed_1))); pupilCol = mix(vec3(0.3, 0.33, 0.36), vec3(0.55, 0.58, 0.6), _e152); } else { if ((kind < 2.5)) { irisCol = mix(vec3(0.32, 0.17, 0.02), vec3(0.9, 0.62, 0.12), _e103); slit = true; } else { irisCol = mix(vec3(0.45, 0.04, 0.0), vec3(1.0, 0.42, 0.06), _e103); slit = true; } } } vec3 _e176 = irisCol; irisCol = (_e176 * (1.0 + (0.6 * exp(-(pow((((ir - pr) - 0.13) * 12.0), 2.0)))))); vec3 _e191 = irisCol; irisCol = (_e191 * mix(1.0, 0.12, smoothstep(0.72, 0.98, ir))); bool _e199 = slit; if (_e199) { float s_2 = (pow((ip.x / ((pr * 0.3) + 0.03)), 2.0) + pow((ip.y / 0.95), 2.0)); pupilMask = (1.0 - smoothstep(0.85, 1.15, s_2)); } else { pupilMask = (1.0 - smoothstep((pr - 0.03), (pr + 0.02), ir)); } } vec4 _e228 = _group_0_binding_0_fs.sclera; scl = _e228.xyz; float rim = (1.0 - z); float back = clamp((1.0 - e.z), 0.0, 1.0); if ((irisMask < 1.0)) { vec2 sp_2 = (e.xy / vec2((1.0 + max(e.z, -0.5)))); float _e255 = fbm(((sp_2 * 3.0) + vec2((seed_1 * 5.0)))); float v1_ = abs(((_e255 * 2.0) - 1.0)); float _e270 = fbm((((sp_2 * 7.0) + vec2((seed_1 * 9.0))) + vec2(3.0))); float v2_ = abs(((_e270 * 2.0) - 1.0)); float reach = smoothstep(0.02, 0.45, back); float _e296 = _group_0_binding_0_fs.sclera.w; float veins = (((((1.0 - smoothstep(0.0, 0.07, v1_)) + (0.7 * (1.0 - smoothstep(0.0, 0.05, v2_)))) * reach) * _e296) * 1.3); vec3 _e300 = scl; vec4 _e303 = _group_0_binding_0_fs.blood; float _e310 = _group_0_binding_0_fs.sclera.w; scl = mix(_e300, (_e303.xyz * 0.8), ((0.45 * _e310) * smoothstep(0.0, 0.6, back))); vec3 _e318 = scl; vec4 _e321 = _group_0_binding_0_fs.blood; scl = mix(_e318, _e321.xyz, (clamp(veins, 0.0, 1.0) * 0.85)); vec3 _e329 = scl; scl = (_e329 * mix(1.0, 0.5, smoothstep(0.3, 1.0, rim))); } vec3 _e337 = scl; vec3 _e338 = irisCol; albedo_2 = mix(_e337, _e338, irisMask); vec3 _e341 = albedo_2; vec3 _e342 = pupilCol; float _e343 = pupilMask; albedo_2 = mix(_e341, _e342, (_e343 * irisMask)); vec3 surf = vec3((in_2.a.xy + (q_1 * R_1)), (z * R_1)); vec3 _e352 = albedo_2; vec3 _e356 = shade(_e352, n_2, surf, 0.2, 70.0, 0.3); ball = _e356; float corneaW = ((1.0 - smoothstep(0.9, 1.25, ir)) * front); vec3 nc = normalize((n_2 + ((g * 0.45) * corneaW))); Lit _e369 = lamp(surf); vec3 hl = normalize((_e369.dir + v_3)); vec4 _e375 = _group_0_binding_0_fs.flashDir; vec3 hf = normalize((_e375.xyz + v_3)); vec3 _e379 = ball; vec4 _e382 = _group_0_binding_0_fs.lightCol; vec4 _e394 = _group_0_binding_0_fs.flashCol; float _e399 = _group_0_binding_0_fs.flashDir.w; ball = (_e379 + (((((_e382.xyz * _e369.att) * pow(max(dot(nc, hl), 0.0), 650.0)) + ((_e394.xyz * _e399) * pow(max(dot(nc, hf), 0.0), 650.0))) * 3.5) * corneaW)); vec3 _e412 = ball; ball = (_e412 + vec3((pow(max(dot(nc, vec3(-0.29875273, -0.4267896, 0.8535792)), 0.0), 900.0) * 0.7))); vec3 _e426 = ball; vec3 _e427 = irisCol; float _e429 = pupilMask; ball = (_e426 + ((((_e427 * irisMask) * (1.0 - _e429)) * in_2.c.y) * 1.4)); vec3 _e439 = ball; ball = (_e439 * mix(0.2, 1.0, smoothstep(0.0, 0.6, z))); vec3 _e447 = ball; ball = (_e447 * mix(0.3, 1.0, smoothstep(0.35, 1.0, ao))); vec3 _e455 = ball; float _e461 = openAt((px_3 - vec2(0.0, (R_1 * 0.1)))); ball = (_e455 * mix(0.55, 1.0, _e461)); vec4 _e468 = _group_0_binding_0_fs.light; vec2 toLamp = normalize(((_e468.xy - px_3) + vec2(0.001, 0.0))); vec3 _e476 = ball; float _e481 = openAt((px_3 + ((toLamp * R_1) * 0.22))); ball = (_e476 * mix(0.4, 1.0, _e481)); vec3 _e486 = ball; return _e486; } vec3 lidSkin(vec2 q_2, vec2 px_4, float R, float seed, vec4 o_3, float open, float inAlmond, float e2_, float prox, float k_1, float openAmt) { vec3 skin = vec3(0.0); vec3 skinCol = vec3(0.0); float zs = sqrt(max((1.0 - e2_), 0.0)); float isLower = (smoothstep(0.25, 0.4, o_3.y) * (1.0 - smoothstep(0.6, 0.75, o_3.y))); float upperLid = (inAlmond * (1.0 - isLower)); float lowerLid = (inAlmond * isLower); float xs = (q_2.x / 1.35); float arc = max((1.0 - ((0.6 * xs) * xs)), 0.0); float yc = ((-((0.46 + (0.26 * openAmt))) * arc) - 0.1); float dc = ((q_2.y - yc) / 0.14); float crease = ((exp((-(dc) * dc)) * (0.15 + (0.85 * openAmt))) * (1.0 - lowerLid)); float yt = ((0.62 * arc) + 0.18); float dt = ((q_2.y - yt) / 0.16); float trough = ((exp((-(dt) * dt)) * (1.0 - inAlmond)) * (0.3 + (0.7 * openAmt))); float dhdy = (((((0.35 * crease) * 2.0) * dc) / 0.14) + ((((0.25 * trough) * 2.0) * dt) / 0.16)); vec3 ns = normalize(vec3(((q_2.x / 4.0) * inAlmond), (((q_2.y / 3.2) * inAlmond) - (dhdy * 0.3)), 1.0)); vec3 _e112 = skinAlbedo(px_4); skin = _e112; vec3 _e114 = skin; vec3 _e115 = skin; skin = mix(_e114, (_e115 * vec3(0.62, 0.5, 0.66)), (trough * 0.6)); float k2_ = (k_1 * 2.4); float _e130 = openAt((px_4 + (vec2(k2_, k2_) * 0.7071))); float _e136 = openAt((px_4 + (vec2(-(k2_), k2_) * 0.7071))); float _e143 = openAt((px_4 + (vec2(k2_, -(k2_)) * 0.7071))); float _e149 = openAt((px_4 - (vec2(k2_, k2_) * 0.7071))); float proxFar = (0.25 * (((_e130 + _e136) + _e143) + _e149)); float sore = clamp(((prox * 1.3) + (proxFar * 0.35)), 0.0, 1.0); vec3 _e161 = skin; skin = mix(_e161, vec3(0.46, 0.12, 0.12), (sore * 0.55)); vec3 _e169 = skin; skin = mix(_e169, vec3(0.62, 0.3, 0.3), ((lowerLid * smoothstep(0.05, 0.35, prox)) * 0.6)); float side = sign((q_2.x + 0.0001)); vec2 cp = vec2(((q_2.x * side) - 1.22), q_2.y); float fan = atan(cp.y, max(cp.x, 0.02)); float _e202 = vnoise(((cp * 9.0) + vec2(seed))); float feet = (((smoothstep(0.82, 1.0, sin(((fan * 26.0) + (_e202 * 3.0)))) * smoothstep(0.0, 0.08, cp.x)) * (1.0 - smoothstep(0.1, 0.34, length(cp)))) * (1.0 - inAlmond)); vec3 _e225 = skin; skin = (_e225 * (1.0 - (0.18 * feet))); float wet = smoothstep(0.02, 0.3, prox); vec3 _e234 = skin; vec3 _e243 = skinLight(_e234, ns, vec3(px_4, 0.0), mix(8.0, 110.0, wet), mix(0.015, 0.9, wet)); skinCol = _e243; vec3 _e245 = skinCol; skinCol = (_e245 * (1.0 - (0.4 * crease))); vec3 _e251 = skinCol; skinCol = (_e251 * (1.0 - ((0.12 * (1.0 - inAlmond)) * (1.0 - smoothstep(0.2, 0.9, e2_))))); float ks = max((R * 0.022), 1.0); vec4 _e272 = m4_((px_4 - vec2(0.0, ks))); vec4 _e276 = m4_((px_4 + vec2(0.0, ks))); float seam = ((smoothstep(0.15, 0.4, abs((_e276.y - _e272.y))) * step(0.5, _e272.z)) * step(0.5, _e276.z)); float upperMargin = (upperLid * smoothstep(0.02, 0.22, prox)); float _e307 = vnoise(vec2(((q_2.x * 80.0) + ((q_2.y * 30.0) * side)), (seed * 11.0))); float strands = smoothstep(0.3, 0.72, _e307); float lash = clamp(((upperMargin * (0.55 + (0.45 * strands))) + ((seam * 0.55) * arc)), 0.0, 1.0); vec3 _e323 = skinCol; return mix(_e323, vec3(0.012, 0.006, 0.006), lash); } void main() { EOut in_1 = EOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4); vec3 col_1 = vec3(0.0); vec3 flesh = vec3(0.0); float R_2 = in_1.a.z; float seed_2 = in_1.b.w; vec2 q_3 = in_1.local; vec2 px_5 = in_1.scr; vec4 _e7 = m4_(px_5); float open_1 = smoothstep(0.3, 0.8, _e7.x); float inAlmond_1 = smoothstep(0.3, 0.7, _e7.z); float own = (1.0 - smoothstep(0.85, 1.0, (pow((q_3.x / 1.34), 2.0) + pow((q_3.y / 0.74), 2.0)))); float d2_2 = dot(q_3, q_3); float sphere = clamp((((1.0 - sqrt(d2_2)) * R_2) / 1.5), 0.0, 1.0); float e2_1 = (pow((q_3.x / 1.42), 2.0) + pow((q_3.y / 1.22), 2.0)); float zone = (1.0 - smoothstep(0.45, 1.0, e2_1)); float ballA = ((open_1 * sphere) * own); float fleshA = (((open_1 * (1.0 - sphere)) * own) * inAlmond_1); float skinA = (((1.0 - open_1) * zone) * mix(0.85, 1.0, inAlmond_1)); float alpha = clamp(((ballA + fleshA) + skinA), 0.0, 1.0); if ((alpha < 0.002)) { _fs2p_location0 = vec4(0.0); return; } float k_3 = max((R_2 * 0.1), 2.0); float _e88 = openAt((px_5 + vec2(k_3, 0.0))); float _e92 = openAt((px_5 - vec2(k_3, 0.0))); float _e97 = openAt((px_5 + vec2(0.0, k_3))); float _e102 = openAt((px_5 - vec2(0.0, k_3))); float ao_1 = (0.25 * (((_e88 + _e92) + _e97) + _e102)); if ((ballA > 0.001)) { vec3 _e111 = col_1; vec3 _e112 = eyeball(in_1, q_3, d2_2, px_5, ao_1); col_1 = (_e111 + (_e112 * ballA)); } if ((fleshA > 0.001)) { float _e121 = vnoise(((q_3 * 18.0) + vec2(seed_2))); vec3 fleshAlb = mix(vec3(0.42, 0.08, 0.1), vec3(0.66, 0.2, 0.22), _e121); vec3 nf = normalize(vec3(((q_3.x * 0.7) + ((_e121 - 0.5) * 0.4)), (q_3.y * 0.7), 1.0)); vec3 _e151 = shade(fleshAlb, nf, vec3(px_5, (R_2 * 0.5)), 0.3, 90.0, 0.9); flesh = _e151; vec3 _e153 = flesh; flesh = (_e153 * mix(0.35, 1.0, smoothstep(0.35, 1.0, ao_1))); vec3 _e161 = col_1; vec3 _e162 = flesh; col_1 = (_e161 + (_e162 * fleshA)); } if ((skinA > 0.001)) { vec3 _e167 = col_1; vec3 _e170 = lidSkin(q_3, px_5, R_2, seed_2, _e7, open_1, inAlmond_1, e2_1, ao_1, k_3, in_1.c.x); col_1 = (_e167 + (_e170 * skinA)); } vec3 _e173 = col_1; _fs2p_location0 = vec4(_e173, alpha); return; }  €‹×âU $mU_block_0Fragmentvs_fullvs_fullfs_backfs_backvs_eyevs_eyefs_eyefs_eyeÂd// language: metal1.0 #include #include using metal::uint; struct U { metal::float4 res; metal::float4 light; metal::float4 lightCol; metal::float4 amb; metal::float4 sclera; metal::float4 blood; metal::float4 flashDir; metal::float4 flashCol; }; struct Lit { metal::packed_float3 dir; float att; }; struct FOut { metal::float4 pos; metal::float2 uv; char _pad2[8]; }; struct type_9 { metal::float2 inner[3]; }; struct EOut { metal::float4 pos; metal::float2 local; char _pad2[8]; metal::float4 a; metal::float4 b; metal::float4 c; metal::float2 scr; char _pad6[8]; }; struct type_10 { metal::float2 inner[6]; }; constant metal::float2 QUAD = metal::float2(1.45, 1.3); float hash2_( metal::float2 p_1 ) { metal::float3 p3_ = {}; p3_ = metal::fract(metal::float3(p_1.x, p_1.y, p_1.x) * 0.1031); metal::float3 _e9 = p3_; metal::float3 _e10 = p3_; metal::float3 _e11 = p3_; p3_ = _e9 + metal::float3(metal::dot(_e10, _e11.yzx + metal::float3(33.33))); float _e20 = p3_.x; float _e22 = p3_.y; float _e25 = p3_.z; return metal::fract((_e20 + _e22) * _e25); } float vnoise( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f = metal::fract(p_2); metal::float2 s_1 = (f * f) * (metal::float2(3.0) - (2.0 * f)); float _e10 = hash2_(i_3); float _e15 = hash2_(i_3 + metal::float2(1.0, 0.0)); float _e20 = hash2_(i_3 + metal::float2(0.0, 1.0)); float _e25 = hash2_(i_3 + metal::float2(1.0, 1.0)); return metal::mix(metal::mix(_e10, _e15, s_1.x), metal::mix(_e20, _e25, s_1.x), s_1.y); } float gnoise( metal::float2 p_3 ) { metal::float2 i_4 = metal::floor(p_3); metal::float2 f_1 = metal::fract(p_3); metal::float2 w = ((f_1 * f_1) * f_1) * ((f_1 * ((f_1 * 6.0) - metal::float2(15.0))) + metal::float2(10.0)); float _e15 = hash2_(i_4); float ga = _e15 * 6.2831855; float _e22 = hash2_(i_4 + metal::float2(1.0, 0.0)); float gb = _e22 * 6.2831855; float _e29 = hash2_(i_4 + metal::float2(0.0, 1.0)); float gc = _e29 * 6.2831855; float _e36 = hash2_(i_4 + metal::float2(1.0, 1.0)); float gd = _e36 * 6.2831855; float a_2 = metal::dot(metal::float2(metal::cos(ga), metal::sin(ga)), f_1); float b_1 = metal::dot(metal::float2(metal::cos(gb), metal::sin(gb)), f_1 - metal::float2(1.0, 0.0)); float c_1 = metal::dot(metal::float2(metal::cos(gc), metal::sin(gc)), f_1 - metal::float2(0.0, 1.0)); float d = metal::dot(metal::float2(metal::cos(gd), metal::sin(gd)), f_1 - metal::float2(1.0, 1.0)); return metal::mix(metal::mix(a_2, b_1, w.x), metal::mix(c_1, d, w.x), w.y); } float fbm( metal::float2 p_4 ) { float v = 0.0; float a_1 = 0.5; metal::float2 q = {}; int i_2 = 0; metal::float2x2 rot = metal::float2x2(metal::float2(0.8, 0.6), metal::float2(-0.6, 0.8)); q = p_4; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e35 = i_2; i_2 = as_type(as_type(_e35) + as_type(1)); } loop_init = false; int _e15 = i_2; if (_e15 < 4) { } else { break; } { float _e18 = v; float _e19 = a_1; metal::float2 _e20 = q; float _e21 = vnoise(_e20); v = _e18 + (_e19 * _e21); metal::float2 _e24 = q; q = ((rot * _e24) * 2.03) + metal::float2(17.1, 9.3); float _e32 = a_1; a_1 = _e32 * 0.5; } } float _e38 = v; return _e38; } Lit lamp( metal::float3 p_5, constant U& u ) { Lit o_2 = {}; metal::float4 _e3 = u.light; float _e10 = u.light.z; metal::float3 toL = metal::float3(_e3.xy - p_5.xy, _e10 - p_5.z); float d_1 = metal::length(toL); o_2.dir = toL / metal::float3(metal::max(d_1, 0.001)); float _e24 = u.light.w; float k_2 = d_1 / metal::max(_e24, 1.0); float _e32 = u.lightCol.w; o_2.att = _e32 * metal::pow(1.0 + (k_2 * k_2), -1.5); Lit _e39 = o_2; return _e39; } metal::float3 shade( metal::float3 albedo, metal::float3 n, metal::float3 p_6, float wrap, float sp, float sa, constant U& u ) { metal::float3 v_1 = metal::float3(0.0, 0.0, 1.0); Lit _e10 = lamp(p_6, u); float d1_ = metal::max((metal::dot(n, _e10.dir) + wrap) / (1.0 + wrap), 0.0); metal::float3 h1_ = metal::normalize(_e10.dir + v_1); metal::float4 _e24 = u.flashDir; metal::float3 fd = _e24.xyz; float fs = u.flashDir.w; float d2_1 = metal::max((metal::dot(n, fd) + wrap) / (1.0 + wrap), 0.0); metal::float3 h2_ = metal::normalize(fd + v_1); metal::float4 _e41 = u.amb; float _e46 = u.amb.w; metal::float3 ambient = _e41.xyz * _e46; metal::float4 _e50 = u.lightCol; metal::float4 _e60 = u.flashCol; metal::float4 _e68 = u.lightCol; metal::float4 _e79 = u.flashCol; return (albedo * ((ambient + (((_e50.xyz * _e10.att) * d1_) * 1.6)) + ((_e60.xyz * fs) * d2_1))) + ((((_e68.xyz * _e10.att) * metal::pow(metal::max(metal::dot(n, h1_), 0.0), sp)) + ((_e79.xyz * fs) * metal::pow(metal::max(metal::dot(n, h2_), 0.0), sp))) * sa); } metal::float3 skinLight( metal::float3 albedo_1, metal::float3 n_1, metal::float3 p_7, float sp_1, float sa_1, constant U& u ) { metal::float3 v_2 = metal::float3(0.0, 0.0, 1.0); Lit _e9 = lamp(p_7, u); metal::float4 _e12 = u.flashDir; metal::float3 fd_1 = _e12.xyz; float fs_1 = u.flashDir.w; float dl = metal::max((metal::dot(n_1, _e9.dir) + 0.35) / 1.35, 0.0); float df = metal::max(metal::dot(n_1, fd_1), 0.0); metal::float4 _e31 = u.amb; float _e36 = u.amb.w; metal::float4 _e42 = u.lightCol; metal::float4 _e61 = u.flashCol; metal::float4 _e71 = u.lightCol; metal::float4 _e85 = u.flashCol; return (albedo_1 * (((((_e31.xyz * _e36) * 0.7) + (((_e42.xyz * _e9.att) * dl) * 1.1)) + ((metal::float3(0.3, 0.03, 0.02) * _e9.att) * 0.2)) + (((_e61.xyz * fs_1) * df) * 0.55))) + ((((_e71.xyz * _e9.att) * metal::pow(metal::max(metal::dot(n_1, metal::normalize(_e9.dir + v_2)), 0.0), sp_1)) + ((_e85.xyz * fs_1) * metal::pow(metal::max(metal::dot(n_1, metal::normalize(fd_1 + v_2)), 0.0), sp_1))) * sa_1); } metal::float3 skinAlbedo( metal::float2 px, constant U& u ) { metal::float3 s = {}; float _e4 = u.res.w; metal::float2 wp = (px / metal::float2(_e4)) * 0.006; float _e14 = fbm((wp * 1.3) + metal::float2(4.0)); s = metal::mix(metal::float3(0.22, 0.14, 0.14), metal::float3(0.38, 0.26, 0.25), _e14); float _e30 = fbm((wp * 2.2) + metal::float2(11.0)); float ridge = metal::abs((_e30 * 2.0) - 1.0); float _e43 = fbm(wp * 0.7); float vein = (1.0 - metal::smoothstep(0.0, 0.05, ridge)) * metal::smoothstep(0.35, 0.65, _e43); metal::float3 _e48 = s; s = metal::mix(_e48, metal::float3(0.32, 0.04, 0.05), vein * 0.4); metal::float3 _e56 = s; float _e60 = u.res.w; float _e65 = vnoise((px / metal::float2(_e60)) * 0.45); s = _e56 * (0.9 + (0.1 * _e65)); metal::float3 _e71 = s; return _e71; } metal::float4 m4_( metal::float2 px_1, constant U& u, metal::texture2d maskTex, metal::sampler samp ) { metal::float4 _e5 = u.res; metal::float4 _e9 = maskTex.sample(samp, px_1 / _e5.xy, metal::level(0.0)); return _e9; } float openAt( metal::float2 px_2, constant U& u, metal::texture2d maskTex, metal::sampler samp ) { metal::float4 _e1 = m4_(px_2, u, maskTex, samp); return metal::smoothstep(0.3, 0.8, _e1.x); } metal::float3 eyeball( EOut in_2, metal::float2 q_1, float d2_, metal::float2 px_3, float ao, constant U& u, metal::texture2d maskTex, metal::sampler samp ) { metal::float3 irisCol = metal::float3(0.0); metal::float3 pupilCol = metal::float3(0.004, 0.002, 0.002); float pupilMask = 0.0; bool slit = false; metal::float3 scl = {}; metal::float3 albedo_2 = {}; metal::float3 ball = {}; float R_1 = in_2.a.z; float kind = in_2.a.w; float seed_1 = in_2.b.w; metal::float3 v_3 = metal::float3(0.0, 0.0, 1.0); float z = metal::sqrt(metal::max(1.0 - d2_, 0.0)); metal::float3 n_2 = metal::normalize(metal::float3(q_1.x, q_1.y, z + 0.0001)); float yaw = in_2.b.x * 0.62; float pitch = in_2.b.y * 0.48; metal::float3 g = metal::normalize(metal::float3(metal::sin(yaw) * metal::cos(pitch), metal::sin(pitch), metal::cos(yaw) * metal::cos(pitch))); metal::float3 t1_ = metal::normalize(metal::cross(metal::float3(0.0, 1.0, 0.0), g)); metal::float3 t2_ = metal::cross(g, t1_); metal::float3 e = metal::float3(metal::dot(n_2, t1_), metal::dot(n_2, t2_), metal::dot(n_2, g)); float irisR = in_2.c.z; metal::float2 ip = e.xy / metal::float2(irisR); float ir = metal::length(ip); float front = metal::step(0.0, e.z); float irisMask = (1.0 - metal::smoothstep(0.96, 1.04, ir)) * front; float pr = metal::mix(0.2, 0.8, in_2.b.z); if (irisMask > 0.0) { float ang = metal::atan2(ip.y, ip.x); metal::float2 ring = metal::float2(metal::cos(ang), metal::sin(ang)); float _e103 = fbm((ring * (11.0 + (ir * 2.0))) + metal::float2(seed_1 * 7.1, seed_1 * 3.3)); if (kind < 0.5) { float _e114 = vnoise((ip * 6.0) + metal::float2(seed_1 * 13.0)); irisCol = metal::mix(metal::float3(0.025, 0.012, 0.01), metal::float3(0.2, 0.085, 0.05), (_e103 * 0.9) + (_e114 * 0.2)); } else { if (kind < 1.5) { irisCol = metal::mix(metal::float3(0.42, 0.47, 0.5), metal::float3(0.78, 0.8, 0.8), _e103); float _e152 = vnoise((ip * 9.0) + metal::float2(seed_1)); pupilCol = metal::mix(metal::float3(0.3, 0.33, 0.36), metal::float3(0.55, 0.58, 0.6), _e152); } else { if (kind < 2.5) { irisCol = metal::mix(metal::float3(0.32, 0.17, 0.02), metal::float3(0.9, 0.62, 0.12), _e103); slit = true; } else { irisCol = metal::mix(metal::float3(0.45, 0.04, 0.0), metal::float3(1.0, 0.42, 0.06), _e103); slit = true; } } } metal::float3 _e176 = irisCol; irisCol = _e176 * (1.0 + (0.6 * metal::exp(-(metal::pow(((ir - pr) - 0.13) * 12.0, 2.0))))); metal::float3 _e191 = irisCol; irisCol = _e191 * metal::mix(1.0, 0.12, metal::smoothstep(0.72, 0.98, ir)); bool _e199 = slit; if (_e199) { float s_2 = metal::pow(ip.x / ((pr * 0.3) + 0.03), 2.0) + metal::pow(ip.y / 0.95, 2.0); pupilMask = 1.0 - metal::smoothstep(0.85, 1.15, s_2); } else { pupilMask = 1.0 - metal::smoothstep(pr - 0.03, pr + 0.02, ir); } } metal::float4 _e228 = u.sclera; scl = _e228.xyz; float rim = 1.0 - z; float back = metal::clamp(1.0 - e.z, 0.0, 1.0); if (irisMask < 1.0) { metal::float2 sp_2 = e.xy / metal::float2(1.0 + metal::max(e.z, -0.5)); float _e255 = fbm((sp_2 * 3.0) + metal::float2(seed_1 * 5.0)); float v1_ = metal::abs((_e255 * 2.0) - 1.0); float _e270 = fbm(((sp_2 * 7.0) + metal::float2(seed_1 * 9.0)) + metal::float2(3.0)); float v2_ = metal::abs((_e270 * 2.0) - 1.0); float reach = metal::smoothstep(0.02, 0.45, back); float _e296 = u.sclera.w; float veins = ((((1.0 - metal::smoothstep(0.0, 0.07, v1_)) + (0.7 * (1.0 - metal::smoothstep(0.0, 0.05, v2_)))) * reach) * _e296) * 1.3; metal::float3 _e300 = scl; metal::float4 _e303 = u.blood; float _e310 = u.sclera.w; scl = metal::mix(_e300, _e303.xyz * 0.8, (0.45 * _e310) * metal::smoothstep(0.0, 0.6, back)); metal::float3 _e318 = scl; metal::float4 _e321 = u.blood; scl = metal::mix(_e318, _e321.xyz, metal::clamp(veins, 0.0, 1.0) * 0.85); metal::float3 _e329 = scl; scl = _e329 * metal::mix(1.0, 0.5, metal::smoothstep(0.3, 1.0, rim)); } metal::float3 _e337 = scl; metal::float3 _e338 = irisCol; albedo_2 = metal::mix(_e337, _e338, irisMask); metal::float3 _e341 = albedo_2; metal::float3 _e342 = pupilCol; float _e343 = pupilMask; albedo_2 = metal::mix(_e341, _e342, _e343 * irisMask); metal::float3 surf = metal::float3(in_2.a.xy + (q_1 * R_1), z * R_1); metal::float3 _e352 = albedo_2; metal::float3 _e356 = shade(_e352, n_2, surf, 0.2, 70.0, 0.3, u); ball = _e356; float corneaW = (1.0 - metal::smoothstep(0.9, 1.25, ir)) * front; metal::float3 nc = metal::normalize(n_2 + ((g * 0.45) * corneaW)); Lit _e369 = lamp(surf, u); metal::float3 hl = metal::normalize(_e369.dir + v_3); metal::float4 _e375 = u.flashDir; metal::float3 hf = metal::normalize(_e375.xyz + v_3); metal::float3 _e379 = ball; metal::float4 _e382 = u.lightCol; metal::float4 _e394 = u.flashCol; float _e399 = u.flashDir.w; ball = _e379 + (((((_e382.xyz * _e369.att) * metal::pow(metal::max(metal::dot(nc, hl), 0.0), 650.0)) + ((_e394.xyz * _e399) * metal::pow(metal::max(metal::dot(nc, hf), 0.0), 650.0))) * 3.5) * corneaW); metal::float3 _e412 = ball; ball = _e412 + metal::float3(metal::pow(metal::max(metal::dot(nc, metal::float3(-0.29875273, -0.4267896, 0.8535792)), 0.0), 900.0) * 0.7); metal::float3 _e426 = ball; metal::float3 _e427 = irisCol; float _e429 = pupilMask; ball = _e426 + ((((_e427 * irisMask) * (1.0 - _e429)) * in_2.c.y) * 1.4); metal::float3 _e439 = ball; ball = _e439 * metal::mix(0.2, 1.0, metal::smoothstep(0.0, 0.6, z)); metal::float3 _e447 = ball; ball = _e447 * metal::mix(0.3, 1.0, metal::smoothstep(0.35, 1.0, ao)); metal::float3 _e455 = ball; float _e461 = openAt(px_3 - metal::float2(0.0, R_1 * 0.1), u, maskTex, samp); ball = _e455 * metal::mix(0.55, 1.0, _e461); metal::float4 _e468 = u.light; metal::float2 toLamp = metal::normalize((_e468.xy - px_3) + metal::float2(0.001, 0.0)); metal::float3 _e476 = ball; float _e481 = openAt(px_3 + ((toLamp * R_1) * 0.22), u, maskTex, samp); ball = _e476 * metal::mix(0.4, 1.0, _e481); metal::float3 _e486 = ball; return _e486; } metal::float3 lidSkin( metal::float2 q_2, metal::float2 px_4, float R, float seed, metal::float4 o_3, float open, float inAlmond, float e2_, float prox, float k_1, float openAmt, constant U& u, metal::texture2d maskTex, metal::sampler samp ) { metal::float3 skin = {}; metal::float3 skinCol = {}; float zs = metal::sqrt(metal::max(1.0 - e2_, 0.0)); float isLower = metal::smoothstep(0.25, 0.4, o_3.y) * (1.0 - metal::smoothstep(0.6, 0.75, o_3.y)); float upperLid = inAlmond * (1.0 - isLower); float lowerLid = inAlmond * isLower; float xs = q_2.x / 1.35; float arc = metal::max(1.0 - ((0.6 * xs) * xs), 0.0); float yc = (-((0.46 + (0.26 * openAmt))) * arc) - 0.1; float dc = (q_2.y - yc) / 0.14; float crease = (metal::exp(-(dc) * dc) * (0.15 + (0.85 * openAmt))) * (1.0 - lowerLid); float yt = (0.62 * arc) + 0.18; float dt = (q_2.y - yt) / 0.16; float trough = (metal::exp(-(dt) * dt) * (1.0 - inAlmond)) * (0.3 + (0.7 * openAmt)); float dhdy = ((((0.35 * crease) * 2.0) * dc) / 0.14) + ((((0.25 * trough) * 2.0) * dt) / 0.16); metal::float3 ns = metal::normalize(metal::float3((q_2.x / 4.0) * inAlmond, ((q_2.y / 3.2) * inAlmond) - (dhdy * 0.3), 1.0)); metal::float3 _e112 = skinAlbedo(px_4, u); skin = _e112; metal::float3 _e114 = skin; metal::float3 _e115 = skin; skin = metal::mix(_e114, _e115 * metal::float3(0.62, 0.5, 0.66), trough * 0.6); float k2_ = k_1 * 2.4; float _e130 = openAt(px_4 + (metal::float2(k2_, k2_) * 0.7071), u, maskTex, samp); float _e136 = openAt(px_4 + (metal::float2(-(k2_), k2_) * 0.7071), u, maskTex, samp); float _e143 = openAt(px_4 + (metal::float2(k2_, -(k2_)) * 0.7071), u, maskTex, samp); float _e149 = openAt(px_4 - (metal::float2(k2_, k2_) * 0.7071), u, maskTex, samp); float proxFar = 0.25 * (((_e130 + _e136) + _e143) + _e149); float sore = metal::clamp((prox * 1.3) + (proxFar * 0.35), 0.0, 1.0); metal::float3 _e161 = skin; skin = metal::mix(_e161, metal::float3(0.46, 0.12, 0.12), sore * 0.55); metal::float3 _e169 = skin; skin = metal::mix(_e169, metal::float3(0.62, 0.3, 0.3), (lowerLid * metal::smoothstep(0.05, 0.35, prox)) * 0.6); float side = metal::sign(q_2.x + 0.0001); metal::float2 cp = metal::float2((q_2.x * side) - 1.22, q_2.y); float fan = metal::atan2(cp.y, metal::max(cp.x, 0.02)); float _e202 = vnoise((cp * 9.0) + metal::float2(seed)); float feet = ((metal::smoothstep(0.82, 1.0, metal::sin((fan * 26.0) + (_e202 * 3.0))) * metal::smoothstep(0.0, 0.08, cp.x)) * (1.0 - metal::smoothstep(0.1, 0.34, metal::length(cp)))) * (1.0 - inAlmond); metal::float3 _e225 = skin; skin = _e225 * (1.0 - (0.18 * feet)); float wet = metal::smoothstep(0.02, 0.3, prox); metal::float3 _e234 = skin; metal::float3 _e243 = skinLight(_e234, ns, metal::float3(px_4, 0.0), metal::mix(8.0, 110.0, wet), metal::mix(0.015, 0.9, wet), u); skinCol = _e243; metal::float3 _e245 = skinCol; skinCol = _e245 * (1.0 - (0.4 * crease)); metal::float3 _e251 = skinCol; skinCol = _e251 * (1.0 - ((0.12 * (1.0 - inAlmond)) * (1.0 - metal::smoothstep(0.2, 0.9, e2_)))); float ks = metal::max(R * 0.022, 1.0); metal::float4 _e272 = m4_(px_4 - metal::float2(0.0, ks), u, maskTex, samp); metal::float4 _e276 = m4_(px_4 + metal::float2(0.0, ks), u, maskTex, samp); float seam = (metal::smoothstep(0.15, 0.4, metal::abs(_e276.y - _e272.y)) * metal::step(0.5, _e272.z)) * metal::step(0.5, _e276.z); float upperMargin = upperLid * metal::smoothstep(0.02, 0.22, prox); float _e307 = vnoise(metal::float2((q_2.x * 80.0) + ((q_2.y * 30.0) * side), seed * 11.0)); float strands = metal::smoothstep(0.3, 0.72, _e307); float lash = metal::clamp((upperMargin * (0.55 + (0.45 * strands))) + ((seam * 0.55) * arc), 0.0, 1.0); metal::float3 _e323 = skinCol; return metal::mix(_e323, metal::float3(0.012, 0.006, 0.006), lash); } struct vs_fullInput { }; struct vs_fullOutput { metal::float4 pos [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_fullOutput vs_full( uint i [[vertex_id]] ) { type_9 p = type_9 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FOut o = {}; metal::float2 _e15 = p.inner[i]; o.pos = metal::float4(_e15, 0.0, 1.0); float _e22 = p.inner[i].x; float _e29 = p.inner[i].y; o.uv = metal::float2((_e22 * 0.5) + 0.5, 0.5 - (_e29 * 0.5)); FOut _e35 = o; const auto _tmp = _e35; return vs_fullOutput { _tmp.pos, _tmp.uv }; } struct fs_backInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_backOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_backOutput fs_back( fs_backInput varyings_1 [[stage_in]] , metal::float4 pos [[position]] , constant U& u [[buffer(0)]] ) { const FOut in = { pos, varyings_1.uv }; metal::float3 col = {}; metal::float4 _e4 = u.res; metal::float2 px_5 = in.uv * _e4.xy; Lit _e9 = lamp(metal::float3(px_5, 0.0), u); metal::float3 _e10 = skinAlbedo(px_5, u); float _e14 = u.res.w; metal::float2 wp_1 = (px_5 / metal::float2(_e14)) * 0.006; metal::float2 bp = (wp_1 * 1.1) + metal::float2(4.0); float _e24 = gnoise(bp); float _e30 = gnoise((bp * 2.1) + metal::float2(3.0)); float b0_ = _e24 + (0.5 * _e30); float _e38 = gnoise(bp + metal::float2(0.02, 0.0)); float _e48 = gnoise(((bp + metal::float2(0.02, 0.0)) * 2.1) + metal::float2(3.0)); float bx = (_e38 + (0.5 * _e48)) - b0_; float _e57 = gnoise(bp + metal::float2(0.0, 0.02)); float _e67 = gnoise(((bp + metal::float2(0.0, 0.02)) * 2.1) + metal::float2(3.0)); float by = (_e57 + (0.5 * _e67)) - b0_; metal::float3 nw = metal::normalize(metal::float3(-(bx) * 22.0, -(by) * 22.0, 1.0)); metal::float3 _e85 = skinLight(_e10, nw, metal::float3(px_5, 0.0), 40.0, 0.03, u); col = _e85; metal::float3 _e87 = col; metal::float4 _e90 = u.lightCol; col = _e87 + (((_e90.xyz * _e9.att) * _e9.att) * 0.06); metal::float3 _e99 = col; return fs_backOutput { metal::float4(_e99, 1.0) }; } struct vs_eyeInput { metal::float4 a [[attribute(0)]]; metal::float4 b [[attribute(1)]]; metal::float4 c [[attribute(2)]]; }; struct vs_eyeOutput { metal::float4 pos [[position]]; metal::float2 local [[user(loc0), center_perspective]]; metal::float4 a [[user(loc1), flat]]; metal::float4 b [[user(loc2), flat]]; metal::float4 c [[user(loc3), flat]]; metal::float2 scr [[user(loc4), center_perspective]]; }; vertex vs_eyeOutput vs_eye( vs_eyeInput varyings_2 [[stage_in]] , uint i_1 [[vertex_id]] , constant U& u [[buffer(0)]] ) { const auto a = varyings_2.a; const auto b = varyings_2.b; const auto c = varyings_2.c; type_10 k = type_10 {{metal::float2(-1.0, -1.0), metal::float2(1.0, -1.0), metal::float2(1.0, 1.0), metal::float2(-1.0, -1.0), metal::float2(1.0, 1.0), metal::float2(-1.0, 1.0)}}; EOut o_1 = {}; metal::float2 _e25 = k.inner[i_1]; metal::float2 corner = _e25 * QUAD; metal::float2 px_6 = a.xy + (corner * a.z); float _e38 = u.res.x; float _e48 = u.res.y; o_1.pos = metal::float4(((px_6.x / _e38) * 2.0) - 1.0, 1.0 - ((px_6.y / _e48) * 2.0), 0.0, 1.0); o_1.local = corner; o_1.scr = px_6; o_1.a = a; o_1.b = b; o_1.c = c; EOut _e62 = o_1; const auto _tmp_1 = _e62; return vs_eyeOutput { _tmp_1.pos, _tmp_1.local, _tmp_1.a, _tmp_1.b, _tmp_1.c, _tmp_1.scr }; } struct fs_eyeInput { metal::float2 local [[user(loc0), center_perspective]]; metal::float4 a_2 [[user(loc1), flat]]; metal::float4 b_1 [[user(loc2), flat]]; metal::float4 c_1 [[user(loc3), flat]]; metal::float2 scr [[user(loc4), center_perspective]]; }; struct fs_eyeOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_eyeOutput fs_eye( fs_eyeInput varyings_3 [[stage_in]] , metal::float4 pos_1 [[position]] , constant U& u [[buffer(0)]] , metal::texture2d maskTex [[texture(0)]] , metal::sampler samp [[sampler(0)]] ) { const EOut in_1 = { pos_1, varyings_3.local, {}, varyings_3.a_2, varyings_3.b_1, varyings_3.c_1, varyings_3.scr }; metal::float3 col_1 = metal::float3(0.0); metal::float3 flesh = {}; float R_2 = in_1.a.z; float seed_2 = in_1.b.w; metal::float2 q_3 = in_1.local; metal::float2 px_7 = in_1.scr; metal::float4 _e7 = m4_(px_7, u, maskTex, samp); float open_1 = metal::smoothstep(0.3, 0.8, _e7.x); float inAlmond_1 = metal::smoothstep(0.3, 0.7, _e7.z); float own = 1.0 - metal::smoothstep(0.85, 1.0, metal::pow(in_1.local.x / 1.34, 2.0) + metal::pow(in_1.local.y / 0.74, 2.0)); float d2_2 = metal::dot(q_3, q_3); float sphere = metal::clamp(((1.0 - metal::sqrt(d2_2)) * R_2) / 1.5, 0.0, 1.0); float e2_1 = metal::pow(in_1.local.x / 1.42, 2.0) + metal::pow(in_1.local.y / 1.22, 2.0); float zone = 1.0 - metal::smoothstep(0.45, 1.0, e2_1); float ballA = (open_1 * sphere) * own; float fleshA = ((open_1 * (1.0 - sphere)) * own) * inAlmond_1; float skinA = ((1.0 - open_1) * zone) * metal::mix(0.85, 1.0, inAlmond_1); float alpha = metal::clamp((ballA + fleshA) + skinA, 0.0, 1.0); if (alpha < 0.002) { return fs_eyeOutput { metal::float4(0.0) }; } float k_3 = metal::max(R_2 * 0.1, 2.0); float _e88 = openAt(px_7 + metal::float2(k_3, 0.0), u, maskTex, samp); float _e92 = openAt(px_7 - metal::float2(k_3, 0.0), u, maskTex, samp); float _e97 = openAt(px_7 + metal::float2(0.0, k_3), u, maskTex, samp); float _e102 = openAt(px_7 - metal::float2(0.0, k_3), u, maskTex, samp); float ao_1 = 0.25 * (((_e88 + _e92) + _e97) + _e102); if (ballA > 0.001) { metal::float3 _e111 = col_1; metal::float3 _e112 = eyeball(in_1, q_3, d2_2, px_7, ao_1, u, maskTex, samp); col_1 = _e111 + (_e112 * ballA); } if (fleshA > 0.001) { float _e121 = vnoise((q_3 * 18.0) + metal::float2(seed_2)); metal::float3 fleshAlb = metal::mix(metal::float3(0.42, 0.08, 0.1), metal::float3(0.66, 0.2, 0.22), _e121); metal::float3 nf = metal::normalize(metal::float3((in_1.local.x * 0.7) + ((_e121 - 0.5) * 0.4), in_1.local.y * 0.7, 1.0)); metal::float3 _e151 = shade(fleshAlb, nf, metal::float3(px_7, R_2 * 0.5), 0.3, 90.0, 0.9, u); flesh = _e151; metal::float3 _e153 = flesh; flesh = _e153 * metal::mix(0.35, 1.0, metal::smoothstep(0.35, 1.0, ao_1)); metal::float3 _e161 = col_1; metal::float3 _e162 = flesh; col_1 = _e161 + (_e162 * fleshA); } if (skinA > 0.001) { metal::float3 _e167 = col_1; metal::float3 _e170 = lidSkin(q_3, px_7, R_2, seed_2, _e7, open_1, inAlmond_1, e2_1, ao_1, k_3, in_1.c.x, u, maskTex, samp); col_1 = _e167 + (_e170 * skinA); } metal::float3 _e173 = col_1; return fs_eyeOutput { metal::float4(_e173, alpha) }; }  €‹×âU $mvs_fullmainstruct U { float4 res; float4 light; float4 lightCol; float4 amb; float4 sclera; float4 blood; float4 flashDir; float4 flashCol; }; struct Lit { float3 dir; float att; }; struct FOut { float4 pos; float2 uv; }; struct EOut { float4 pos; float2 local; float4 a; float4 b; float4 c; float2 scr; }; static const float2 _229[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FOut _234 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FOut o = _234; o.pos = float4(_229[uint(gl_VertexIndex)], 0.0f, 1.0f); o.uv = float2((_229[uint(gl_VertexIndex)].x * 0.5f) + 0.5f, 0.5f - (_229[uint(gl_VertexIndex)].y * 0.5f)); gl_Position = o.pos; uv = o.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_backmainÿstruct U { float4 res; float4 light; float4 lightCol; float4 amb; float4 sclera; float4 blood; float4 flashDir; float4 flashCol; }; struct Lit { float3 dir; float att; }; struct FOut { float4 pos; float2 uv; }; struct EOut { float4 pos; float2 local; float4 a; float4 b; float4 c; float2 scr; }; static const Lit _228 = { float3(0.0f, 0.0f, 0.0f), 0.0f }; cbuffer u : register(b0) { U u_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static float2 uv; static float4 _496; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _496 : SV_Target0; }; Lit lamp(float3 p) { Lit o = _228; float3 _241 = float3(u_1_m0.light.xy - p.xy, u_1_m0.light.z - p.z); float _242 = length(_241); float _243 = max(_242, 0.001000000047497451305389404296875f); o.dir = _241 / float3(_243, _243, _243); float _250 = _242 / max(u_1_m0.light.w, 1.0f); o.att = u_1_m0.lightCol.w * pow(1.0f + (_250 * _250), -1.5f); return o; } float hash2(float2 p) { float3 p3 = float3(0.0f, 0.0f, 0.0f); p3 = frac(float3(p.xyx) * 0.103100001811981201171875f); float _49 = dot(p3, p3.yzx + float3(33.3300018310546875f, 33.3300018310546875f, 33.3300018310546875f)); p3 += float3(_49, _49, _49); return frac((p3.x + p3.y) * p3.z); } float vnoise(float2 p) { float2 _77 = floor(p); float2 _78 = frac(p); float2 _82 = (_78 * _78) * (float2(3.0f, 3.0f) - (_78 * 2.0f)); return lerp(lerp(hash2(_77), hash2(_77 + float2(1.0f, 0.0f)), _82.x), lerp(hash2(_77 + float2(0.0f, 1.0f)), hash2(_77 + float2(1.0f, 1.0f)), _82.x), _82.y); } float fbm(float2 p) { float a = 0.5f; int i = 0; float v = 0.0f; float2 q = float2(0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); q = p; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 4)) { break; } v += (a * vnoise(q)); q = (mul(q, float2x2(float2(0.800000011920928955078125f, 0.60000002384185791015625f), float2(-0.60000002384185791015625f, 0.800000011920928955078125f))) * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 9.30000019073486328125f); a *= 0.5f; i++; continue; } return v; } float3 skinAlbedo(float2 px) { float3 s = float3(0.0f, 0.0f, 0.0f); float2 _455 = (px / float2(u_1_m0.res.w, u_1_m0.res.w)) * 0.006000000052154064178466796875f; float _458 = fbm((_455 * 1.2999999523162841796875f) + float2(4.0f, 4.0f)); s = lerp(float3(0.2199999988079071044921875f, 0.14000000059604644775390625f, 0.14000000059604644775390625f), float3(0.37999999523162841796875f, 0.2599999904632568359375f, 0.25f), float3(_458, _458, _458)); float _474 = ((1.0f - smoothstep(0.0f, 0.0500000007450580596923828125f, abs((fbm((_455 * 2.2000000476837158203125f) + float2(11.0f, 11.0f)) * 2.0f) - 1.0f))) * smoothstep(0.3499999940395355224609375f, 0.64999997615814208984375f, fbm(_455 * 0.699999988079071044921875f))) * 0.4000000059604644775390625f; s = lerp(s, float3(0.319999992847442626953125f, 0.039999999105930328369140625f, 0.0500000007450580596923828125f), float3(_474, _474, _474)); s *= (0.89999997615814208984375f + (0.100000001490116119384765625f * vnoise((px / float2(u_1_m0.res.w, u_1_m0.res.w)) * 0.449999988079071044921875f))); return s; } float gnoise(float2 p) { float2 _106 = floor(p); float2 _107 = frac(p); float2 _114 = ((_107 * _107) * _107) * ((_107 * ((_107 * 6.0f) - float2(15.0f, 15.0f))) + float2(10.0f, 10.0f)); float _116 = hash2(_106) * 6.283185482025146484375f; float _119 = hash2(_106 + float2(1.0f, 0.0f)) * 6.283185482025146484375f; float _122 = hash2(_106 + float2(0.0f, 1.0f)) * 6.283185482025146484375f; float _125 = hash2(_106 + float2(1.0f, 1.0f)) * 6.283185482025146484375f; return lerp(lerp(dot(float2(cos(_116), sin(_116)), _107), dot(float2(cos(_119), sin(_119)), _107 - float2(1.0f, 0.0f)), _114.x), lerp(dot(float2(cos(_122), sin(_122)), _107 - float2(0.0f, 1.0f)), dot(float2(cos(_125), sin(_125)), _107 - float2(1.0f, 1.0f)), _114.x), _114.y); } float3 skinLight(float3 albedo, float3 n, float3 p, float sp, float sa) { Lit _356 = lamp(p); return (albedo * (((((u_1_m0.amb.xyz * u_1_m0.amb.w) * 0.699999988079071044921875f) + (((u_1_m0.lightCol.xyz * _356.att) * max((dot(n, _356.dir) + 0.3499999940395355224609375f) / 1.35000002384185791015625f, 0.0f)) * 1.10000002384185791015625f)) + ((float3(0.300000011920928955078125f, 0.02999999932944774627685546875f, 0.0199999995529651641845703125f) * _356.att) * 0.20000000298023223876953125f)) + (((u_1_m0.flashCol.xyz * u_1_m0.flashDir.w) * max(dot(n, u_1_m0.flashDir.xyz), 0.0f)) * 0.550000011920928955078125f))) + ((((u_1_m0.lightCol.xyz * _356.att) * pow(max(dot(n, normalize(_356.dir + float3(0.0f, 0.0f, 1.0f))), 0.0f), sp)) + ((u_1_m0.flashCol.xyz * u_1_m0.flashDir.w) * pow(max(dot(n, normalize(u_1_m0.flashDir.xyz + float3(0.0f, 0.0f, 1.0f))), 0.0f), sp))) * sa); } void frag_main() { float3 col = float3(0.0f, 0.0f, 0.0f); FOut _489 = { gl_FragCoord, uv }; float2 _514 = _489.uv * u_1_m0.res.xy; Lit _516 = lamp(float3(_514, 0.0f)); float2 _524 = (((_514 / float2(u_1_m0.res.w, u_1_m0.res.w)) * 0.006000000052154064178466796875f) * 1.10000002384185791015625f) + float2(4.0f, 4.0f); float _530 = gnoise(_524) + (0.5f * gnoise((_524 * 2.099999904632568359375f) + float2(3.0f, 3.0f))); col = skinLight(skinAlbedo(_514), normalize(float3((-((gnoise(_524 + float2(0.0199999995529651641845703125f, 0.0f)) + (0.5f * gnoise(((_524 + float2(0.0199999995529651641845703125f, 0.0f)) * 2.099999904632568359375f) + float2(3.0f, 3.0f)))) - _530)) * 22.0f, (-((gnoise(_524 + float2(0.0f, 0.0199999995529651641845703125f)) + (0.5f * gnoise(((_524 + float2(0.0f, 0.0199999995529651641845703125f)) * 2.099999904632568359375f) + float2(3.0f, 3.0f)))) - _530)) * 22.0f, 1.0f)), float3(_514, 0.0f), 40.0f, 0.02999999932944774627685546875f); col += (((u_1_m0.lightCol.xyz * _516.att) * _516.att) * 0.0599999986588954925537109375f); _496 = float4(col, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._496 = _496; return stage_output; } vs_eyemaina struct U { float4 res; float4 light; float4 lightCol; float4 amb; float4 sclera; float4 blood; float4 flashDir; float4 flashCol; }; struct Lit { float3 dir; float att; }; struct FOut { float4 pos; float2 uv; }; struct EOut { float4 pos; float2 local; float4 a; float4 b; float4 c; float2 scr; }; static const Lit _228 = { float3(0.0f, 0.0f, 0.0f), 0.0f }; static const float2 _514[6] = { float2(-1.0f, -1.0f), float2(1.0f, -1.0f), float2(1.0f, 1.0f), float2(-1.0f, -1.0f), float2(1.0f, 1.0f), float2(-1.0f, 1.0f) }; static const EOut _519 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer u : register(b0) { U u_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float4 a; static float4 b; static float4 c; static float2 local; static float4 a_1; static float4 b_1; static float4 c_1; static float2 scr; struct SPIRV_Cross_Input { float4 a : TEXCOORD0; float4 b : TEXCOORD1; float4 c : TEXCOORD2; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 local : TEXCOORD0; nointerpolation float4 a_1 : TEXCOORD1; nointerpolation float4 b_1 : TEXCOORD2; nointerpolation float4 c_1 : TEXCOORD3; float2 scr : TEXCOORD4; float4 gl_Position : SV_Position; }; void vert_main() { EOut o = _519; float2 _523 = _514[uint(gl_VertexIndex)] * float2(1.4500000476837158203125f, 1.2999999523162841796875f); float2 _527 = a.xy + (_523 * a.z); o.pos = float4(((_527.x / u_1_m0.res.x) * 2.0f) - 1.0f, 1.0f - ((_527.y / u_1_m0.res.y) * 2.0f), 0.0f, 1.0f); o.local = _523; o.scr = _527; o.a = a; o.b = b; o.c = c; gl_Position = o.pos; local = o.local; a_1 = o.a; b_1 = o.b; c_1 = o.c; scr = o.scr; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); a = stage_input.a; b = stage_input.b; c = stage_input.c; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.local = local; stage_output.a_1 = a_1; stage_output.b_1 = b_1; stage_output.c_1 = c_1; stage_output.scr = scr; return stage_output; } fs_eyemain¢Nstruct U { float4 res; float4 light; float4 lightCol; float4 amb; float4 sclera; float4 blood; float4 flashDir; float4 flashCol; }; struct Lit { float3 dir; float att; }; struct FOut { float4 pos; float2 uv; }; struct EOut { float4 pos; float2 local; float4 a; float4 b; float4 c; float2 scr; }; static const Lit _232 = { float3(0.0f, 0.0f, 0.0f), 0.0f }; cbuffer u : register(b0) { U u_1_m0 : packoffset(c0); }; Texture2D maskTex : register(t0); SamplerState samp : register(s0); static float4 gl_FragCoord; static float2 local; static float4 a; static float4 b; static float4 c; static float2 scr; static float4 _1178; struct SPIRV_Cross_Input { float2 local : TEXCOORD0; nointerpolation float4 a : TEXCOORD1; nointerpolation float4 b : TEXCOORD2; nointerpolation float4 c : TEXCOORD3; float2 scr : TEXCOORD4; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _1178 : SV_Target0; }; float4 m4(float2 px) { return maskTex.SampleLevel(samp, px / u_1_m0.res.xy, 0.0f); } float openAt(float2 px) { return smoothstep(0.300000011920928955078125f, 0.800000011920928955078125f, m4(px).x); } float hash2(float2 p) { float3 p3 = float3(0.0f, 0.0f, 0.0f); p3 = frac(float3(p.xyx) * 0.103100001811981201171875f); float _53 = dot(p3, p3.yzx + float3(33.3300018310546875f, 33.3300018310546875f, 33.3300018310546875f)); p3 += float3(_53, _53, _53); return frac((p3.x + p3.y) * p3.z); } float vnoise(float2 p) { float2 _81 = floor(p); float2 _82 = frac(p); float2 _86 = (_82 * _82) * (float2(3.0f, 3.0f) - (_82 * 2.0f)); return lerp(lerp(hash2(_81), hash2(_81 + float2(1.0f, 0.0f)), _86.x), lerp(hash2(_81 + float2(0.0f, 1.0f)), hash2(_81 + float2(1.0f, 1.0f)), _86.x), _86.y); } float fbm(float2 p) { float a_1 = 0.5f; int i = 0; float v = 0.0f; float2 q = float2(0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); q = p; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 4)) { break; } v += (a_1 * vnoise(q)); q = (mul(q, float2x2(float2(0.800000011920928955078125f, 0.60000002384185791015625f), float2(-0.60000002384185791015625f, 0.800000011920928955078125f))) * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 9.30000019073486328125f); a_1 *= 0.5f; i++; continue; } return v; } Lit lamp(float3 p) { Lit o = _232; float3 _245 = float3(u_1_m0.light.xy - p.xy, u_1_m0.light.z - p.z); float _246 = length(_245); float _247 = max(_246, 0.001000000047497451305389404296875f); o.dir = _245 / float3(_247, _247, _247); float _254 = _246 / max(u_1_m0.light.w, 1.0f); o.att = u_1_m0.lightCol.w * pow(1.0f + (_254 * _254), -1.5f); return o; } float3 shade(float3 albedo, float3 n, float3 p, float wrap, float sp, float sa) { Lit _276 = lamp(p); return (albedo * (((u_1_m0.amb.xyz * u_1_m0.amb.w) + (((u_1_m0.lightCol.xyz * _276.att) * max((dot(n, _276.dir) + wrap) / (1.0f + wrap), 0.0f)) * 1.60000002384185791015625f)) + ((u_1_m0.flashCol.xyz * u_1_m0.flashDir.w) * max((dot(n, u_1_m0.flashDir.xyz) + wrap) / (1.0f + wrap), 0.0f)))) + ((((u_1_m0.lightCol.xyz * _276.att) * pow(max(dot(n, normalize(_276.dir + float3(0.0f, 0.0f, 1.0f))), 0.0f), sp)) + ((u_1_m0.flashCol.xyz * u_1_m0.flashDir.w) * pow(max(dot(n, normalize(u_1_m0.flashDir.xyz + float3(0.0f, 0.0f, 1.0f))), 0.0f), sp))) * sa); } float3 eyeball(EOut _in, float2 q, float d2, float2 px, float ao) { float3 scl = float3(0.0f, 0.0f, 0.0f); float3 pupilCol = float3(0.0040000001899898052215576171875f, 0.00200000009499490261077880859375f, 0.00200000009499490261077880859375f); float3 ball = float3(0.0f, 0.0f, 0.0f); bool slit = false; float3 irisCol = float3(0.0f, 0.0f, 0.0f); float3 albedo = float3(0.0f, 0.0f, 0.0f); float pupilMask = 0.0f; float _611 = sqrt(max(1.0f - d2, 0.0f)); float3 _616 = normalize(float3(q, _611 + 9.9999997473787516355514526367188e-05f)); float _619 = _in.b.x * 0.62000000476837158203125f; float _622 = _in.b.y * 0.4799999892711639404296875f; float3 _631 = normalize(float3(sin(_619) * cos(_622), sin(_622), cos(_619) * cos(_622))); float3 _633 = normalize(cross(float3(0.0f, 1.0f, 0.0f), _631)); float3 _638 = float3(dot(_616, _633), dot(_616, cross(_631, _633)), dot(_616, _631)); float2 _643 = _638.xy / float2(_in.c.zz); float _644 = length(_643); float _646 = step(0.0f, _638.z); float _649 = (1.0f - smoothstep(0.959999978542327880859375f, 1.03999996185302734375f, _644)) * _646; float _652 = lerp(0.20000000298023223876953125f, 0.800000011920928955078125f, _in.b.z); if (_649 > 0.0f) { float _658 = atan2(_643.y, _643.x); float _669 = fbm((float2(cos(_658), sin(_658)) * (11.0f + (_644 * 2.0f))) + float2(_in.b.w * 7.099999904632568359375f, _in.b.w * 3.2999999523162841796875f)); if (_in.a.w < 0.5f) { float _675 = _in.b.w * 13.0f; float _681 = (_669 * 0.89999997615814208984375f) + (vnoise((_643 * 6.0f) + float2(_675, _675)) * 0.20000000298023223876953125f); irisCol = lerp(float3(0.02500000037252902984619140625f, 0.01200000010430812835693359375f, 0.00999999977648258209228515625f), float3(0.20000000298023223876953125f, 0.085000000894069671630859375f, 0.0500000007450580596923828125f), float3(_681, _681, _681)); } else { if (_in.a.w < 1.5f) { irisCol = lerp(float3(0.4199999868869781494140625f, 0.4699999988079071044921875f, 0.5f), float3(0.7799999713897705078125f, 0.800000011920928955078125f, 0.800000011920928955078125f), float3(_669, _669, _669)); float _693 = vnoise((_643 * 9.0f) + float2(_in.b.ww)); pupilCol = lerp(float3(0.300000011920928955078125f, 0.3300000131130218505859375f, 0.36000001430511474609375f), float3(0.550000011920928955078125f, 0.579999983310699462890625f, 0.60000002384185791015625f), float3(_693, _693, _693)); } else { if (_in.a.w < 2.5f) { irisCol = lerp(float3(0.319999992847442626953125f, 0.17000000178813934326171875f, 0.0199999995529651641845703125f), float3(0.89999997615814208984375f, 0.62000000476837158203125f, 0.119999997317790985107421875f), float3(_669, _669, _669)); slit = true; } else { irisCol = lerp(float3(0.449999988079071044921875f, 0.039999999105930328369140625f, 0.0f), float3(1.0f, 0.4199999868869781494140625f, 0.0599999986588954925537109375f), float3(_669, _669, _669)); slit = true; } } } irisCol *= (1.0f + (0.60000002384185791015625f * exp(-pow(((_644 - _652) - 0.12999999523162841796875f) * 12.0f, 2.0f)))); irisCol *= lerp(1.0f, 0.119999997317790985107421875f, smoothstep(0.7200000286102294921875f, 0.980000019073486328125f, _644)); if (slit) { pupilMask = 1.0f - smoothstep(0.85000002384185791015625f, 1.14999997615814208984375f, pow(_643.x / ((_652 * 0.300000011920928955078125f) + 0.02999999932944774627685546875f), 2.0f) + pow(_643.y / 0.949999988079071044921875f, 2.0f)); } else { pupilMask = 1.0f - smoothstep(_652 - 0.02999999932944774627685546875f, _652 + 0.0199999995529651641845703125f, _644); } } scl = u_1_m0.sclera.xyz; float _744 = clamp(1.0f - _638.z, 0.0f, 1.0f); if (_649 < 1.0f) { float _751 = 1.0f + max(_638.z, -0.5f); float2 _753 = _638.xy / float2(_751, _751); float _755 = _in.b.w * 5.0f; float _763 = _in.b.w * 9.0f; float _793 = (0.449999988079071044921875f * u_1_m0.sclera.w) * smoothstep(0.0f, 0.60000002384185791015625f, _744); scl = lerp(scl, u_1_m0.blood.xyz * 0.800000011920928955078125f, float3(_793, _793, _793)); float _801 = clamp(((((1.0f - smoothstep(0.0f, 0.070000000298023223876953125f, abs((fbm((_753 * 3.0f) + float2(_755, _755)) * 2.0f) - 1.0f))) + (0.699999988079071044921875f * (1.0f - smoothstep(0.0f, 0.0500000007450580596923828125f, abs((fbm(((_753 * 7.0f) + float2(_763, _763)) + float2(3.0f, 3.0f)) * 2.0f) - 1.0f))))) * smoothstep(0.0199999995529651641845703125f, 0.449999988079071044921875f, _744)) * u_1_m0.sclera.w) * 1.2999999523162841796875f, 0.0f, 1.0f) * 0.85000002384185791015625f; scl = lerp(scl, u_1_m0.blood.xyz, float3(_801, _801, _801)); scl *= lerp(1.0f, 0.5f, smoothstep(0.300000011920928955078125f, 1.0f, 1.0f - _611)); } albedo = lerp(scl, irisCol, float3(_649, _649, _649)); float _815 = pupilMask * _649; albedo = lerp(albedo, pupilCol, float3(_815, _815, _815)); float3 _823 = float3(_in.a.xy + (q * _in.a.z), _611 * _in.a.z); ball = shade(albedo, _616, _823, 0.20000000298023223876953125f, 70.0f, 0.300000011920928955078125f); float _828 = (1.0f - smoothstep(0.89999997615814208984375f, 1.25f, _644)) * _646; float3 _832 = normalize(_616 + ((_631 * 0.449999988079071044921875f) * _828)); Lit _833 = lamp(_823); ball += (((((u_1_m0.lightCol.xyz * _833.att) * pow(max(dot(_832, normalize(_833.dir + float3(0.0f, 0.0f, 1.0f))), 0.0f), 650.0f)) + ((u_1_m0.flashCol.xyz * u_1_m0.flashDir.w) * pow(max(dot(_832, normalize(u_1_m0.flashDir.xyz + float3(0.0f, 0.0f, 1.0f))), 0.0f), 650.0f))) * 3.5f) * _828); float _870 = pow(max(dot(_832, float3(-0.298752725124359130859375f, -0.4267896115779876708984375f, 0.853579223155975341796875f)), 0.0f), 900.0f) * 0.699999988079071044921875f; ball += float3(_870, _870, _870); ball += ((((irisCol * _649) * (1.0f - pupilMask)) * _in.c.y) * 1.39999997615814208984375f); ball *= lerp(0.20000000298023223876953125f, 1.0f, smoothstep(0.0f, 0.60000002384185791015625f, _611)); ball *= lerp(0.300000011920928955078125f, 1.0f, smoothstep(0.3499999940395355224609375f, 1.0f, ao)); ball *= lerp(0.550000011920928955078125f, 1.0f, openAt(px - float2(0.0f, _in.a.z * 0.100000001490116119384765625f))); ball *= lerp(0.4000000059604644775390625f, 1.0f, openAt(px + ((normalize((u_1_m0.light.xy - px) + float2(0.001000000047497451305389404296875f, 0.0f)) * _in.a.z) * 0.2199999988079071044921875f))); return ball; } float3 skinAlbedo(float2 px) { float3 s = float3(0.0f, 0.0f, 0.0f); float2 _459 = (px / float2(u_1_m0.res.w, u_1_m0.res.w)) * 0.006000000052154064178466796875f; float _462 = fbm((_459 * 1.2999999523162841796875f) + float2(4.0f, 4.0f)); s = lerp(float3(0.2199999988079071044921875f, 0.14000000059604644775390625f, 0.14000000059604644775390625f), float3(0.37999999523162841796875f, 0.2599999904632568359375f, 0.25f), float3(_462, _462, _462)); float _478 = ((1.0f - smoothstep(0.0f, 0.0500000007450580596923828125f, abs((fbm((_459 * 2.2000000476837158203125f) + float2(11.0f, 11.0f)) * 2.0f) - 1.0f))) * smoothstep(0.3499999940395355224609375f, 0.64999997615814208984375f, fbm(_459 * 0.699999988079071044921875f))) * 0.4000000059604644775390625f; s = lerp(s, float3(0.319999992847442626953125f, 0.039999999105930328369140625f, 0.0500000007450580596923828125f), float3(_478, _478, _478)); s *= (0.89999997615814208984375f + (0.100000001490116119384765625f * vnoise((px / float2(u_1_m0.res.w, u_1_m0.res.w)) * 0.449999988079071044921875f))); return s; } float3 skinLight(float3 albedo, float3 n, float3 p, float sp, float sa) { Lit _360 = lamp(p); return (albedo * (((((u_1_m0.amb.xyz * u_1_m0.amb.w) * 0.699999988079071044921875f) + (((u_1_m0.lightCol.xyz * _360.att) * max((dot(n, _360.dir) + 0.3499999940395355224609375f) / 1.35000002384185791015625f, 0.0f)) * 1.10000002384185791015625f)) + ((float3(0.300000011920928955078125f, 0.02999999932944774627685546875f, 0.0199999995529651641845703125f) * _360.att) * 0.20000000298023223876953125f)) + (((u_1_m0.flashCol.xyz * u_1_m0.flashDir.w) * max(dot(n, u_1_m0.flashDir.xyz), 0.0f)) * 0.550000011920928955078125f))) + ((((u_1_m0.lightCol.xyz * _360.att) * pow(max(dot(n, normalize(_360.dir + float3(0.0f, 0.0f, 1.0f))), 0.0f), sp)) + ((u_1_m0.flashCol.xyz * u_1_m0.flashDir.w) * pow(max(dot(n, normalize(u_1_m0.flashDir.xyz + float3(0.0f, 0.0f, 1.0f))), 0.0f), sp))) * sa); } float3 lidSkin(float2 q, float2 px, float R, float seed, float4 o, float open, float inAlmond, float e2, float prox, float k, float openAmt) { float3 skin = float3(0.0f, 0.0f, 0.0f); float3 skinCol = float3(0.0f, 0.0f, 0.0f); float _967 = smoothstep(0.25f, 0.4000000059604644775390625f, o.y) * (1.0f - smoothstep(0.60000002384185791015625f, 0.75f, o.y)); float _970 = inAlmond * _967; float _972 = q.x / 1.35000002384185791015625f; float _976 = max(1.0f - ((0.60000002384185791015625f * _972) * _972), 0.0f); float _984 = (q.y - (((-(0.4600000083446502685546875f + (0.2599999904632568359375f * openAmt))) * _976) - 0.100000001490116119384765625f)) / 0.14000000059604644775390625f; float _992 = (exp((-_984) * _984) * (0.1500000059604644775390625f + (0.85000002384185791015625f * openAmt))) * (1.0f - _970); float _997 = (q.y - ((0.62000000476837158203125f * _976) + 0.180000007152557373046875f)) / 0.1599999964237213134765625f; float _1005 = (exp((-_997) * _997) * (1.0f - inAlmond)) * (0.300000011920928955078125f + (0.699999988079071044921875f * openAmt)); skin = skinAlbedo(px); float _1029 = _1005 * 0.60000002384185791015625f; skin = lerp(skin, skin * float3(0.62000000476837158203125f, 0.5f, 0.660000026226043701171875f), float3(_1029, _1029, _1029)); float _1032 = k * 2.400000095367431640625f; float _1060 = clamp((prox * 1.2999999523162841796875f) + ((0.25f * (((openAt(px + (float2(_1032, _1032) * 0.707099974155426025390625f)) + openAt(px + (float2(-_1032, _1032) * 0.707099974155426025390625f))) + openAt(px + (float2(_1032, -_1032) * 0.707099974155426025390625f))) + openAt(px - (float2(_1032, _1032) * 0.707099974155426025390625f)))) * 0.3499999940395355224609375f), 0.0f, 1.0f) * 0.550000011920928955078125f; skin = lerp(skin, float3(0.4600000083446502685546875f, 0.119999997317790985107421875f, 0.119999997317790985107421875f), float3(_1060, _1060, _1060)); float _1066 = (_970 * smoothstep(0.0500000007450580596923828125f, 0.3499999940395355224609375f, prox)) * 0.60000002384185791015625f; skin = lerp(skin, float3(0.62000000476837158203125f, 0.300000011920928955078125f, 0.300000011920928955078125f), float3(_1066, _1066, _1066)); float _1071 = sign(q.x + 9.9999997473787516355514526367188e-05f); float2 _1076 = float2((q.x * _1071) - 1.2200000286102294921875f, q.y); skin *= (1.0f - (0.180000007152557373046875f * (((smoothstep(0.819999992847442626953125f, 1.0f, sin((atan2(_1076.y, max(_1076.x, 0.0199999995529651641845703125f)) * 26.0f) + (vnoise((_1076 * 9.0f) + float2(seed, seed)) * 3.0f))) * smoothstep(0.0f, 0.07999999821186065673828125f, _1076.x)) * (1.0f - smoothstep(0.100000001490116119384765625f, 0.3400000035762786865234375f, length(_1076)))) * (1.0f - inAlmond)))); float _1103 = smoothstep(0.0199999995529651641845703125f, 0.300000011920928955078125f, prox); skinCol = skinLight(skin, normalize(float3((q.x / 4.0f) * inAlmond, ((q.y / 3.2000000476837158203125f) * inAlmond) - ((((((0.3499999940395355224609375f * _992) * 2.0f) * _984) / 0.14000000059604644775390625f) + ((((0.25f * _1005) * 2.0f) * _997) / 0.1599999964237213134765625f)) * 0.300000011920928955078125f), 1.0f)), float3(px, 0.0f), lerp(8.0f, 110.0f, _1103), lerp(0.014999999664723873138427734375f, 0.89999997615814208984375f, _1103)); skinCol *= (1.0f - (0.4000000059604644775390625f * _992)); skinCol *= (1.0f - ((0.119999997317790985107421875f * (1.0f - inAlmond)) * (1.0f - smoothstep(0.20000000298023223876953125f, 0.89999997615814208984375f, e2)))); float _1122 = max(R * 0.02199999988079071044921875f, 1.0f); float4 _1125 = m4(px - float2(0.0f, _1122)); float4 _1128 = m4(px + float2(0.0f, _1122)); float _1158 = clamp((((inAlmond * (1.0f - _967)) * smoothstep(0.0199999995529651641845703125f, 0.2199999988079071044921875f, prox)) * (0.550000011920928955078125f + (0.449999988079071044921875f * smoothstep(0.300000011920928955078125f, 0.7200000286102294921875f, vnoise(float2((q.x * 80.0f) + ((q.y * 30.0f) * _1071), seed * 11.0f)))))) + ((((smoothstep(0.1500000059604644775390625f, 0.4000000059604644775390625f, abs(_1128.y - _1125.y)) * step(0.5f, _1125.z)) * step(0.5f, _1128.z)) * 0.550000011920928955078125f) * _976), 0.0f, 1.0f); return lerp(skinCol, float3(0.01200000010430812835693359375f, 0.006000000052154064178466796875f, 0.006000000052154064178466796875f), float3(_1158, _1158, _1158)); } void frag_main() { float3 col = float3(0.0f, 0.0f, 0.0f); float3 flesh = float3(0.0f, 0.0f, 0.0f); EOut _1163 = { gl_FragCoord, local, a, b, c, scr }; float4 _1203 = m4(_1163.scr); float _1205 = smoothstep(0.300000011920928955078125f, 0.800000011920928955078125f, _1203.x); float _1207 = smoothstep(0.300000011920928955078125f, 0.699999988079071044921875f, _1203.z); float _1216 = 1.0f - smoothstep(0.85000002384185791015625f, 1.0f, pow(_1163.local.x / 1.34000003337860107421875f, 2.0f) + pow(_1163.local.y / 0.7400000095367431640625f, 2.0f)); float _1217 = dot(_1163.local, _1163.local); float _1222 = clamp(((1.0f - sqrt(_1217)) * _1163.a.z) / 1.5f, 0.0f, 1.0f); float _1229 = pow(_1163.local.x / 1.41999995708465576171875f, 2.0f) + pow(_1163.local.y / 1.2200000286102294921875f, 2.0f); float _1233 = (_1205 * _1222) * _1216; float _1237 = ((_1205 * (1.0f - _1222)) * _1216) * _1207; float _1241 = ((1.0f - _1205) * (1.0f - smoothstep(0.449999988079071044921875f, 1.0f, _1229))) * lerp(0.85000002384185791015625f, 1.0f, _1207); float _1244 = clamp((_1233 + _1237) + _1241, 0.0f, 1.0f); if (_1244 < 0.00200000009499490261077880859375f) { _1178 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } float _1249 = max(_1163.a.z * 0.100000001490116119384765625f, 2.0f); float _1265 = 0.25f * (((openAt(_1163.scr + float2(_1249, 0.0f)) + openAt(_1163.scr - float2(_1249, 0.0f))) + openAt(_1163.scr + float2(0.0f, _1249))) + openAt(_1163.scr - float2(0.0f, _1249))); if (_1233 > 0.001000000047497451305389404296875f) { col += (eyeball(_1163, _1163.local, _1217, _1163.scr, _1265) * _1233); } if (_1237 > 0.001000000047497451305389404296875f) { float _1279 = vnoise((_1163.local * 18.0f) + float2(_1163.b.ww)); flesh = shade(lerp(float3(0.4199999868869781494140625f, 0.07999999821186065673828125f, 0.100000001490116119384765625f), float3(0.660000026226043701171875f, 0.20000000298023223876953125f, 0.2199999988079071044921875f), float3(_1279, _1279, _1279)), normalize(float3((_1163.local.x * 0.699999988079071044921875f) + ((_1279 - 0.5f) * 0.4000000059604644775390625f), _1163.local.y * 0.699999988079071044921875f, 1.0f)), float3(_1163.scr, _1163.a.z * 0.5f), 0.300000011920928955078125f, 90.0f, 0.89999997615814208984375f); flesh *= lerp(0.3499999940395355224609375f, 1.0f, smoothstep(0.3499999940395355224609375f, 1.0f, _1265)); col += (flesh * _1237); } if (_1241 > 0.001000000047497451305389404296875f) { col += (lidSkin(_1163.local, _1163.scr, _1163.a.z, _1163.b.w, _1203, _1205, _1207, _1229, _1265, _1249, _1163.c.x) * _1241); } _1178 = float4(col, _1244); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; local = stage_input.local; a = stage_input.a; b = stage_input.b; c = stage_input.c; scr = stage_input.scr; frag_main(); SPIRV_Cross_Output stage_output; stage_output._1178 = _1178; return stage_output; }  €‹×âU $mHSLTU€resÿÿÿÿlightÿÿÿÿlightCol ÿÿÿÿamb0ÿÿÿÿsclera@ÿÿÿÿbloodPÿÿÿÿflashDir`ÿÿÿÿflashColpÿÿÿÿu_block€uvs_fullvs_fullfs_backfs_backvs_eyevs_eyefs_eyefs_eye”~#Ô GLSL.std.450’vs_full‹Ž�¾fs_back·º½vs_eye    Pfs_eyeCEGIKMO¾PH#H#H# H#0H#@H#PH#`H#pH #H # H #H #GH#H#H# H#0H#@H#PGG"G!GH#G"G!G"G!G‹ *GŽ G�G· GºG½G *GGG G  G GGGGGGGGC GEGGGGGIGIGKGKGMGO         +++š™¹?+ff¦?, ; ; ;!"+#&Ó=+$ìQB, %$$$ ' . ( 8+9+<+@+H@+I@@,JII+K€?+L,MKL,NLK,OKK+gÀ@+hpA,ihh+j A,kjj+lÛÉ@+žÍÌL?+Ÿš™?+ š™¿,¡žŸ,¢ ž, £¡¢+¤?+ ¥+ ¦+§…ë@+¨Í̈A+©ÍÌA,ª¨©+ « ¯.° ² ¸ ¹¸º,¸»99+¼ÿÿÿÿ,¸½¼¼!á â+äoƒ:+åÀ¿ ç . è ê ð!  , LLK+ÍÌÌ?+8![ +]33³>+^Í̬?+_333?+`ÍÌŒ?+aš™™>+b�Âõ<+c ×£<, dabc+eÍÌL>+fÍÌ ?!¬ +®¦›Ä;+¯€@,°¯¯+±®Ga>+²)\>, ³±²²+´\�Â>+µ¸…>+¶€>, ·´µ¶+¸ÍÌ @+¹0A,º¹¹+»ÍÌL=+¼ff&?+½ ×£>+¾ ×#=, ¿½¾»+ÀÍÌÌ>+Áffæ>+ÂÍÌÌ=+Ãfff?. Å!ïø!  +·Ñ8+R¸?+�Âõ>, LKL+�Âu?+¸…?, LLL+oƒ;+o;, +33ã@+33S@*+PA+ÍÌÌ<+¦›D<+  ×#<, ! +"{®=, #e"»+$À?+%= ×>+&×£ð>, '%&¤+(®G?, )(žž+*Ãõ¨>++ìQ¸>, ,a*++-áz?, .f-Ÿ+/A+0 @+1{.>, 2½1c+3�Âõ=, 4Ã3)5, 6Á¾L+7�Âu=, 8K%7+9¸>+:@A+;ìQ8?+<Ház?+=33s?+>š™Y?+?33“?+@¿+A @+Bà@+C)\�=+DŒB+E ?+F€"D+G`@+Hö˜¾+I+„Ú¾+J+„Z?, KHIJ+LaD+M33³?,NäL S. U. W. Y+á+!ž +¢@?+£…ë>+¤š™>+¥ìQ8>+¦ ×#>+§ÍÌL@+¨Ãõ(?, ©¤¨+ªš™@+«�5?, ¬£33, ­aa+®ö(œ?+¯ÐA+°…ëQ?+± ×£=+²{®>+³A+´ÜB+µ�Âu<+¶X9´<+· B+¸ðA, ¹®®. ». ½ Œ;Œ‹ �;�Ž ‘;‘�!“+”€¿,•””,–I”,—”I,˜•–— š œ . � Ÿ ° ¸;¸· »;»º;�½+Àff@,ÁcL,ÂLc+ðA+Ä B. Æ;Œ;¸;¸;¸ ;� ;‘ ;�;�;�;‘,K”,”K, •O•O  .;¸C;»E;¸G;¸I;¸K;»M;�O+T…«?+U¤p=?+V�µ?,WLLLL+X�A, Y%±Â, Z¨e±+[´B. ^6!"7 ø;'&(ù)ø)Q* Q+ Q, P -*+,Ž .-#  / .>&/= 0&= 1&= 2&O 322� 43%”514P 6555� 706>&7A8:&9=;:A8=&<=>=�?;>A8A&@=BA…C?B D CþD86G"7FøEùPøP QF R F…SRRŽTRHƒUJT…VSU9W!Q�XQM9Y!X�ZQN9[!Z�\QO9]!\Q^V _.WY^Q`V a.[]`QbV c._abþc86f"7eødùmøm ne o e…poo…qpoŽrogƒsri…tos�utk…vqu9w!n…xwl�ynM9z!y…{zl�|nN9}!|…~}l�nO9€!…�€l ‚x ƒ xP„‚ƒ”…„o †{ ‡ {Pˆ†‡ƒ‰oM”Šˆ‰ ‹~ Œ ~P�‹ŒƒŽoN”��Ž �� ‘ �P’�‘ƒ“oO””’“Q•v –.…Š•Q—v ˜.�”—Q™v š.–˜™þš86�"7œø›;8­¤;²±¥;8¬L;¯®°;¹¾½ù³ø³>®œù´ø´öµ·ù¿ø¿=¸À¾ªºÁ»À›ÂÁ÷ÃúÂµÃøÃQÄÀªÅÄ9©ÆÅ<9P¸ÇÆ<‚¸ÈÀÇ>¾Èù¶ø¶= ɱ±Êɦ÷ËúÊËÌøÌùµøËùÍøÍ=Ϭ=Э=Ñ®9ÒGÑ…ÓÐÒ�ÔÏÓ>¬Ô=Õ®‘Ö£ÕŽ×Ö§�Ø×ª>®Ø=Ù­…ÚÙ¤>­ÚùÎøÎù·ø·= Û±€ ÜÛ«>±Üù´øµ=ݬþÝ86 àá7 ßøÞ;çæèAâã9ùéøéAêëã<=ìëOíììOîß߃ïíîAðñã<@=òñQó߃ôòóP õïô öBõ ÷(öäP ø÷÷÷ˆ ùõøA'úæ9>úùAðûã<=üû ý(üKˆþöýAðÿã@=ÿ…þþ�K å…A8æ<>= æþ86 7 7 7 7 7 7 øAâ9ùø9 à Q ” � �K ˆ (LQ �   EAê=O Að!="!”#  �$# �%K ˆ&$% '(&L� (   )E(Aê*=+*O ,++Að-=.-Ž /,.Aê0@=10O 211Q3Ž 423Ž 54Ž 65� 7/6Aê98=:9O ;::Ž <;"Ž =<'� >7=… ?>Aê@@=A@O BAAQCŽ DBC”E  F(EL GF Ž HDGAêI8=JIO KJJŽ LK"”M ) N(ML ON Ž PLO� QHPŽ RQ � S?RþS86 Z[7 U7 V7 W7X7YøTAâ\9ùgøg9 hàWAêi\=jiO kjjAðl\=mlQ nh”oVn�po]ˆqp^ r(qL”sVk t(sLAêu\=vuO wvvAðx\=yxŽ zwyŽ {z_Aê|\@=}|O ~}}QhŽ €~Ž �€rŽ ‚�`� ƒ{‚Q„hŽ …d„Ž †…e� ‡ƒ†Aêˆ\8=‰ˆO Љ‰Ž ‹ŠmŽ Œ‹tŽ �Œf� އ�… �UŽAê�\@=‘�O ’‘‘Q“hŽ ”’“Q •h� –•  —E–”˜V— ™(˜L š™XŽ ›”šAêœ\8=�œO ž��Ž Ÿžm�  k  ¡E ”¢V¡ £(¢L ¤£XŽ ¥Ÿ¤� ¦›¥Ž §¦Y� ¨�§þ¨86 «¬7ªø©;'ÄÅAâ­9ùÆøÆAðÇ­9=ÈÇPÉÈȈʪɎËÊ®ŽÌË�Ḭ́9Î�ÍP ÐÎÎÎ  Ï.³·Ð>ÄÏŽÑ˸�ÒѺ9Ó�Ò…ÔÓHƒÕÔK ÖÕ ×1L»ÖƒØK׎ÙË_9Ú�Ù Û1]¼Ú…ÜØÛ= ÝÄ…ÞÜÀP àÞÞÞ  ß.Ý¿à>Äß= áÄAðâ­9=ãâPäããˆåªäŽæåÁ9çGæ…èÂç�éÃèŽ êáé>Äê= ëÄþë86îï7íøìAâð9=ñ=òùóøóAêôð9=õôOöõõˆ÷íöVøùñòXúù÷Lþú86ý"7üøûAâþ9=ÿ=ùø9îüQ 1ažþ86  7777 7 ø;'TU;'P;'XY;SR;'O;'VW;8QLAâ 9==ùZøZQ[Q\[Q]Q^]Q_Q`_ƒaK b(aL cbQdQe�fcP gdef  hEgQiQji…kjQlQml…nm o k pn…qop r n sk tn…ustP vqru  wEv  xDw  yEx  zDwy”{hy”|hz”}hwP ~{|}QQ€O�~~P‚€€ˆƒ�‚ „BƒQ…~ †0L… ‡1„ƒˆK‡…‰ˆ†QŠQ‹Š Œ.ež‹º�‰L÷Žú��Žø�Q�ƒQ‘ƒ ’�‘ “’ ” ’P•“”…–„H�—¹–Ž˜•—…™`…š`P›™š�œ˜›9��œ¸ž^¤÷Ÿúž ¡ø Ž¢ƒg…£`P¤££�¥¢¤9¦G¥…§�Ã…¨¦e�©§¨P «©©©  ª.!#«>OªùŸø¡¸¬^$÷­ú¬®¯ø®P ±���  °.')±>O°Ž²ƒ/P³``�´²³9µG´P ·µµµ  ¶.,.·>P¶ù­ø¯¸¸^0÷¹ú¸º»øºP ½���  ¼.24½>O¼>R5ù¹ø»P ¿���  ¾.68¿>O¾>R5ù¹ø¹ù­ø­ùŸøŸ= ÀOƒÁ„ŒƒÂÁ9…ÃÂ: ÄÃHÅÄ ÆÅ…ÇŸÆ�ÈKÇŽ ÉÀÈ>OÉ= ÊO Ë1;<„ Ì.K3ËŽ ÍÊÌ>OÍ=ÎR÷ÏúÎÐÑøÐQÒƒ…ÓŒa�ÔÓbˆÕÒÔ ÖÕHQ׃ˆØ×= ÙØH�ÚÖÙ Û1>?ÚƒÜKÛ>QÜùÏøÑƒÝŒb�ÞŒc ß1ÝÞ„ƒàKß>QàùÏøÏùŽøŽAêâ á=ãâO äãã>TäƒåKcQæ~ƒçKæ è+çLK¸é‰K÷êúéëêøëOì~~Qí~ î(í@�ïKîPðïïˆñìðŽòñI…ó`APôóó�õòô9ö�õ…÷öHƒø÷K ùøŽúñB…û`/Püûû�ýúü�þýJ9ÿ�þ…ÿHƒK  1cÁè 1LCùƒK 1L»ƒK…_� …  Að  á=  …   … = TAê =O Ž žAð á=…Á 1LŸè…P   .>T= TAê =O   +LK…! >P #!!!  ".#>T"= $T %1aKå &.K¤%Ž '$&>T'ùêøê= (T= )OP +‰‰‰  *.()+>V*= ,V= -P=.Q…/.‰P 1///  0.,-1>V0Q2O322Ž4\�534…6c\P 756= 8V9 98h7eDa>X9 :1ÃE„ƒ;K:…<;†Ž =wÁŽ >=<� ?h>  @E?9 Aà7Q BA� CB  DECAêE =FEO GFF� HG  IEH= JXAêK @=LKO MLLQNAŽ OMN”P@D Q(PL RQFŽ SORAêT 8=UTO VUUAðW =XWŽ YVX”Z@I [(ZL \[FŽ ]Y\� ^S]Ž _^GŽ `_<� aJ`>Xa= bX”c@K d(cL edL…fe_P gfff� hbg>Xh= iX= jOŽ kj‰=lQƒmKlŽ nkmQoQpoŽ qnpŽ rqM� sir>Xs= tX u1LŸc v.eKuŽ wtv>Xw= xX y1]K  z.aKyŽ {xz>X{= |X…}\ÂP~L}ƒ ~9€ý �.fK€Ž ‚|�>X‚Aêƒ <=„ƒO…„„ƒ†… �‡†N ˆE‡= ‰XŽŠˆ\ދб�Œ ‹9�ýŒ Ž.ÀK�Ž �‰Ž>X�= �Xþ�86 �ž7’7“7”7•7–7—7˜7™7š7›7œø‘;'º»;'¼½AâŸ9= =¡ù¾ø¾ƒ¿K™ À(¿L ÁÀQ– Ã1¶ÀÂQÄ– Å1Ÿ¢ÄƒÆKÅ…ÇÃÆƒÈKDžɘȅʘÇQË’ˆÌË^…ÍŸÌ…ÎÍ̃ÏKÎ Ð(ÏL…ѵœ�Ò£ÑÓÒ…ÔÓЃÕÔÂQÖ’ƒ×ÖÕˆØ×²ÙØ…ÚÙØ ÛÚ…Ü>œ�ݤ܅ÞÛ݃ßKÊ…àÞß…áÐ�âá¥Qã’ƒäãâˆå䦿å…çæå èçƒéK˜…êèé…ë_œ�ìaë…íêì…î]à…ïîH…ðïØˆñð²…ò¶í…óòH…ôóåˆõô¦�öñõQ÷’ˆø÷¯…ùø˜Qú’ˆûú§…üû˜…ýöaƒþüýP ÿùþK  Eÿ9 «“>º= º= º… ©…íŸP   .>º…›ªP Ž  «� “ 9 ý  P Ž«�“9ý� PŽ«�“9ý�PŽ«ƒ“9ý�…¶…š… ]�!  "+!LK= #º…$"fP &$$$  %.#¬&>º%= 'º (1»]š…)Ê(…*)ŸP ,***  +.'­,>º+Q-’�.- /.Q0’…10/ƒ21®Q3’P423Q54Q64 7(6c 857…98¯Ž:4/P;••�<:;9=G<…>=I�?9> @ ? A1°K@QB4 C1L±B…DAC EB4 F1²EƒGKF…HDGƒIK˜…JHI= Kº…L¥JƒMKLŽ NKM>ºN O1caš= PºP Q“L R.³´O S.µÃO9 TZPQRS>¼T= U¼…VÀàƒWKVŽ XUW>¼X= Y¼ƒZK˜…[3Z \1eÙƒ]K\…^[]ƒ_K^Ž `Y_>¼`…a”¶ b(aKPcLbƒd“c9eîdPfLb�g“f9hîgQihQjeƒkij lk m1¤ÀlQne o0¤n…pmoQqh r0¤q…spr t1c±š…uÉtQv’…wv·Qx’…yx¸…zy/�{wz…|•¹P}{|9~G} 1a;~…€Á��f€…‚u�…ƒsf…„ƒÐ�…‚„ †+…LK= ‡¼P ‰†††  ˆ.‡¹‰þˆ86’“øŠ;š™˜;œ›�=�‹ùžøžA¯ ™�=¡ P¢¡LKAŸ£›9>£¢A8¤™�9=¥¤…¦¥¤�§¦¤A8¨™�<=©¨…ª©¤ƒ«¤ªP¬§«A¯­›<>­¬= ®›Q¯®>ޝA°±Ž<=²±³²>±³Q´®>�´ý86¾“øµ;'ÅÆ=¹·=¼ºP ¶¹¼Aâ¿9ùÇøÇQȶAêÉ¿9=ÊÉOËÊÊ…ÌÈËP ÍÌL9 ÎàÍ9 Ï«ÌAðп9=ÑÐPÒÑшÓÌÒŽÔÓ®ŽÕÔ`�ÖÕ°9×fÖŽØÖÀ�ÙØJ9ÚfÙ…Û¤Ú�Ü×Û�ÝÖÁ9ÞfÝ�ßÖÁŽàßÀ�áàJ9âfá…ã¤â�äÞãƒåäÜ�æÖÂ9çfæ�èÖÂŽéèÀ�êéJ9ëfê…ì¤ë�íçìƒîíÜïå…ðïÃñî…òñÃP óðòK  ôEóP õÌL9 öZÏôõÄb>Åö= ÷ÅAêø¿@=ùøO úùùQûÎŽ üúûQýÎŽ þüýŽ ÿþ7� ÷ÿ>Å= ÅPK>½ý86“ø;;=== =  Aâ9ùøA¯=…O Q!Ž"!�# "Q$#Að%99=&%ˆ'$&…('Hƒ)(KQ*#Að+9<=,+ˆ-*,….-Hƒ/K.P0)/LKAŸ19>10A¯2<>2A¯3>3#AŸ4@>4AŸ5>5 AŸ6á>6 =7Q87> 8A°9 <=:9;:>9;Q<7> <Q=7>=Q>7>>Q?7>?Q@7>@ý86P“øA;'\;']^=DC=FE=HG=JI=LK=NMP BDFHJLNAâQ9=R=Sù_ø_Q`BQa`QbBQcbQdBQeB9fîeQgf h1ažgQif j1a_iQkdˆlkT mlHQndˆonU poH�qmp r1>KqƒsKr”tdd utƒvKu…wvaˆxw$ y+xLKQzdˆ{zV |{HQ}dˆ~}® ~H�€| �1ÁK€ƒ‚K�…ƒhy…„ƒsƒ…Ky…†h……‡†s…ˆ‡jƒ‰Kh…Љ‚ ‹.>Kj…ŒŠ‹��„ˆ�Ž�Œ �+ŽLK¸��÷‘ú�’‘ø’>OWýø‘…“a ”(“HP•”L�–e•9—ý–P˜”Lƒ™e˜9šý™�›—šPœL”��eœ9žý��Ÿ›žP L”ƒ¡e 9¢ý¡�£Ÿ¢…¤¶£º¥„ä÷¦ú¥§¦ø§= ¨\9 © Bdte¤Ž ª©„� «¨ª>\«ù¦ø¦º¬ˆä÷­ú¬®­ø®Ž¯dXP°cc�±¯°9²G±P ´²²²  ³.YZ´Qµd…¶µ_ƒ·²¤…¸·À�¹¶¸Qºd…»º_P ¼¹»K  ½E¼…¾a¤P ¿e¾9 À³½¿a[Ã>]À= Á] Â1]K¤ Ã.]KÂŽ ÄÁÃ>]Ä= Å\= Æ]Ž ÇÆˆ� ÈÅÇ>\Èù­ø­ºÉŒä÷ÊúÉËÊøË= Ì\QÍBQÎÍ9 Ï�deacfhj€¤”ÎŽ ÐÏŒ� ÑÌÐ>\ÑùÊøÊ= Ò\PÓÒ�>OÓý8 €-þ©a�áG5ÊËmaskjÔĪBTSR Û Û ' l n'•«®c ,'8,² ê='>gx>' ŸT'vs_maskvs_maskfs_maskfs_mask° struct U { res: vec4, } struct Out { @builtin(position) pos: vec4, @location(0) p: vec2, @location(1) @interpolate(flat) lid: vec4, @location(2) @interpolate(flat) w: f32, } const QUAD: vec2 = vec2(1.45f, 1.3f); @group(0) @binding(0) var u_1: U; fn poly(u: f32, k0_: f32, k1_: f32, k2_: f32, k3_: f32, k4_: f32, k5_: f32, k6_: f32, k7_: f32, k8_: f32) -> f32 { return (k0_ + (u * (k1_ + (u * (k2_ + (u * (k3_ + (u * (k4_ + (u * (k5_ + (u * (k6_ + (u * (k7_ + (u * k8_)))))))))))))))); } fn almondTop(x: f32) -> f32 { let _e12 = poly((x / 94f), -46.336f, 10.99679f, 37.16804f, -22.30361f, 18.15819f, 13.70449f, -19.31947f, -7.547146f, 11.13048f); return _e12; } fn almondBot(x_1: f32) -> f32 { let _e12 = poly((x_1 / 94f), 41.86431f, 4.454845f, -40.59189f, -17.50463f, -4.129818f, 11.91086f, 6.780305f, -6.214452f, -5.257527f); return _e12; } fn lidShape(ax: f32) -> f32 { let u_2 = min((ax / 104f), 1f); let _e14 = poly(u_2, 0.9998435f, 0.0124734f, -1.310542f, 2.066594f, -7.812949f, 17.41765f, -21.95743f, 14.52863f, -3.944061f); return _e14; } @vertex fn vs_mask(@builtin(vertex_index) i: u32, @location(0) a: vec4, @location(2) c: vec4, @location(3) d: vec4) -> Out { var k: array, 6> = array, 6>(vec2(-1f, -1f), vec2(1f, -1f), vec2(1f, 1f), vec2(-1f, -1f), vec2(1f, 1f), vec2(-1f, 1f)); var o: Out; let _e25 = k[i]; let corner = (_e25 * QUAD); let px = (a.xy + (corner * a.z)); let _e38 = u_1.res.x; let _e48 = u_1.res.y; o.pos = vec4((((px.x / _e38) * 2f) - 1f), (1f - ((px.y / _e48) * 2f)), 0f, 1f); o.p = (corner * c.w); o.lid = d; o.w = (c.w / max(a.z, 0.001f)); let _e67 = o; return _e67; } @fragment fn fs_mask(in: Out) -> @location(0) vec4 { var col: vec3; let x_2 = in.p.x; let y = in.p.y; let h = (0.5f * in.w); let inX = min((x_2 + 94f), (92f - x_2)); let _e13 = almondTop(x_2); let _e15 = almondBot(x_2); let inY = min((y - _e13), (_e15 - y)); let almond = smoothstep(-(h), h, min(inX, inY)); if (almond <= 0f) { return vec4(0f); } let _e33 = lidShape(abs((x_2 - in.lid.x))); let upperEdge = (in.lid.y + (in.lid.w * _e33)); let _e39 = lidShape(abs(x_2)); let lowerEdge = (in.lid.z + (10f * _e39)); let upper = smoothstep(-(h), h, (upperEdge - y)); let lower = smoothstep(-(h), h, (y - lowerEdge)); col = mix(vec3(1f, 1f, 1f), vec3(0f, 0.5f, 1f), lower); let _e59 = col; col = mix(_e59, vec3(0f, 0f, 1f), upper); let _e65 = col; return vec4((_e65 * almond), almond); }   ›Ù�Ë5Dvs_maskmain³#version 300 es precision highp float; precision highp int; struct U { vec4 res; }; struct Out { vec4 pos; vec2 p; vec4 lid; float w; }; const vec2 QUAD = vec2(1.45, 1.3); layout(std140) uniform U_block_0Vertex { U _group_0_binding_0_vs; }; layout(location = 0) in vec4 _p2vs_location0; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; smooth out vec2 _vs2fs_location0; flat out vec4 _vs2fs_location1; flat out float _vs2fs_location2; float poly(float u, float k0_, float k1_, float k2_, float k3_, float k4_, float k5_, float k6_, float k7_, float k8_) { return (k0_ + (u * (k1_ + (u * (k2_ + (u * (k3_ + (u * (k4_ + (u * (k5_ + (u * (k6_ + (u * (k7_ + (u * k8_)))))))))))))))); } float almondTop(float x) { float _e12 = poly((x / 94.0), -46.336, 10.99679, 37.16804, -22.30361, 18.15819, 13.70449, -19.31947, -7.547146, 11.13048); return _e12; } float almondBot(float x_1) { float _e12 = poly((x_1 / 94.0), 41.86431, 4.454845, -40.59189, -17.50463, -4.129818, 11.91086, 6.780305, -6.214452, -5.257527); return _e12; } float lidShape(float ax) { float u_2 = min((ax / 104.0), 1.0); float _e14 = poly(u_2, 0.9998435, 0.0124734, -1.310542, 2.066594, -7.812949, 17.41765, -21.95743, 14.52863, -3.944061); return _e14; } void main() { uint i = uint(gl_VertexID); vec4 a = _p2vs_location0; vec4 c = _p2vs_location2; vec4 d = _p2vs_location3; vec2 k[6] = vec2[6](vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0), vec2(1.0, 1.0), vec2(-1.0, 1.0)); Out o = Out(vec4(0.0), vec2(0.0), vec4(0.0), 0.0); vec2 _e25 = k[i]; vec2 corner = (_e25 * QUAD); vec2 px = (a.xy + (corner * a.z)); float _e38 = _group_0_binding_0_vs.res.x; float _e48 = _group_0_binding_0_vs.res.y; o.pos = vec4((((px.x / _e38) * 2.0) - 1.0), (1.0 - ((px.y / _e48) * 2.0)), 0.0, 1.0); o.p = (corner * c.w); o.lid = d; o.w = (c.w / max(a.z, 0.001)); Out _e67 = o; gl_Position = _e67.pos; _vs2fs_location0 = _e67.p; _vs2fs_location1 = _e67.lid; _vs2fs_location2 = _e67.w; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_maskmain�#version 300 es precision highp float; precision highp int; struct U { vec4 res; }; struct Out { vec4 pos; vec2 p; vec4 lid; float w; }; const vec2 QUAD = vec2(1.45, 1.3); smooth in vec2 _vs2fs_location0; flat in vec4 _vs2fs_location1; flat in float _vs2fs_location2; layout(location = 0) out vec4 _fs2p_location0; float poly(float u, float k0_, float k1_, float k2_, float k3_, float k4_, float k5_, float k6_, float k7_, float k8_) { return (k0_ + (u * (k1_ + (u * (k2_ + (u * (k3_ + (u * (k4_ + (u * (k5_ + (u * (k6_ + (u * (k7_ + (u * k8_)))))))))))))))); } float almondTop(float x) { float _e12 = poly((x / 94.0), -46.336, 10.99679, 37.16804, -22.30361, 18.15819, 13.70449, -19.31947, -7.547146, 11.13048); return _e12; } float almondBot(float x_1) { float _e12 = poly((x_1 / 94.0), 41.86431, 4.454845, -40.59189, -17.50463, -4.129818, 11.91086, 6.780305, -6.214452, -5.257527); return _e12; } float lidShape(float ax) { float u_2 = min((ax / 104.0), 1.0); float _e14 = poly(u_2, 0.9998435, 0.0124734, -1.310542, 2.066594, -7.812949, 17.41765, -21.95743, 14.52863, -3.944061); return _e14; } void main() { Out in_ = Out(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2); vec3 col = vec3(0.0); float x_2 = in_.p.x; float y = in_.p.y; float h = (0.5 * in_.w); float inX = min((x_2 + 94.0), (92.0 - x_2)); float _e13 = almondTop(x_2); float _e15 = almondBot(x_2); float inY = min((y - _e13), (_e15 - y)); float almond = smoothstep(-(h), h, min(inX, inY)); if ((almond <= 0.0)) { _fs2p_location0 = vec4(0.0); return; } float _e33 = lidShape(abs((x_2 - in_.lid.x))); float upperEdge = (in_.lid.y + (in_.lid.w * _e33)); float _e39 = lidShape(abs(x_2)); float lowerEdge = (in_.lid.z + (10.0 * _e39)); float upper = smoothstep(-(h), h, (upperEdge - y)); float lower = smoothstep(-(h), h, (y - lowerEdge)); col = mix(vec3(1.0, 1.0, 1.0), vec3(0.0, 0.5, 1.0), lower); vec3 _e59 = col; col = mix(_e59, vec3(0.0, 0.0, 1.0), upper); vec3 _e65 = col; _fs2p_location0 = vec4((_e65 * almond), almond); return; }   ›Ù�Ë5DU_block_0Vertexvs_maskvs_maskfs_maskfs_mask8// language: metal1.0 #include #include using metal::uint; struct U { metal::float4 res; }; struct Out { metal::float4 pos; metal::float2 p; char _pad2[8]; metal::float4 lid; float w; char _pad4[12]; }; struct type_4 { metal::float2 inner[6]; }; constant metal::float2 QUAD = metal::float2(1.45, 1.3); float poly( float u, float k0_, float k1_, float k2_, float k3_, float k4_, float k5_, float k6_, float k7_, float k8_ ) { return k0_ + (u * (k1_ + (u * (k2_ + (u * (k3_ + (u * (k4_ + (u * (k5_ + (u * (k6_ + (u * (k7_ + (u * k8_))))))))))))))); } float almondTop( float x ) { float _e12 = poly(x / 94.0, -46.336, 10.99679, 37.16804, -22.30361, 18.15819, 13.70449, -19.31947, -7.547146, 11.13048); return _e12; } float almondBot( float x_1 ) { float _e12 = poly(x_1 / 94.0, 41.86431, 4.454845, -40.59189, -17.50463, -4.129818, 11.91086, 6.780305, -6.214452, -5.257527); return _e12; } float lidShape( float ax ) { float u_2 = metal::min(ax / 104.0, 1.0); float _e14 = poly(u_2, 0.9998435, 0.0124734, -1.310542, 2.066594, -7.812949, 17.41765, -21.95743, 14.52863, -3.944061); return _e14; } struct vs_maskInput { metal::float4 a [[attribute(0)]]; metal::float4 c [[attribute(2)]]; metal::float4 d [[attribute(3)]]; }; struct vs_maskOutput { metal::float4 pos [[position]]; metal::float2 p [[user(loc0), center_perspective]]; metal::float4 lid [[user(loc1), flat]]; float w [[user(loc2), flat]]; }; vertex vs_maskOutput vs_mask( vs_maskInput varyings [[stage_in]] , uint i [[vertex_id]] , constant U& u_1 [[buffer(0)]] ) { const auto a = varyings.a; const auto c = varyings.c; const auto d = varyings.d; type_4 k = type_4 {{metal::float2(-1.0, -1.0), metal::float2(1.0, -1.0), metal::float2(1.0, 1.0), metal::float2(-1.0, -1.0), metal::float2(1.0, 1.0), metal::float2(-1.0, 1.0)}}; Out o = {}; metal::float2 _e25 = k.inner[i]; metal::float2 corner = _e25 * QUAD; metal::float2 px = a.xy + (corner * a.z); float _e38 = u_1.res.x; float _e48 = u_1.res.y; o.pos = metal::float4(((px.x / _e38) * 2.0) - 1.0, 1.0 - ((px.y / _e48) * 2.0), 0.0, 1.0); o.p = corner * c.w; o.lid = d; o.w = c.w / metal::max(a.z, 0.001); Out _e67 = o; const auto _tmp = _e67; return vs_maskOutput { _tmp.pos, _tmp.p, _tmp.lid, _tmp.w }; } struct fs_maskInput { metal::float2 p [[user(loc0), center_perspective]]; metal::float4 lid [[user(loc1), flat]]; float w [[user(loc2), flat]]; }; struct fs_maskOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_maskOutput fs_mask( fs_maskInput varyings_1 [[stage_in]] , metal::float4 pos [[position]] ) { const Out in = { pos, varyings_1.p, {}, varyings_1.lid, varyings_1.w }; metal::float3 col = {}; float x_2 = in.p.x; float y = in.p.y; float h = 0.5 * in.w; float inX = metal::min(x_2 + 94.0, 92.0 - x_2); float _e13 = almondTop(x_2); float _e15 = almondBot(x_2); float inY = metal::min(y - _e13, _e15 - y); float almond = metal::smoothstep(-(h), h, metal::min(inX, inY)); if (almond <= 0.0) { return fs_maskOutput { metal::float4(0.0) }; } float _e33 = lidShape(metal::abs(x_2 - in.lid.x)); float upperEdge = in.lid.y + (in.lid.w * _e33); float _e39 = lidShape(metal::abs(x_2)); float lowerEdge = in.lid.z + (10.0 * _e39); float upper = metal::smoothstep(-(h), h, upperEdge - y); float lower = metal::smoothstep(-(h), h, y - lowerEdge); col = metal::mix(metal::float3(1.0, 1.0, 1.0), metal::float3(0.0, 0.5, 1.0), lower); metal::float3 _e59 = col; col = metal::mix(_e59, metal::float3(0.0, 0.0, 1.0), upper); metal::float3 _e65 = col; return fs_maskOutput { metal::float4(_e65 * almond, almond) }; }   ›Ù�Ë5Dvs_maskmainüstruct U { float4 res; }; struct Out { float4 pos; float2 p; float4 lid; float w; }; static const float2 _126[6] = { float2(-1.0f, -1.0f), float2(1.0f, -1.0f), float2(1.0f, 1.0f), float2(-1.0f, -1.0f), float2(1.0f, 1.0f), float2(-1.0f, 1.0f) }; static const Out _134 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f }; cbuffer u : register(b0) { U u_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float4 a; static float4 c; static float4 d; static float2 p; static float4 lid; static float w; struct SPIRV_Cross_Input { float4 a : TEXCOORD0; float4 c : TEXCOORD2; float4 d : TEXCOORD3; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 p : TEXCOORD0; nointerpolation float4 lid : TEXCOORD1; nointerpolation float w : TEXCOORD2; float4 gl_Position : SV_Position; }; void vert_main() { Out o = _134; float2 _139 = _126[uint(gl_VertexIndex)] * float2(1.4500000476837158203125f, 1.2999999523162841796875f); float2 _143 = a.xy + (_139 * a.z); o.pos = float4(((_143.x / u_1_m0.res.x) * 2.0f) - 1.0f, 1.0f - ((_143.y / u_1_m0.res.y) * 2.0f), 0.0f, 1.0f); o.p = _139 * c.w; o.lid = d; o.w = c.w / max(a.z, 0.001000000047497451305389404296875f); gl_Position = o.pos; p = o.p; lid = o.lid; w = o.w; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); a = stage_input.a; c = stage_input.c; d = stage_input.d; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.p = p; stage_output.lid = lid; stage_output.w = w; return stage_output; } fs_maskmain� struct U { float4 res; }; struct Out { float4 pos; float2 p; float4 lid; float w; }; static float4 gl_FragCoord; static float2 p; static float4 lid; static float w; static float4 _108; struct SPIRV_Cross_Input { float2 p : TEXCOORD0; nointerpolation float4 lid : TEXCOORD1; nointerpolation float w : TEXCOORD2; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _108 : SV_Target0; }; float poly(float u, float k0, float k1, float k2, float k3, float k4, float k5, float k6, float k7, float k8) { return k0 + (u * (k1 + (u * (k2 + (u * (k3 + (u * (k4 + (u * (k5 + (u * (k6 + (u * (k7 + (u * k8))))))))))))))); } float almondTop(float x) { return poly(x / 94.0f, -46.33599853515625f, 10.9967899322509765625f, 37.168041229248046875f, -22.3036098480224609375f, 18.1581897735595703125f, 13.70448970794677734375f, -19.319469451904296875f, -7.547145843505859375f, 11.1304798126220703125f); } float almondBot(float x) { return poly(x / 94.0f, 41.86431121826171875f, 4.454844951629638671875f, -40.591888427734375f, -17.5046291351318359375f, -4.129817962646484375f, 11.9108600616455078125f, 6.78030490875244140625f, -6.21445178985595703125f, -5.257526874542236328125f); } float lidShape(float ax) { return poly(min(ax / 104.0f, 1.0f), 0.99984347820281982421875f, 0.012473399750888347625732421875f, -1.31054198741912841796875f, 2.0665938854217529296875f, -7.81294918060302734375f, 17.4176502227783203125f, -21.9574298858642578125f, 14.52863025665283203125f, -3.9440610408782958984375f); } void frag_main() { float3 col = float3(0.0f, 0.0f, 0.0f); Out _96 = { gl_FragCoord, p, lid, w }; float _129 = 0.5f * _96.w; float _140 = smoothstep(-_129, _129, min(min(_96.p.x + 94.0f, 92.0f - _96.p.x), min(_96.p.y - almondTop(_96.p.x), almondBot(_96.p.x) - _96.p.y))); if (_140 <= 0.0f) { _108 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } float _164 = smoothstep(-_129, _129, (_96.lid.y + (_96.lid.w * lidShape(abs(_96.p.x - _96.lid.x)))) - _96.p.y); float _167 = smoothstep(-_129, _129, _96.p.y - (_96.lid.z + (10.0f * lidShape(abs(_96.p.x))))); col = lerp(float3(1.0f, 1.0f, 1.0f), float3(0.0f, 0.5f, 1.0f), float3(_167, _167, _167)); col = lerp(col, float3(0.0f, 0.0f, 1.0f), float3(_164, _164, _164)); _108 = float4(col * _140, _140); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; p = stage_input.p; lid = stage_input.lid; w = stage_input.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._108 = _108; return stage_output; }   ›Ù�Ë5DHSLTUresÿÿÿÿu_blockuvs_maskvs_maskfs_maskfs_maskü# GLSL.std.450 tvs_maskcfikmoqr Ãfs_mask¸º½¿ÂÃH#H#H#H# H#0G G"G!GH#Gc *GfGiGkGm GoGqGqGrGrG¸ GºG½G½G¿G¿G  +    + š™¹?+ ff¦?,  ;! !3+4¼B+5X9Â+6Úò/A+7¬B+8Ëm²Á+9ùC‘A+:—E[A+;FŽšÁ+<8‚ñÀ+=r2A+Du'B+EŽŽ@+F^"Â+G{ ŒÁ+Hx'„À+Iâ’>A+JBøØ@+KÊÜÆÀ+L©=¨À+SÐB+T€?+U¾õ?+V;]L<+W׿§¿+XC@+Y®úÀ+ZYW‹A+[Ѩ¯Á+\EuhA+]k|À d;dc g;gf;gi;gk n;nm p;po;nq s;sr!u v+w+y€¿,zyy,{Ty,|TT,}yT, ~z{|z|}+@+€+�oƒ: ƒ ….† ˆ � ’ “+š+¥ §+¬;g¸ »;»º;g½ À;À¿;nÂ+Ä?+ŸB,Æ€€€€+Ç A, ÈTTT, É€ÄT, Ê€€T Ì . Íà67777777777øùø… �! …"!�#"…$#�%$…&%�'&…('�)(…*)�+*…,+�-,….-�/.þ/862371ø0ù>ø>ˆ?149@?56789:;<=þ@86C37BøAùMøMˆNB49ONDEFGHIJKLþO86R37QøPù^ø^ˆ_QS `%_T9a`UVWXYZ[\]þa86tuøb;ƒ‚~;…„†=ec=hf=ji=lkAvxwù‡ø‡Aˆ‰‚e=Љ…‹ŠOŒhhQ�hŽŽ‹���ŒŽQ‘�A“”xww=•”ˆ–‘•…—–ƒ˜—TQ™�A“›xwš=œ›ˆ�™œ…ž�ƒŸTžP ˜Ÿ€TA�¡„w>¡ Q¢jŽ£‹¢Aˆ¤„š>¤£A�¦„¥>¦lQ¨jQ©h ª(©�ˆ«¨ªA§­„¬>­«=®„Q¯®>m¯As°mš=±°²±>°²Q³®>o³Q´®>q´Qµ®>rµý86Ãuø¶;ÌËÍ=¹¸=¼º=¾½=Á¿P·¹¼¾ÁùÎøÎQÏ·QÐÏQÑ·QÒÑQÓ·…ÔÄÓ�ÕÐ4ƒÖÅÐ ×%ÕÖ9Ø2ЃÙÒØ9ÚCЃÛÚÒ Ü%ÙÛÝÔ Þ%×Ü ß1ÝÔÞ¼àá߀÷âúáãâøã>ÂÆýøâQä·QåäQæ·QçæQè·QéèƒêÐé ëê9ìRë…íçì�îåíQï·Qðï ñÐ9òRñ…óÇò�ôðóõÔƒöîÒ ÷1õÔöøÔƒùÒô ú1øÔùP üúúú  û.ÈÉü>Ëû= ýËP ÿ÷÷÷  þ.ýÊÿ>Ëþ= ËŽ ßPß>Âý8  ›Ù�Ë5D‘’ËcrowdjÔ� statemathfloorrngnextrangesqrtmaxtableinsertsortposxyscaleVectorxyplace 6I  P€)'+ðA€¯y7ÎA 6ïÆãAP€   )'+*ðA€¯y7ÎA f9A " Ó#!55)¦ “# * I  € I    € D  €5   8   Ó   ", #!   &  # # J4 8Ѐ9 äÿ @Ѐ @  5    L `8Z`#4## <8H & 3##! & 3##! L#!##™""#%!%%˜"$%)#$'`(!¤#&'(!%&)$%#&""#'##!%&'#&$$ %&:æÿ6J6!" xÐ�  ¤J4  8Ѐ9¸ÿ) 9¦ÿ: Ÿÿ ! ,A € € €š™™™™™ @š™™™™™é?  8Ѐ @ЀÍÌÌÌÌÌì?ffffffÖ?š™™™™™¹¿  žØ‰�؉ý?\�Âõ(\ï?xÐ�= ×£p=ê?&úù ïçý'A5@“@Ó@F&@F4‘’ËrenderjÔðM«sizescaleokmasklitfinalpMaskpBackpEyepPostbgMaskbgLitbgPostlitUbopostUboinstinstCaplitDatapostDatainstDatasamplerlayerKeyVectorxybuffercreate ImageSamplerclampbilinearnewxmathfloormaxywidthheight gpuCanvasshaderatmosprint&[render] missing shader lit/atmos/mask GPUPipelinevertexfragment vertexLayout colorTargetsmodule entryPointvs_maskfs_maskstridestepModeinstance attributesformat float32x4slotoffsetblendGPUBindGroupLayout groupIndexbindGroupLayoutsvs_fullfs_backvs_eyefs_eyevs_mainfs_main GPUBufferusageuniform GPUSamplerminlinearmag GPUBindGrouplayoutubosgetBindGroupLayouttexturessamplersview colorViewstring)[render] surfaces %dx%d px for %dx%d @%gxresizenumberdrawvisitsaveMat2DwithTranslationpos transform withScaleartrestore drawFrontColortoFloatwritef32 writeColorlayer propertyKeylen BALL_RADIUSkindlookXlookYpupilseedopenglowirisupperXupperYlowerYarcwritetimelight lightHeight lightRadius lightColor lightStrength ambientColorambientsclera bloodshotblood lightningDir normalizedz lightninglightningColorcolorloadOpclearstoreOpstore clearColorbeginRenderPass setPipeline setBindGroupsetVertexBufferfinish intensitygrainvignettewarpnightflashclickpulseAge awarenessshake nightColorimagesrcOver drawImageframesrcColoronedstColorone-minus-src-alphacolorOpaddsrcAlphadstAlphaalphaOp%6K6 p°�  |à�€)  |à�PÞ  |à�@¶ "B##$ò%ð?     ÿÿÿÿ     ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp°�|à�Bfg‰¤™#I  @€D @€ ˜ # I  @€D @€6 ÷ Ü  6  ÷  Ü  6  ÷  Ü  …ß·         M M M € 0A   \`�6 6!   š6#   É56)56/62657J(7 Ì567�*�* ö67 á  Ä8 :\�ƒ6<   \`�6>6@  š6B  É5Ì5 7>=56C�*�*7á˜D \`�6>6F  š6H  É56)56/6K627J(7Ì5 7>=567�*�* ö67á¤L \`�66N  š6P  É5Ì56C�*�*7áúQ S\ …6W S\ …6YZû[ ]\À…6a c\ †6f Sgd56i±h7e’j c\ †6m d56i±h7e56o°p`n7k56sòr7�lt c\ †6mSgd56i±h7e56u°p`n7k56vòr7�l:w 0A y¨€‡z™˜ { !@€"@€#$% &'()0A*+\`�,-./012ÿÿÿÿ 3ÿÿÿÿ"4P@567$%&'(ÿÿÿÿ89:;*+,-.-@@@*+,0.1@H@*+,3.4<*6=\�ƒ>ÿÿÿÿ;-?=@ÿÿÿÿ?AÿÿÿÿA*BÿÿÿÿECÿÿÿÿGð?0@*+,I.J DÿÿÿÿMEÿÿÿÿO F\ …`@GHTUVT@XUVI\À…JKL^_`_M\ †NOdeP,-hÿÿÿÿ QRdeklS,0nÿÿÿÿT@,qrÿÿÿÿ ,Inÿÿÿÿ,0rÿÿÿÿ U¨€‡V|Wýý ôûýý óüþüü} `0O€´X@YÞZß?L8E €  ™  ˜ Á € ¤  ¤  Á € e  ÷ 3 *  e  Ü3 *  Áe   ´Ž:Çÿ[\]€^#_` €@a$%Ybâcúã % €ã;  š:„?š:ã; & @<= ÓABª>ã;Aš:ã;"=$+ª> ª>š:'Cã;)ÿÿã; & DEÛ1#!#F#!$š:!„?    G!�#I I !�G#J"KJÛ1#!-F#G##‡5- )  L!"Iú @€MK## L �$5N#!$O#G##P5NG##!QÉRK## %� �#G##S¦*#J L �6š:)O¬T!I I !�#! ¬U ¬U  V¬U v3v3v3#ûWX' #@€š™™™™™á?3à?333333Ã?¸…ëQ¸¾?ÍÌÌÌÌÌä?ÍÌÌÌÌÌ@{®Gáz”?5 L �@  ` �$%t@€+,6ð?� �7)\�Âõ(Ì?12333333Ó?ÍÌÌÌÌÌì?ìQ¸…ëÑ?š™™™™™¹?333333ã?0áz®GáÚ?š™™™™™ù?-š™™™™™©?p—@.8š™™™™™É?)\�Âõ(¼? ×£p= Ç?¸…ëQ¸®?ÍÌÌÌÌÌü?@(!�* !�ÍÌÌÌÌÌÜ?×£p= ×ã?9:;ffffffæ?Ð?š™™™™™é?<ffffffî? @—=˜ -¢) ! I 0€#) ) ! I  0€#!)  )  ! I  0€#)  )  ! I  0€ # !J6 8Ѐ ú~j¼t“ˆ?7@*0€ü©ñÒMb€?€B@ÍÌÌÌÌÌ@=@ÍÌÌÌÌÌô?€D@ffffffæ?8Ѐ�>þA @5@Fï@@@F@FF@ FFFFF† @ O  ?@@=> 3 “)jm‘þÛ&ËwatchersjÔƒf¢xsizeyisMideyesdrawListrngseedplaceeyeCountsizeMinsizeMaxmathsqrtembersfloorposscalenext slitShare paleShareDataEyeneweyeinstancenowtirelessartkindlookXlookYpupilopenirisglowupperXupperYlowerYarcrangeupperLidlowerLiddraw getNumberUpper lid follownodeLower lid followtableinserthugeprintstringformat-[watchers] %d eyes placed (asked %d) in %dx%dpopulatecontext viewModel awareness awarenessOutinitdirtyresizegfxupdate scareTimeflashonScareskystrikeAttdapulsesVectorxyzboltDironStrikemaxexp strikeLevelmin smoothstepapproachwidthheightworldTransformtxtyreadLidsexitedlastSeen idleSecondsmovedspeed stillTimestartlestare wasPresent wakeBoostvaluenightMixlamppointerlerplampOn lightning nextStrikeboltrevealshakedtpresentscareclickclickAgelagdiag lampRadius clickTimelength lightRadiussteplooktremor blinkOpenadvancesinframetimelight lightStrength lightColor lightHeightambient ambientColorsclera bloodshotbloodink intensitygrainvignettewarpnightpulseAge nightColor lightningDirlightningColorColorrgbposition pointerMove pointerDown pointerExitlatestrikexyrequirecrowdmindrender8 # 2  .™ ™) #™ ™) ˜ ˜)  ˜ ˜)à?333333Ã?333333ë?š™™™™™É?opÔ5x5™˜ “»'“ ™˜ Ê F »™˜#* I 8ЀF )#ÉI  HЀFFFL®   ¤   Ó“   Ó“  (ç  çº!   p°Áü  ï“  ¤ ¤š!O "´#65e$  ¤¤ ]% &6“d» &6“78,O "€-x6<e$&é=¿&(é=G(+é=v+)é=¬)>.?p9@.?4:ü´;J4 C„J4 C„:Qÿ 9 EÑ€3x  L ´; ]%O" ¤   ¤  ¤!  :äÿ´;  ]%´;  -ü  ´#(Åÿ G`D J$�„K x4     ™  ˜L@Y@     ,A 8Ѐè?HЀffffffÖ?ð?p°Á@ !à?"#$%&SÀ'€Q@(,À$ÿÿÿÿÿÿÿÿÿÿÿÿ%ÿÿÿÿ&'(')*+'ÿÿÿÿ,ÿÿÿÿ-ÿÿÿÿ.'/01234)333333ã?®Gáz®ç?*+, $&(+)9:;-./012„3Ñ€4`D56$�„7f8÷ ×/üòÿg®+éÎ9:;-<·=¸ W® .7>9?@Á?ÂW>ÊAË šÂ§2BC;ÏDÐ jšš†56 &   €6 &  •6 &  • &  €7ß Ó ß6 & • & €J4 tÀ� !€ð� & "#$ & %ü&'EFGHš™™™™™©?Iÿÿÿÿ)š™™™™™É?š™™™™™Ù? ×£p= ·?ð?ÿÿÿÿ  {®GázÄ?¸…ëQ¸®?ÿÿÿÿÿÿÿÿìQ¸…ëÑ?R¸…ëQØ?š™™™™™á?333333ë?Jà?ÿÿÿÿÿÿÿÿffffffæ?333333Ó?12tÀ�KL€ð�š™™™™™é¿š™™™™™é?ÍÌÌÌÌÌì¿ffffffÖ?M×NýØ<ßL3• • …!   €J   @€ • …!  €) •"…"3) I  $@€ # J   @€:Ìÿ JGHI O@€ÍÌÌÌÌÌÜ?"@P$@€åQüæ "" $ J €D  €##G# R€O €@ñSò  "3 # I  €G#!ð? P€öT÷G´e÷*eÜ*p4 RX" ¹ " ´ ä R¹ "Ô <   vJ  @ð€ D Hð€ G #(òÿ # * ! üÿ ( # * ! Û,@UV*+WXY%&'ð?" R@ð€OHð€D@4@(ýZþšK €š!šWW j2 š"f ã $ Ì   Ì ã  F F !F ã F  # I  8€# x H  Ì D @€F  F  Û Û    Û¸s¸s)J €s"s2  F # !  F # ! #  ! !22)"2  2J  € D @€2ÎÎ2Ì  ! " š Â#" G §$ ûÿ# I  8€ # §$  Ÿ%     Ÿ%  & e'çÿ# I  8€ G Dü *¤€‚ &  5+    , 5+É- %š Ø.    - Úÿ É-K   € # !  š  &/ š0,1 #  !  Ø. É-   š' 2Ø. š †3"         4    5 "  G   c6    7     8 G #   ¬96 B š š ç: "; e' e' 2 2 F  F  Û Û ¦< /= /= š EC"  ‡> w? w? DIú  F�‚  ì@ 4 É- c6 c6  &  & 5+ 5+ mG A xH  L eüI †J “KML OMš!ÿÿ™NJ €D @€ÿÿ˜OJ €D @€¿P¿PÌGQGQÌvRvRûS̬T¬T¬TÌeUÒV´W¬TûS¿PGQ¬TvR : šÿ  Xš™™™™™©? R€>[\]^_`aÍÌÌÌÌÌü¿P8€O@€ø?b333333ó?c333333Ó?dffffffÖ?;{®Gáz¤?š™™™™™¹?à?¸…ëQ¸®?<eð?š™™™™™ù?333333@BCfghKi¤€‚j333333ã?kl)Effffffö?@Fmš™™™™™ñ?nš™™™™™é?ffffff@opqrstuvw:;' <=>?@-6&+Axy�‚z{|} "~!,Œñ èš) I  0€ # ) ' I  0€#!   )  I  0€ )  I  0€ # #"5 #  §# !# ½76 , j  - ï ê ï E o o m m   0¼à‚ 2Äà‚ Z ((  0¼à‚ á# 2Äà‚ÿÿÿ3  Ÿ4  ^ ò ò  ©5Û6#!7F8#!# J  :ä0€  © — — « « r;Û6#! <F8#! #  r K K ©  ©  ! =§#! #  ! "  F8#! #  " Ÿ4 á# § § /$ /$ E>"   �% 2& 2& á# C' ?)  É( ü@ e) 2Äà‚ È × ÿ  C* ¬+ ¬+Aš™™™™™©?333333@ €0€333333û?ÍÌÌÌÌÌ@¸…ëQ¸¾?Ãõ(\�Âí?ÍÌÌÌÌÌô?333333@jø?C�@‚ƒ„…†z‡ˆ‰Š‹Œ�Ž�$�‘s’;“k”•o !"#$%&'()*+g–i¼à‚—Äà‚ÍÌÌÌÌÌÜ?fà?bš™™™™™Ù?aRä0€Ð?333333Ó?333333ã?xmMö,ÿâ x&Ûš" j ãe"Iú  p€!ã  ešj ˜\à?[^hKy p€g¢™£’Û/šE§2'J  $€€2 ™˜sxCÐ?; R$€€®š¯j[¶›·£5 @ü8ÊF» ç  º É wf ¦É 0 T@�ÿذï|m–o©rK !©"#$ T@�«% T@�°—& T@�É­­ò' T@�^á(®)Î* ï+7, “-l“-K6.. 1Àð‚25x354W5š6€K677 1Àð‚e89:j;¸<s=ã>Ì?F@2AFBÛC9ÂD€K677 1Àð‚/E9EF§GŸH€K677 1Àð‚ I5J “-!šKØL9†M5ßN P<ñ‚QüRScT¬UVV.W.WÆXÆXÒYÒY´Z´Z’[’[e\e\ß]ß]^œ@ ffffffÖ? š™™™™™õ? {®Gáz´?ìQ¸…ë±?u]rà?k�–—T@�ƒz†š™™™™™¹?‡è?Š�Ž$š™™™™™é?�333333Ó?�Œ‹‰‘9<@KžÀð‚>€v@h€„.Á\[cd^_`;abBsxCfgjElFJL<ñ‚ÍÌÌÌÌÌì¿Mmno=?A,™š›º» @A @ @ @@FF@@F. @ Æ @ @ F@@@@ @ FFFFFFFF  Ò@ FF ´@  ’@  e@  ß@ FFFF Ÿ@ ¡¢=?A    , ™š› [Q   j, ü�@÷ˆ"zÇØ®p ~m1�ÔÝ<®àˆ¢8ÑFUä#Å;# '1ž»Æ0é–÷‡x7.>³ ŸØÉÖïWkêöã\‡ÌÏ€¿– Open to axis‡Ì΀¿– Unit to axis³­Eye¯­lookX¯­lookY¯­open¯­pupilµ¶Defaultºªºªº¿€?ªº¿?ª³­Scene¯­eyeCount¯­sizeMin¯­sizeMax¯­seed¯­ intensity¯­grain¯­glow¯­vignette¯­warp¸­ink¸­blood¸­sclera¸­night¯­lag¯­ idleSecondsö­scare¯­ awareness¯­ slitShare¯­embers¯­ paleShare¯­ bloodshot¯­ lightRadius¯­ lightHeight¯­ambient¸­light¯­ lightningö­strikeµ¶Defaultº¿ÈBªº¿33³>ªº¿@ªº¿à@ªº¿ Aªº¿33³>ªº¿?ªº¿ÍÌL?ªº¿š™™>ªª«ÿª ª«°ÿª ª«­­Éÿª ª«^ÿª º¿33³>ª º¿pAªõªº¿33³>ªº¿ ×£=ªº¿€?ªº¿)\�=ªº¿@?ªº¿¾Cªº¿Cªº¿ÍÌÌ=ªª«°Øÿÿªº¿?ªõªÄìÇ D4DîMain¤åæçèéêëìñò Main StyleVoid%ÿInk™ D4DîField¤åæçèéêëìñò��ßà Field StyleýÐWatchersíìeyeãó`BeyeCount¿ÌÊóãó33³>sizeMin¿ÌÊóãóÍ̬?sizeMax¿ÌÊóãóà@seed¿ÌÊóãó ×£= slitShare¿ÌÊóãó)\�= paleShare¿ÌÊóãó€?embers¿ÌÊóãó33³>lag¿Ì ÊóãópA idleSeconds¿ÌÊóêscare¿ÌÊæãó? lightning¿ÌÊóêstrike¿ÌÊæòİØÿÿlight¿ÌÊÄãó¾C lightRadius¿ÌÊóãóC lightHeight¿ÌÊóãóÍÌÌ=ambient¿ÌÊóãó@? bloodshot¿ÌÊóãó€? intensity¿ÌÊóãó33³>grain¿ÌÊóãó?glow¿ÌÊóãóÍÌL?vignette¿ÌÊóãóš™™>warp¿ÌÊóòÄÿink¿Ì ÊÄòİÿblood¿Ì ÊÄòÄ­­Éÿsclera¿Ì ÊÄòÄ^ÿnight¿Ì ÊÄ�57Main SM9ŠLayer 1>@?ÄìÇHCðBî ÂÀMDEye¤åæçèéêëìñò Eye Style ÈBpBEyeLids*\&Clip to almond Â Upper lidUpper lid followUpper lid skin SkinÜÂðÂÜBðÂÐB#RÛI@ShB`ÁLid arcÐÂCode: upper lid%ÿÿUpperó€?Á”B Lower lidLower lid followLower lid skin SkinÜÂÈBÐÂ#ShB AÐBÜBÈBCode: lower lid%ÿ€ÿLoweró€?ÁAperture Almond¼ÂÀ@#R�Âu=S`BÁ<¸BÀÀ#RÛI@SPBÀ@(BWhite%ÿÿÿÿWhite#ó€?Á Almond mask Almond&¼ÂÀ@'#R�Âu=S`BÁ<Â'¸BÀÀ'#RÛI@SPBÀ@(B'”­®Look¿ÌÊ«¿Ìʬ”­®Lids¿ÌÊ«”¿Ìʬ”7Look X35 F ÀDF @DC<7Look Y35F ÁDF€ADC<35FÀÀDF @DC<7Blink3 5F`ÁDF€ÀDC(F°ADC<35F˜ÂDDC<35FŒBDDC<7Pupil35FìQx?DF€?DC<57Eye SM9ŠLayer 1>@?