提问人:NewPal 提问时间:11/9/2023 最后编辑:NewPal 更新时间:11/10/2023 访问量:96
将 Shadertoy Shader 转换为 glsl webgl
Convert Shadertoy Shader to glsl webgl
问:
我需要将这个着色器着色器转换为glsl,因为它关闭了纹理抗锯齿,它是手动最近邻滤波器
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
// Normalized pixel coordinates (from 0 to 1)
vec2 uv = fragCoord/iResolution.xy;
ivec2 sz = textureSize(iChannel0, 0);
uv = (vec2(0.5) + vec2(ivec2(uv * vec2(sz)))) / vec2(sz);
vec3 col = texture(iChannel0, uv).rgb;
// Output to screen
fragColor = vec4(col,1.0);
}
我知道 void mainImage( out vec4 fragColor, in vec2 fragCoord ) 变成 void main( )
fragCoord 变为 gl_FragCoord,fragColor 变为 gl_FragColor
我还提到了统一采样器2D媒体; 所以 texture(iChannel0, uv).rgb;变为 texture2D(media, uv).rgb;
但是我如何将这 2 行转换为 glsl
ivec2 sz = textureSize(iChannel0, 0);
uv = (vec2(0.5) + vec2(ivec2(uv * vec2(sz)))) / vec2(sz);
我的意思是什么是 ivec2 和 textureSize 在 glsl 中,我如何转换这个 ivec2 sz = textureSize(iChannel0, 0); 到 glsl ?
答: 暂无答案
评论
textureSize
是一个 GLSL 函数,没有什么可以移植到那里的。图像渲染:像素化;
;)