我试图使用GL_POINTS绘制正方形像素,但像素是四舍五入的。我试过使用glDisable(GL_POINT_SLANLE),但它似乎没有改变任何事情。
以下是我的代码:
glDisable(GL_POINT_SMOOTH); glPointSize(8); glBegin(GL_POINTS); glVertex2i(500, 400); glEnd();
lrpiutwd1#
GlPointSize参考页面(https://registry.khronos.org/OpenGL-Refpages/gl4/html/glPointSize.xhtml)指出,如果您(或您正在使用的任何库)已调用glEnable(GL_PROGRAM_POINT_SIZE),则顶点着色器将控制点的大小(而不是控制中的glPointSize())。
此外,一些平台可能对最大磅大小有相当严格的限制:最大大小可能是1(!)这意味着(实际上)你根本没有能力做正方形像素。要检查平台的功能,请执行以下操作:
GLint sizeRange[2]; glGetIntegerv(GL_POINT_SIZE_RANGE,sizeRange); //sizeRange[0] is the minimum; sizeRange[1] is the maximum
[参考:https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet.xhtml]
1条答案
按热度按时间lrpiutwd1#
GlPointSize参考页面(https://registry.khronos.org/OpenGL-Refpages/gl4/html/glPointSize.xhtml)指出,如果您(或您正在使用的任何库)已调用glEnable(GL_PROGRAM_POINT_SIZE),则顶点着色器将控制点的大小(而不是控制中的glPointSize())。
此外,一些平台可能对最大磅大小有相当严格的限制:最大大小可能是1(!)这意味着(实际上)你根本没有能力做正方形像素。要检查平台的功能,请执行以下操作:
[参考:https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet.xhtml]