[código = CSharp] int _LastMip;
float4 fragMin (v2f i): SV_Target
{
float2 tsP = i.uv2.xy;
float2 lastTexSize = mipToSize (_LastMip);
float2 lastTexSizeInv = 1.0 / lastTexSize;
float2 p00 = snapToTexelCenter (tsP, lastTexSize, lastTexSizeInv);
float2 p11 = p00 + lastTexSizeInv;
retorno min
min (tex2D (_MainTex, p00), tex2D (_MainTex, p11)),
min (tex2D (_MainTex, float2 (p00.x, p11.y)), tex2D (_MainTex, float2 (p11.x, p00.y)))
);
}
float4 fragResolveHitPoints (v2f i): SV_Target
{
float2 tsP = i.uv2.xy;
float4 temp = tex2D (_HitPointTexture, tsP);
float2 hitPoint = temp.xy;
confianza flotante = temp.w;
float3 colorResult = confianza> 0.0? tex2D (_MainTex, hitPoint) .rgb: tex2D (_CameraReflectionsTexture, tsP) .rgb;
si (cualquiera (isnan (colorResult)))
colorResult = float3 (0.0, 0.0, 0.0);
// A partir del 29/11/2015, en Unity 5.3 en una computadora con Windows 8.1 con NVIDIA GeForce 980,
// con el controlador 347.62, la comprobación anterior no funciona para deshacerse de los NaN.
// Entonces agregamos esta verificación “redundante”.
if (! all (isfinite (colorResult)))
colorResult = float3 (0.0, 0.0, 0.0);
return float4 (colorResult, confianza);
}
float4 fragBilatKeyPack (v2f i): SV_Target
{
float2 tsP = i.uv2.xy;
float3 csN = tex2D (_CameraGBufferTexture2, tsP) .xyz;
rugosidad flotante = tex2D (_CameraGBufferTexture1, tsP) .a;
return float4 (csN, rugosidad);
}
float4 fragDepthToCSZ (v2f i): SV_Target
{
profundidad de flotación = SAMPLE_DEPTH_TEXTURE (_CameraDepthTexture, i.uv2.xy);
return float4 (-LinearEyeDepth (profundidad), 0.0, 0.0, 0.0);