0

我正在尝试通过 shadertoy ( https://www.shadertoy.com/view/3llcRN ) 上的示例制作平铺效果。这是 GLSL 上的代码:

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    vec2 uv = (2.*fragCoord.xy - iResolution.xy)/iResolution.y;    
    fragColor = vec4( texture(iChannel0, uv ).rgba );
}

结果: 在此处输入图像描述

这是我在金属上的代码:

kernel vec4 colorKernel(sampler source, float w, float h)
{
    vec2 d = vec2(w, h);
    vec2 uv = (2.*destCoord().xy - d.xy)/h;
    return vec4( sample(source, uv).rgba );
}

结果:

在此处输入图像描述

什么不见​​了?我需要与 shadertoy 相同的结果

4

1 回答 1

0

问题是当 UV 的坐标大于 1 时它只返回空颜色

于 2020-06-14T17:05:04.317 回答