#version 410 core // hs_5_0 // Checksum: 0dbb0945-d3166388-277c311b-a5aa7537 // Name: _12_of_18hadertrees\solid\specular.fxo layout(vertices = 3) out; in idx_Varying0 { vec4 v; } v0[]; in idx_Varying1 { vec4 v; } v1[]; out vec4 vControlPoint[][2]; vec4 patchConstantTemp[4]; patch out vec4 vPatchConstant0; patch out vec4 vPatchConstant1; patch out vec4 vPatchConstant2; patch out vec4 vPatchConstant3; void VertexEpilog() { } // Uniform buffer declarations (dcl_constant_buffer) layout (std140) uniform cb_hs12 { vec4 cb_hsl12[40]; } idx_uniforms12_hs; layout (std140) uniform cb_hs0 { vec4 cb_hsl0[49]; } idx_uniforms0_hs; void Initialise() { } void HSControlPointPhase() { vControlPoint[gl_InvocationID][0] = v0[gl_InvocationID].v; vControlPoint[gl_InvocationID][1] = v1[gl_InvocationID].v; } void HSForkPhase_0(const uint vForkInstanceID) { // gl_TessLevelOuter[0] // gl_TessLevelOuter[1] // gl_TessLevelOuter[2] // gl_TessLevelInner[0] vec4 r0, r1, r2, r3; r0.xyz = v0[0].v.xyz; r0.w = uintBitsToFloat(uint(0x3f800000)); r1.x = dot(idx_uniforms0_hs.cb_hsl0[46], r0); r1.y = dot(idx_uniforms0_hs.cb_hsl0[47], r0); r0.x = dot(idx_uniforms0_hs.cb_hsl0[48], r0); r2.xyz = v0[1].v.xyz; r2.w = uintBitsToFloat(uint(0x3f800000)); r0.y = dot(idx_uniforms0_hs.cb_hsl0[46], r2); r0.z = dot(idx_uniforms0_hs.cb_hsl0[47], r2); r0.w = dot(idx_uniforms0_hs.cb_hsl0[48], r2); r2.xyz = v0[2].v.xyz; r2.w = uintBitsToFloat(uint(0x3f800000)); r1.z = dot(idx_uniforms0_hs.cb_hsl0[46], r2); r1.w = dot(idx_uniforms0_hs.cb_hsl0[47], r2); r2.x = dot(idx_uniforms0_hs.cb_hsl0[48], r2); r0.xw = r0.xw * idx_uniforms12_hs.cb_hsl12[39].zz; r2.x = r2.x * idx_uniforms12_hs.cb_hsl12[39].z; r2.y = intBitsToFloat(0x0 - int(r1.x < -idx_uniforms12_hs.cb_hsl12[39].x)); r2.zw = intBitsToFloat(ivec2(0x0) - ivec2(lessThan(r0.yz, -idx_uniforms12_hs.cb_hsl12[39].xx))); r2.yz = uintBitsToFloat(floatBitsToUint(r2.yz) & uvec2(0x00000001, 0x00000001)); r2.y = intBitsToFloat(floatBitsToInt(r2.z) + floatBitsToInt(r2.y)); r2.z = intBitsToFloat(0x0 - int(r1.z < -idx_uniforms12_hs.cb_hsl12[39].x)); r2.z = uintBitsToFloat(floatBitsToUint(r2.z) & uint(0x00000001)); r2.y = intBitsToFloat(floatBitsToInt(r2.z) + floatBitsToInt(r2.y)); r2.z = intBitsToFloat(0x0 - int(r1.y < -idx_uniforms12_hs.cb_hsl12[39].x)); r2.zw = uintBitsToFloat(floatBitsToUint(r2.zw) & uvec2(0x00000001, 0x00000001)); r2.z = intBitsToFloat(floatBitsToInt(r2.w) + floatBitsToInt(r2.z)); r2.w = intBitsToFloat(0x0 - int(r1.w < -idx_uniforms12_hs.cb_hsl12[39].x)); r2.w = uintBitsToFloat(floatBitsToUint(r2.w) & uint(0x00000001)); r2.z = intBitsToFloat(floatBitsToInt(r2.w) + floatBitsToInt(r2.z)); r2.w = intBitsToFloat(0x0 - int(r0.x < float(0.00000000f))); r2.w = uintBitsToFloat(floatBitsToUint(r2.w) & uint(0x00000001)); r3.x = intBitsToFloat(0x0 - int(r0.w < float(0.00000000f))); r3.x = uintBitsToFloat(floatBitsToUint(r3.x) & uint(0x00000001)); r2.w = intBitsToFloat(floatBitsToInt(r2.w) + floatBitsToInt(r3.x)); r3.x = intBitsToFloat(0x0 - int(r2.x < float(0.00000000f))); r3.x = uintBitsToFloat(floatBitsToUint(r3.x) & uint(0x00000001)); r2.w = intBitsToFloat(floatBitsToInt(r2.w) + floatBitsToInt(r3.x)); r1.x = intBitsToFloat(0x0 - int(idx_uniforms12_hs.cb_hsl12[39].x < r1.x)); r1.x = uintBitsToFloat(floatBitsToUint(r1.x) & uint(0x00000001)); r0.yz = intBitsToFloat(ivec2(0x0) - ivec2(lessThan(idx_uniforms12_hs.cb_hsl12[39].xx, r0.yz))); r0.yz = uintBitsToFloat(floatBitsToUint(r0.yz) & uvec2(0x00000001, 0x00000001)); r0.y = intBitsToFloat(floatBitsToInt(r0.y) + floatBitsToInt(r1.x)); r1.x = intBitsToFloat(0x0 - int(idx_uniforms12_hs.cb_hsl12[39].x < r1.z)); r1.x = uintBitsToFloat(floatBitsToUint(r1.x) & uint(0x00000001)); r0.y = intBitsToFloat(floatBitsToInt(r0.y) + floatBitsToInt(r1.x)); r1.x = intBitsToFloat(0x0 - int(idx_uniforms12_hs.cb_hsl12[39].x < r1.y)); r1.x = uintBitsToFloat(floatBitsToUint(r1.x) & uint(0x00000001)); r0.z = intBitsToFloat(floatBitsToInt(r0.z) + floatBitsToInt(r1.x)); r1.x = intBitsToFloat(0x0 - int(idx_uniforms12_hs.cb_hsl12[39].x < r1.w)); r1.x = uintBitsToFloat(floatBitsToUint(r1.x) & uint(0x00000001)); r0.z = intBitsToFloat(floatBitsToInt(r0.z) + floatBitsToInt(r1.x)); r1.xy = intBitsToFloat(ivec2(0x0) - ivec2(lessThan(idx_uniforms12_hs.cb_hsl12[39].xx, r0.xw))); r1.xy = uintBitsToFloat(floatBitsToUint(r1.xy) & uvec2(0x00000001, 0x00000001)); r1.x = intBitsToFloat(floatBitsToInt(r1.y) + floatBitsToInt(r1.x)); r1.y = intBitsToFloat(0x0 - int(idx_uniforms12_hs.cb_hsl12[39].x < r2.x)); r1.y = uintBitsToFloat(floatBitsToUint(r1.y) & uint(0x00000001)); r1.x = intBitsToFloat(floatBitsToInt(r1.y) + floatBitsToInt(r1.x)); r1.y = intBitsToFloat(0x0 - int(floatBitsToInt(r2.y) == int(3))); r0.yz = intBitsToFloat(ivec2(0x0) - ivec2(equal(floatBitsToInt(r0.yz), ivec2(3, 3)))); r0.y = uintBitsToFloat(floatBitsToUint(r0.y) | floatBitsToUint(r1.y)); r1.y = intBitsToFloat(0x0 - int(floatBitsToInt(r2.z) == int(3))); r0.z = uintBitsToFloat(floatBitsToUint(r0.z) | floatBitsToUint(r1.y)); r0.y = uintBitsToFloat(floatBitsToUint(r0.z) | floatBitsToUint(r0.y)); r0.z = intBitsToFloat(0x0 - int(floatBitsToInt(r2.w) == int(3))); r1.x = intBitsToFloat(0x0 - int(floatBitsToInt(r1.x) == int(3))); r0.z = uintBitsToFloat(floatBitsToUint(r0.z) | floatBitsToUint(r1.x)); r0.y = uintBitsToFloat(floatBitsToUint(r0.z) | floatBitsToUint(r0.y)); if (floatBitsToUint(r0.y) != uint(0)) { patchConstantTemp[0].x = uintBitsToFloat(uint(0x00000000)); patchConstantTemp[1].x = uintBitsToFloat(uint(0x00000000)); patchConstantTemp[2].x = uintBitsToFloat(uint(0x00000000)); patchConstantTemp[3].x = uintBitsToFloat(uint(0x00000000)); return; } r1.xyz = -v0[1].v.xyz + v0[0].v.xyz; r0.y = dot(r1.xyz, r1.xyz); r1.xyz = -v0[2].v.xyz + v0[1].v.xyz; r0.z = dot(r1.xyz, r1.xyz); r0.yz = sqrt(r0.yz); r1.xyz = -v0[0].v.xyz + v0[2].v.xyz; r1.x = dot(r1.xyz, r1.xyz); r1.x = sqrt(r1.x); r1.y = min(r0.w, r0.x); r0.w = min(r0.w, r2.x); r0.x = min(r0.x, r2.x); r1.y = r1.y * float(0.400000006f); r1.y = max(r1.y, float(100.000000f)); r0.xw = r0.xw * vec2(0.400000006f, 0.400000006f); r0.xw = max(r0.xw, vec2(100.000000f, 100.000000f)); r0.y = (r1.y != 0.0) ? r0.y/r1.y : uintBitsToFloat(uint(0x70000000)) * sign(r0.y); r0.y = max(r0.y, float(1.00000000f)); r0.z = (r0.w != 0.0) ? r0.z/r0.w : uintBitsToFloat(uint(0x70000000)) * sign(r0.z); r0.z = max(r0.z, float(1.00000000f)); r0.x = (r0.x != 0.0) ? r1.x/r0.x : uintBitsToFloat(uint(0x70000000)) * sign(r1.x); r0.x = max(r0.x, float(1.00000000f)); r0.xyz = min(r0.xyz, vec3(63.0000000f, 63.0000000f, 63.0000000f)); r0.w = max(r0.y, r0.x); patchConstantTemp[3].x = max(r0.w, r0.z); patchConstantTemp[0].x = r0.z; patchConstantTemp[1].x = r0.x; patchConstantTemp[2].x = r0.y; return; } void main() { Initialise(); HSControlPointPhase(); HSForkPhase_0(0u); vPatchConstant0 = patchConstantTemp[0]; vPatchConstant1 = patchConstantTemp[1]; vPatchConstant2 = patchConstantTemp[2]; vPatchConstant3 = patchConstantTemp[3]; gl_TessLevelOuter[0] = patchConstantTemp[0].x; gl_TessLevelOuter[1] = patchConstantTemp[1].x; gl_TessLevelOuter[2] = patchConstantTemp[2].x; gl_TessLevelInner[0] = patchConstantTemp[3].x; VertexEpilog(); }