diff --git a/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java b/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java index ab96619a..b9539307 100644 --- a/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java +++ b/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java @@ -19,8 +19,14 @@ import java.util.function.BooleanSupplier; import static org.lwjgl.opengl.ARBComputeShader.glDispatchCompute; import static org.lwjgl.opengl.ARBShaderImageLoadStore.glBindImageTexture; +import static org.lwjgl.opengl.GL11.GL_BLEND; +import static org.lwjgl.opengl.GL11.GL_ONE; +import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA; +import static org.lwjgl.opengl.GL11.GL_SRC_ALPHA; +import static org.lwjgl.opengl.GL11.glEnable; import static org.lwjgl.opengl.GL11C.GL_NEAREST; import static org.lwjgl.opengl.GL11C.GL_RGBA8; +import static org.lwjgl.opengl.GL14.glBlendFuncSeparate; import static org.lwjgl.opengl.GL15.GL_READ_WRITE; import static org.lwjgl.opengl.GL30C.*; import static org.lwjgl.opengl.GL43.GL_DEPTH_STENCIL_TEXTURE_MODE; @@ -109,8 +115,13 @@ public class NormalRenderPipeline extends AbstractRenderPipeline { } glBindTextureUnit(3, this.colourSSAOTex.id); - AbstractRenderPipeline.transformBlitDepth(this.finalBlit, this.fb.getDepthTex().id, sourceFrameBuffer, viewport, new Matrix4f(viewport.vanillaProjection).mul(viewport.modelView)); + //Do alpha blending + + glEnable(GL_BLEND); + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + AbstractRenderPipeline.transformBlitDepth(this.finalBlit, this.fb.getDepthTex().id, sourceFrameBuffer, viewport, new Matrix4f(viewport.vanillaProjection).mul(viewport.modelView)); + glDisable(GL_BLEND); //glBlitNamedFramebuffer(this.fbSSAO.id, sourceFrameBuffer, 0,0, viewport.width, viewport.height, 0,0, viewport.width, viewport.height, GL_COLOR_BUFFER_BIT, GL_NEAREST); } diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/post/FullscreenBlit.java b/src/main/java/me/cortex/voxy/client/core/rendering/post/FullscreenBlit.java index 220f9d55..de1c1d81 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/post/FullscreenBlit.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/post/FullscreenBlit.java @@ -2,11 +2,13 @@ package me.cortex.voxy.client.core.rendering.post; import me.cortex.voxy.client.core.gl.shader.Shader; import me.cortex.voxy.client.core.gl.shader.ShaderType; +import me.cortex.voxy.client.core.rendering.util.SharedIndexBuffer; import java.util.function.Function; -import static org.lwjgl.opengl.GL11C.GL_TRIANGLES; -import static org.lwjgl.opengl.GL11C.glDrawArrays; +import static org.lwjgl.opengl.GL11C.*; +import static org.lwjgl.opengl.GL15C.GL_ELEMENT_ARRAY_BUFFER; +import static org.lwjgl.opengl.GL15C.glBindBuffer; import static org.lwjgl.opengl.GL30C.glBindVertexArray; import static org.lwjgl.opengl.GL45C.glCreateVertexArrays; @@ -40,7 +42,8 @@ public class FullscreenBlit { public void blit() { glBindVertexArray(EMPTY_VAO); this.shader.bind(); - glDrawArrays(GL_TRIANGLES, 0, 6); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, SharedIndexBuffer.INSTANCE_BYTE.id()); + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, 0); glBindVertexArray(0); } diff --git a/src/main/resources/assets/voxy/shaders/post/fullscreen.vert b/src/main/resources/assets/voxy/shaders/post/fullscreen.vert index 0ee79bdb..ce5a75b6 100644 --- a/src/main/resources/assets/voxy/shaders/post/fullscreen.vert +++ b/src/main/resources/assets/voxy/shaders/post/fullscreen.vert @@ -2,6 +2,6 @@ out vec2 UV; void main() { - gl_Position = vec4(vec2(gl_VertexID&1, (gl_VertexID>>1)&1) * 4 - 1, 0.99999999999f, 1); + gl_Position = vec4(vec2(gl_VertexID&1, (gl_VertexID>>1)&1) * 2 - 1, 0.99999999999f, 1); UV = gl_Position.xy*0.5+0.5; } \ No newline at end of file diff --git a/src/main/resources/assets/voxy/shaders/post/fullscreen2.vert b/src/main/resources/assets/voxy/shaders/post/fullscreen2.vert index 49889387..be293531 100644 --- a/src/main/resources/assets/voxy/shaders/post/fullscreen2.vert +++ b/src/main/resources/assets/voxy/shaders/post/fullscreen2.vert @@ -2,6 +2,6 @@ out vec2 UV; void main() { - gl_Position = vec4(vec2(gl_VertexID&1, (gl_VertexID>>1)&1) * 4 - 1, 1.0f, 1); + gl_Position = vec4(vec2(gl_VertexID&1, (gl_VertexID>>1)&1) * 2 - 1, 1.0f, 1); UV = gl_Position.xy*0.5+0.5; } \ No newline at end of file