gl_PointSize OpenGLES 说明
gl_PointSize OpenGLES clarification
在顶点着色器中设置gl_PointSize = 1.0
意味着什么或实现什么?这是否意味着顶点本身就是一个像素?
gl_PointSize决定一个点的大小。
您可以绘制三角形、直线和点。例如,如果您以点为单位绘制三角形,则屏幕上将出现 3 个点。可以使用 gl_PointSize 参数更改大小。例如,如果您设置 gl_PointSize = 10.0; , 然后屏幕上的点会很大。
这是做什么用的?提供了更多的可能性。纹理也可以绑定到一个点——无论你在哪里画一个点,都会有一个纹理。很酷,哈?本例中该纹理的大小由 gl_PointSize 决定;
不太确定可以更改的范围。我想这取决于一点。只需尝试(例如 1.0、4.0、10.0),您很快就会看到差异。
What does setting gl_PointSize = 1.0 in vertex shader means or achieve? Does that mean the vertex itself is a pixel?
是的,确实如此。
见 gl_PointSize
:
The variable gl_PointSize
is intended for a vertex shader to write the size of the point to be rasterized. It is measured in pixels.
参见OpenGL ES Specification - Khronos OpenGL ES Registry, 3.3 Points, page 51:
Point size is taken from the shader builtin gl_PointSize
and clamped to the
implementation-dependent point size range. If the value written to gl_PointSize
is less than or equal to zero, results are undefined. The range is determined by the ALIASED_POINT_SIZE_RANGE and may be queried as described in chapter 6.
The maximum point size supported must be at least one.
Point rasterization produces a fragment for each framebuffer pixel whose center lies inside a square centered at the point’s (xw, yw ), with side length equal to the point size.
这意味着,如果您定义 gl_PointSize = 1.0
,则这指定了一个边长为 1 个片段的正方形。中心点在该方块内的片段受影响
与 "desktop" OpenGL 相比,在程序中点大小不必启用。 (在桌面 OpenGL 中,gl_PointSize
仅在启用 GL_PROGRAM_POINT_SIZE
时才有意义。
在顶点着色器中设置gl_PointSize = 1.0
意味着什么或实现什么?这是否意味着顶点本身就是一个像素?
gl_PointSize决定一个点的大小。
您可以绘制三角形、直线和点。例如,如果您以点为单位绘制三角形,则屏幕上将出现 3 个点。可以使用 gl_PointSize 参数更改大小。例如,如果您设置 gl_PointSize = 10.0; , 然后屏幕上的点会很大。
这是做什么用的?提供了更多的可能性。纹理也可以绑定到一个点——无论你在哪里画一个点,都会有一个纹理。很酷,哈?本例中该纹理的大小由 gl_PointSize 决定;
不太确定可以更改的范围。我想这取决于一点。只需尝试(例如 1.0、4.0、10.0),您很快就会看到差异。
What does setting gl_PointSize = 1.0 in vertex shader means or achieve? Does that mean the vertex itself is a pixel?
是的,确实如此。
见 gl_PointSize
:
The variable
gl_PointSize
is intended for a vertex shader to write the size of the point to be rasterized. It is measured in pixels.
参见OpenGL ES Specification - Khronos OpenGL ES Registry, 3.3 Points, page 51:
Point size is taken from the shader builtin
gl_PointSize
and clamped to the implementation-dependent point size range. If the value written togl_PointSize
is less than or equal to zero, results are undefined. The range is determined by the ALIASED_POINT_SIZE_RANGE and may be queried as described in chapter 6. The maximum point size supported must be at least one.
Point rasterization produces a fragment for each framebuffer pixel whose center lies inside a square centered at the point’s (xw, yw ), with side length equal to the point size.
这意味着,如果您定义 gl_PointSize = 1.0
,则这指定了一个边长为 1 个片段的正方形。中心点在该方块内的片段受影响
与 "desktop" OpenGL 相比,在程序中点大小不必启用。 (在桌面 OpenGL 中,gl_PointSize
仅在启用 GL_PROGRAM_POINT_SIZE
时才有意义。