From 67f448a0980e83df8c9252b6b38911fb406cb11b Mon Sep 17 00:00:00 2001 From: bigfoot547 Date: Fri, 14 Jun 2024 23:15:59 -0500 Subject: backface culling --- src/main/java/dev/figboot/cuberender/state/Framebuffer.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/main/java/dev/figboot/cuberender/state') diff --git a/src/main/java/dev/figboot/cuberender/state/Framebuffer.java b/src/main/java/dev/figboot/cuberender/state/Framebuffer.java index 17f4870..8da0803 100644 --- a/src/main/java/dev/figboot/cuberender/state/Framebuffer.java +++ b/src/main/java/dev/figboot/cuberender/state/Framebuffer.java @@ -27,6 +27,7 @@ public class Framebuffer { @Setter private Matrix4f transform; @Setter private BlendMode blendMode = BlendMode.DISABLE; + @Setter private boolean cullBackFace = true; public Framebuffer(int width, int height) { this.width = width; @@ -114,6 +115,10 @@ public class Framebuffer { vert2 = transform.transform(vert2); normal = transform.transform(normal).normalize(); + if (cullBackFace && normal.z < 0) { + return; + } + float sx0 = logToScrX(vert0.x), sy0 = logToScrY(vert0.y); float sx1 = logToScrX(vert1.x), sy1 = logToScrY(vert1.y); float sx2 = logToScrX(vert2.x), sy2 = logToScrY(vert2.y); -- cgit v1.2.3-70-g09d2