我的WebGL ALIASED_POINT_SIZE
(在Safari和Chrome中)是33901。
另一方面,在我的原生OpenGL(在Mac / Cocoa上),它只是(1,64)。
为什么两个值不同?是否无法增加gl_PointSize
?
答案 0 :(得分:1)
您正在考虑两个不同的值:
GL_ALIASED_POINT_SIZE_RANGE
的值,这是枚举值,用于查询点大小范围。在原生OpenGL中,您可以使用以下方法查询磅值范围:
GLint range[2];
glGetIntegerv(GL_ALIASED_POINT_SIZE_RANGE, range);
我没有使用过WebGL,但根据文档相应的调用应该是:
gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE)
答案 1 :(得分:1)
gl_PointSize
是您在顶点着色器中设置的全局,用于设置要栅格化的下一个点的大小。您可以随意设置它,从一个常量(所有点将是相同的大小),从一个统一(所有点将是您在运行时可以设置的相同大小),从属性(每个点将是一个不同的大小取决于您提供的每点数据),从某些等式(等等)(根据您的等式,每个点的大小不同)。
ALIASED_POINT_SIZE_RANGE
是一个常量值,传递给OpenGL中的glGetIntegerv
和WebGL中的gl.getParameter
,返回GPU /驱动程序支持的点大小范围。
请注意,WebGL和OpenGL ES 2.0仅需要1.0的最大磅值。这意味着如果您指望能够渲染大于1个像素的点,则需要在某些硬件上找到其他解决方案。你可以see the supported sizes near the bottom of this page。