44 lines
1.8 KiB
Plaintext
44 lines
1.8 KiB
Plaintext
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
|
|
using namespace metal;
|
|
|
|
struct main0_out
|
|
{
|
|
float4 out_var_SV_Target0 [[color(0)]];
|
|
};
|
|
|
|
struct main0_in
|
|
{
|
|
float2 in_var_TEXCOORD0 [[user(locn0)]];
|
|
};
|
|
|
|
fragment main0_out main0(main0_in in [[stage_in]], texture2d<float> ColorTexture [[texture(0)]], texture2d<float> EmissiveTexture [[texture(1)]], texture2d<float> SsaoTexture [[texture(2)]], sampler Sampler0 [[sampler(0)]], sampler Sampler1 [[sampler(1)]], sampler Sampler2 [[sampler(2)]])
|
|
{
|
|
main0_out out = {};
|
|
float2 _45 = in.in_var_TEXCOORD0;
|
|
_45.y = (_45.y * (-1.0)) + 1.0;
|
|
float4 _53 = ColorTexture.sample(Sampler0, _45);
|
|
float3 _54 = _53.xyz;
|
|
float3 _68;
|
|
int _71;
|
|
_68 = EmissiveTexture.sample(Sampler1, _45).xyz * 0.2270270287990570068359375;
|
|
_71 = 0;
|
|
float3 _69;
|
|
for (; _71 < 5; _68 = _69, _71++)
|
|
{
|
|
_69 = _68;
|
|
for (int _79 = 0; _79 < 5; )
|
|
{
|
|
float2 _87 = float2(float(_71) - 2.5, float(_79)) * float2(0.001953125);
|
|
_69 = (_69 + (EmissiveTexture.sample(Sampler1, (_45 + _87)).xyz * float3(0.039999999105930328369140625))) + (EmissiveTexture.sample(Sampler1, (_45 - _87)).xyz * float3(0.039999999105930328369140625));
|
|
_79++;
|
|
continue;
|
|
}
|
|
}
|
|
float3 _107 = ((powr((_54 * (float3(1.0) + (_54 * float3(0.00999999977648258209228515625)))) / (float3(1.0) + _54), float3(0.4545454680919647216796875)) + (_68 * 0.0500000007450580596923828125)) * 1.0) * SsaoTexture.sample(Sampler2, _45).x;
|
|
out.out_var_SV_Target0 = float4(((_107.x * (1.0 + (9.9999999747524270787835121154785e-07 * EmissiveTexture.sample(Sampler1, _45).x))) * (1.0 + (9.9999999747524270787835121154785e-07 * ColorTexture.sample(Sampler0, _45).x))) * (1.0 + (9.9999999747524270787835121154785e-07 * SsaoTexture.sample(Sampler2, _45).x)), _107.yz, 1.0);
|
|
return out;
|
|
}
|
|
|