最初我使用的只是gl_FragCoord.x
在某种程度上效果很好。然而 的范围gl_FragCoord.xy
在 0.5 和 1023.5 之间,所以在 1023.5 x 之后只返回相同的值。
我有一件与实际画布尺寸相符的制服。
uniform vec2 resolution;
void main(void) {
float pixelXPos = ?
}
假设宽度为 1800,对于 1023.5 以上的像素,如何在片段着色器中获取实际像素屏幕 X 位置?
对于上下文,我有一个覆盖整个画布的正方形。我想让着色器在那个正方形上打印一个图案,所以我需要知道 x 和 y 坐标(在屏幕空间中),以便知道将每个像素绘制到什么。
谢谢!
您必须使用以下highp
精度限定符pixelXPos
:
highp float pixelXPos = gl_FragCoord.x;
的整数范围mediump
仅保证至少为 [-2e10, 2e10] ([-1024, 1024])。请参阅OpenGL ES 着色语言 1.00-4.5 精度和精度限定符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句