gl_PointSize OpenGLES 说明

Dee*_*rma 5 opengl-es vertex-shader ios pixel-shading opengl-es-2.0

顶点着色器中的设置gl_PointSize = 1.0意味着什么或实现什么?这是否意味着顶点本身就是一个像素?

Rab*_*d76 3

\n

在顶点着色器中设置 gl_PointSize = 1.0 意味着什么或实现什么?这是否意味着顶点本身就是一个像素?

\n
\n\n

是的,它确实。

\n\n


\n参见gl_PointSize

\n\n
\n

该变量gl_PointSize供顶点着色器写入要光栅化的点的大小。它以像素为单位进行测量。

\n
\n\n

请参阅OpenGL ES 规范 - Khronos OpenGL ES 注册表,3.3 点,第 51 页

\n\n
\n

点大小取自内置着色器gl_PointSize,并限制在与实现相关的点大小范围内。如果写入的值gl_PointSize小于或等于零,则结果未定义。该范围由 ALIASED_POINT_SIZE_RANGE 确定,并且可以按照第 6 章中的描述进行查询。\n 支持的最大点大小必须至少为 1。
\n 点光栅化为每个帧缓冲区像素生成一个片段,其中心位于以点\xe2\x80\x99s ( xw , yw ) 为中心的正方形内,边长等于点大小。

\n
\n\n


\n这意味着,如果您定义gl_PointSize = 1.0,则指定一个边长为 1 个片段的正方形。中心点位于该正方形中的片段受到影响。

\n\n

与“桌面”OpenGL 相比,在程序中无需启用点大小。(在桌面 OpenGL 中gl_PointSize只有启用时才有意义GL_PROGRAM_POINT_SIZE)。

\n