Java Opengl Alpha混合不起作用?

Java Opengl Alpha混合不起作用?,java,opengl,transparency,lwjgl,alphablending,Java,Opengl,Transparency,Lwjgl,Alphablending,在我的Opengl应用程序(lwjgl)中,我启用了如下alpha混合: GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 绘制两个渐变圆时,结果如下所示: GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 这

在我的Opengl应用程序(lwjgl)中,我启用了如下alpha混合:

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
绘制两个渐变圆时,结果如下所示:

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);


这怎么可能?(黑色重叠实际上是透明的…

你先画的是两个圆中的哪一个?混合时,您需要将几何体从前向后渲染。我如何才能做到这一点?首先渲染的是“在另一个之上”的对象。您需要根据对象的深度对对象进行排序,然后将其向后绘制到前面。在这个答案中,我对渲染透明度的各种方法做了详细的概述:。渐变圆使用纹理吗?不。我在片段着色器中计算它们,如下所示:color=vec4(红色、绿色、蓝色,(1.0-distanceTo00/1.0))