Java OpenGL JOGL纹理轮廓

Java OpenGL JOGL纹理轮廓,java,opengl,textures,jogl,Java,Opengl,Textures,Jogl,我正在OpenGL(JOGL)中绘制一些点,如下所示: BufferedImage image = loadMyTextureImage(); Texture tex = TextureIO.newTexture(image, false); tex.setTexParameteri(GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR); tex.setTexParameteri(GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); tex.

我正在OpenGL(JOGL)中绘制一些点,如下所示:

BufferedImage image = loadMyTextureImage();
Texture tex = TextureIO.newTexture(image, false);
tex.setTexParameteri(GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR);
tex.setTexParameteri(GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);
tex.bind();

gl.glColor4f(r,g,b,a);        
gl.glBegin(GL_POINTS);
for ( int i = 0; i < numPoints; i++ ) {
   // compute x,y,z
   gl.glVertex3f(x,y,z);
}
gl.glEnd();
buffereImage image=loadMyTextureImage();
纹理tex=纹理io.newTexture(图像,假);
tex.setTexParameteri(GL.GL\u纹理\u最小\u过滤器,GL.GL\u线性);
tex.setTexParameteri(GL.GL\u纹理\u MAG\u过滤器,GL.GL\u线性);
tex.bind();
gl.gl4f(r,g,b,a);
总帐。总帐开始(总帐点数);
对于(int i=0;i

我的
图像
是白色图像,因此我可以重复使用相同的纹理,只需使用
gl.glColor4f
对其进行着色,但我想用不同的颜色在其周围绘制一个轮廓。有没有办法做到这一点?

如果您使用纹理来确定点的形状,那么绘制轮廓的明显方法是添加第二个纹理,以便在顶部绘制点的轮廓

轮廓纹理也是白色的,所以你可以用同样的方法把它涂成你喜欢的任何颜色


根据您使用的alpha混合模式,这也可用于提供“发光”边缘效果。

如果只是纯白色,则根本不需要纹理:-)您还需要什么样的轮廓?任意颜色的细线?边缘周围的“发光”?边缘的渐变填充?这在很大程度上取决于你想要达到什么样的艺术效果……我正在使用纹理来改变点的形状。这似乎要快得多,因为我仍然可以使用GL_点,而不是创建具有该形状的多边形。对于轮廓,我只是想得到一条任意颜色的细线。我考虑过这样做,但我认为这需要我先绘制所有轮廓,然后绘制所有填充(反之亦然),因为我不认为我可以在GL_点时切换纹理。这将导致所有填充位于所有轮廓之上。您可以一次绑定两个纹理(尽管您可能需要GLSL来获得某些混合效果)。无论如何,出于性能原因,这可能是最好的方法。