54 lines
1.6 KiB
Plaintext
54 lines
1.6 KiB
Plaintext
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
|
|
using namespace metal;
|
|
|
|
struct type_Uniforms
|
|
{
|
|
float time;
|
|
packed_float3 viewPos;
|
|
};
|
|
|
|
struct main0_out
|
|
{
|
|
float4 out_var_SV_Target0 [[color(0)]];
|
|
};
|
|
|
|
struct main0_in
|
|
{
|
|
float2 in_var_TEXCOORD0 [[user(locn0)]];
|
|
float3 in_var_TEXCOORD1 [[user(locn1)]];
|
|
float3 in_var_TEXCOORD2 [[user(locn2)]];
|
|
};
|
|
|
|
fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Uniforms [[buffer(0)]], texture2d<float> Texture [[texture(0)]], sampler Sampler [[sampler(0)]])
|
|
{
|
|
main0_out out = {};
|
|
float4 _54 = Texture.sample(Sampler, in.in_var_TEXCOORD0);
|
|
float3 _57 = float3(0.0, 16.0, -5.0) - in.in_var_TEXCOORD1;
|
|
float3 _58 = fast::normalize(_57);
|
|
float _73 = length(_57);
|
|
float _79;
|
|
if (_73 > 2.0)
|
|
{
|
|
_79 = 0.25 / _73;
|
|
}
|
|
else
|
|
{
|
|
_79 = 0.5 / _73;
|
|
}
|
|
float _84;
|
|
if (_73 > 4.0)
|
|
{
|
|
_84 = _79 * 0.5;
|
|
}
|
|
else
|
|
{
|
|
_84 = _79;
|
|
}
|
|
float _86 = (_73 > 5.0) ? 0.0 : _84;
|
|
out.out_var_SV_Target0 = float4(powr(_54.xyz * (float3(0.00200000009499490261077880859375, 0.00200000009499490261077880859375, 0.000600000028498470783233642578125) + (((float3(0.800000011920928955078125, 0.800000011920928955078125, 0.5) * precise::max(dot(_58, in.in_var_TEXCOORD2), 0.0)) * _86) + (((float3(0.800000011920928955078125, 0.800000011920928955078125, 0.5) * powr(precise::max(dot(in.in_var_TEXCOORD2, fast::normalize(_58 + fast::normalize(in.in_var_TEXCOORD1 - float3(Uniforms.viewPos)))), 0.0), 30.0)) * 2.0) * _86))), float3(0.4545454680919647216796875)), _54.w);
|
|
return out;
|
|
}
|
|
|