glsl-方形框架是一个非常有用的工具,可以在给定屏幕尺寸的情况下,获取当前像素在-1到+1之间的值。它在全屏着色器中尤为重要,因为在这种情况下,使用gl_FragCoord.xy会随着画布的缩放而变化,从而导致图像拉伸问题,尤其是在没有正确缩放[width, height]时。这种情况下,使用squareFrame函数可以确保你获得一致的像素点,无论纵横比如何变化。

函数的用法如下:

  • vec2 squareFrame(vec2 size)

  • vec2 squareFrame(vec2 size, vec2 coord)

该函数返回一个包含缩放屏幕位置的vec2,范围在-1到+1之间。这里的size是一个包含画布宽度和高度的vec2,而coord表示当前片段的位置(以像素为单位),默认为gl_FragCoord.xy。更多关于GLSL的详细信息,可以参考GLSL砖块着色器及其相关实现案例。