如何在OpenGL glBegin(GL_POINTS)中改变点大小?

max*_*max 8 opengl size point glsl

在绘制大量积分时有没有办法改变点大小?我知道有glPointSize(float),但有没有办法在'批处理'或数组中做到这一点?

我希望这些点根据数据的属性具有不同的大小.例如每个点具有x,y,z和大小属性.我现在正在java中使用帧缓冲区.

我可以使用顶点着色器吗?

tib*_*bur 15

您可以使用点精灵:使用它glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);然后您可以gl_PointSize在顶点程序中使用属性.

OpenGL讨论线程中获取的顶点着色器示例:

void main() {
    gl_FrontColor=gl_Color;
    gl_PointSize = gl_Normal.x;
    gl_Position = ftransform();
} 
Run Code Online (Sandbox Code Playgroud)