【发布时间】:2021-12-25 09:47:11
【问题描述】:
我知道我可以在顶点着色器中执行转换(旋转、缩放)。但是我想知道我是否可以在 fragment 着色器中做类似的事情。
shadertoy.com - transformation_in_fragment_shade
我尝试通过将uv 相乘来在片段着色器中应用转换,但被结果弄糊涂了。
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
// Normalized pixel coordinates (from 0 to 1)
vec2 uv = fragCoord/iResolution.xy;
uv = fract(uv * 2.);
vec4 img = texture(iChannel0, uv);
// Output to screen
fragColor = img;
}
我预计图片会被缩放2x而不是缩小,我也对这里fract的含义感到困惑,为什么应用这个功能可以将图像分成4块。
所以问题是,我可以在片段着色器中应用旋转或缩放吗?我应该使用不同的方法进行旋转,在此处缩放吗?
【问题讨论】:
标签: glsl shader webgl fragment-shader