aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2025-06-22 23:00:16 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2025-06-22 23:00:16 -0400
commitcc193e8818c21e77192466e55ea51bb5d8b8e0de (patch)
treeae73947c5bae461ed040e16ea4d2e9d3720fecdf /src/main/java
parentc6f4a8e7d361e4d4e336de483696d9823a67d1c5 (diff)
downloadSkyblocker-cc193e8818c21e77192466e55ea51bb5d8b8e0de.tar.gz
Skyblocker-cc193e8818c21e77192466e55ea51bb5d8b8e0de.tar.bz2
Skyblocker-cc193e8818c21e77192466e55ea51bb5d8b8e0de.zip
Remove Occlusion Culling library
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java45
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java26
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java19
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java28
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java4
6 files changed, 3 insertions, 132 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
index c87b43ad..d473badf 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
@@ -4,7 +4,6 @@ import com.mojang.blaze3d.systems.RenderSystem;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.annotations.Init;
import de.hysky.skyblocker.mixins.accessors.BeaconBlockEntityRendererInvoker;
-import de.hysky.skyblocker.utils.render.culling.OcclusionCulling;
import de.hysky.skyblocker.utils.render.title.Title;
import de.hysky.skyblocker.utils.render.title.TitleContainer;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
@@ -63,15 +62,9 @@ public class RenderHelper {
}
public static void renderFilled(WorldRenderContext context, double minX, double minY, double minZ, double maxX, double maxY, double maxZ, float[] colorComponents, float alpha, boolean throughWalls) {
- if (throughWalls) {
- if (FrustumUtils.isVisible(minX, minY, minZ, maxX, maxY, maxZ)) {
- renderFilledInternal(context, minX, minY, minZ, maxX, maxY, maxZ, colorComponents, alpha, true);
- }
- } else {
- if (OcclusionCulling.getRegularCuller().isVisible(minX, minY, minZ, maxX, maxY, maxZ)) {
- renderFilledInternal(context, minX, minY, minZ, maxX, maxY, maxZ, colorComponents, alpha, false);
- }
- }
+ if (FrustumUtils.isVisible(minX, minY, minZ, maxX, maxY, maxZ)) {
+ renderFilledInternal(context, minX, minY, minZ, maxX, maxY, maxZ, colorComponents, alpha, throughWalls);
+ }
}
private static void renderFilledInternal(WorldRenderContext context, double minX, double minY, double minZ, double maxX, double maxY, double maxZ, float[] colorComponents, float alpha, boolean throughWalls) {
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java
deleted file mode 100644
index 3c48a47e..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import com.logisticscraft.occlusionculling.OcclusionCullingInstance;
-import com.logisticscraft.occlusionculling.cache.ArrayOcclusionCache;
-import com.logisticscraft.occlusionculling.util.Vec3d;
-
-import de.hysky.skyblocker.utils.render.FrustumUtils;
-import net.minecraft.client.MinecraftClient;
-
-public class OcclusionCuller {
- private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
-
- private final OcclusionCullingInstance instance;
-
- // Reused objects to reduce allocation overhead
- private final Vec3d cameraPos = new Vec3d(0, 0, 0);
- private final Vec3d min = new Vec3d(0, 0, 0);
- private final Vec3d max = new Vec3d(0, 0, 0);
-
- OcclusionCuller(int tracingDistance, WorldProvider worldProvider, double aabbExpansion) {
- this.instance = new OcclusionCullingInstance(tracingDistance, worldProvider, new ArrayOcclusionCache(tracingDistance), aabbExpansion);
- }
-
- private void updateCameraPos() {
- var camera = CLIENT.gameRenderer.getCamera().getPos();
- cameraPos.set(camera.x, camera.y, camera.z);
- }
-
- /**
- * This first checks checks if the bounding box is within the camera's FOV, if
- * it is then it checks for whether it's occluded or not.
- *
- * @return A boolean representing whether the bounding box is fully visible or
- * not as per the instance's settings.
- */
- public boolean isVisible(double x1, double y1, double z1, double x2, double y2, double z2) {
- if (!FrustumUtils.isVisible(x1, y1, z1, x2, y2, z2)) return false;
-
- updateCameraPos();
- min.set(x1, y1, z1);
- max.set(x2, y2, z2);
-
- return instance.isAABBVisible(min, max, cameraPos);
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java
deleted file mode 100644
index eb607aa5..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import de.hysky.skyblocker.annotations.Init;
-
-public class OcclusionCulling {
- private static final int TRACING_DISTANCE = 128;
- private static OcclusionCuller regularCuller = null;
- private static OcclusionCuller reducedCuller = null;
-
- /**
- * Initializes the occlusion culling instances
- */
- @Init
- public static void init() {
- regularCuller = new OcclusionCuller(TRACING_DISTANCE, new WorldProvider(), 2);
- reducedCuller = new OcclusionCuller(TRACING_DISTANCE, new ReducedWorldProvider(), 0);
- }
-
- public static OcclusionCuller getRegularCuller() {
- return regularCuller;
- }
-
- public static OcclusionCuller getReducedCuller() {
- return reducedCuller;
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java
deleted file mode 100644
index ca55ba05..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import net.minecraft.block.BlockState;
-import net.minecraft.registry.tag.BlockTags;
-import net.minecraft.util.math.BlockPos;
-
-public class ReducedWorldProvider extends WorldProvider {
-
- @Override
- public boolean isOpaqueFullCube(int x, int y, int z) {
- BlockPos pos = new BlockPos(x, y, z);
- BlockState state = this.world.getBlockState(pos);
-
- //Fixes edge cases where stairs etc aren't treated as being full blocks for the use case
- boolean isException = state.isIn(BlockTags.STAIRS) || state.isIn(BlockTags.WALLS) || state.isIn(BlockTags.FENCES);
-
- return isException || this.world.getBlockState(pos).isOpaqueFullCube();
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java
deleted file mode 100644
index 722878b0..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import com.logisticscraft.occlusionculling.DataProvider;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.world.ClientWorld;
-import net.minecraft.util.math.BlockPos;
-
-public class WorldProvider implements DataProvider {
- private final static MinecraftClient CLIENT = MinecraftClient.getInstance();
- protected ClientWorld world = null;
-
- @Override
- public boolean prepareChunk(int chunkX, int chunkZ) {
- this.world = CLIENT.world;
- return this.world != null;
- }
-
- @Override
- public boolean isOpaqueFullCube(int x, int y, int z) {
- BlockPos pos = new BlockPos(x, y, z);
- return this.world.getBlockState(pos).isOpaqueFullCube();
- }
-
- @Override
- public void cleanup() {
- this.world = null;
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java
deleted file mode 100644
index 1d5cdf98..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Package dedicated to occlusion culling utilities
- */
-package de.hysky.skyblocker.utils.render.culling; \ No newline at end of file