Fixed full screen blitting, blend with sky
This commit is contained in:
@@ -19,8 +19,14 @@ import java.util.function.BooleanSupplier;
|
|||||||
|
|
||||||
import static org.lwjgl.opengl.ARBComputeShader.glDispatchCompute;
|
import static org.lwjgl.opengl.ARBComputeShader.glDispatchCompute;
|
||||||
import static org.lwjgl.opengl.ARBShaderImageLoadStore.glBindImageTexture;
|
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_NEAREST;
|
||||||
import static org.lwjgl.opengl.GL11C.GL_RGBA8;
|
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.GL15.GL_READ_WRITE;
|
||||||
import static org.lwjgl.opengl.GL30C.*;
|
import static org.lwjgl.opengl.GL30C.*;
|
||||||
import static org.lwjgl.opengl.GL43.GL_DEPTH_STENCIL_TEXTURE_MODE;
|
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);
|
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);
|
//glBlitNamedFramebuffer(this.fbSSAO.id, sourceFrameBuffer, 0,0, viewport.width, viewport.height, 0,0, viewport.width, viewport.height, GL_COLOR_BUFFER_BIT, GL_NEAREST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.Shader;
|
||||||
import me.cortex.voxy.client.core.gl.shader.ShaderType;
|
import me.cortex.voxy.client.core.gl.shader.ShaderType;
|
||||||
|
import me.cortex.voxy.client.core.rendering.util.SharedIndexBuffer;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import static org.lwjgl.opengl.GL11C.GL_TRIANGLES;
|
import static org.lwjgl.opengl.GL11C.*;
|
||||||
import static org.lwjgl.opengl.GL11C.glDrawArrays;
|
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.GL30C.glBindVertexArray;
|
||||||
import static org.lwjgl.opengl.GL45C.glCreateVertexArrays;
|
import static org.lwjgl.opengl.GL45C.glCreateVertexArrays;
|
||||||
|
|
||||||
@@ -40,7 +42,8 @@ public class FullscreenBlit {
|
|||||||
public void blit() {
|
public void blit() {
|
||||||
glBindVertexArray(EMPTY_VAO);
|
glBindVertexArray(EMPTY_VAO);
|
||||||
this.shader.bind();
|
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);
|
glBindVertexArray(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
out vec2 UV;
|
out vec2 UV;
|
||||||
void main() {
|
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;
|
UV = gl_Position.xy*0.5+0.5;
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
out vec2 UV;
|
out vec2 UV;
|
||||||
void main() {
|
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;
|
UV = gl_Position.xy*0.5+0.5;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user