This commit is contained in:
mcrcortex
2024-01-31 22:42:56 +10:00
parent e90a623a01
commit f0bf39b848
103 changed files with 265 additions and 329 deletions

View File

@@ -22,14 +22,14 @@ repositories {
processResources { processResources {
inputs.property "version", project.version inputs.property "version", project.version
archivesBaseName = "zenith" archivesBaseName = "voxy"
filesMatching("fabric.mod.json") { filesMatching("fabric.mod.json") {
expand "version": project.version expand "version": project.version
} }
} }
loom { loom {
accessWidenerPath = file("src/main/resources/zenith.accesswidener") accessWidenerPath = file("src/main/resources/voxy.accesswidener")
} }
dependencies { dependencies {

View File

@@ -10,6 +10,6 @@ loader_version=0.15.0
# Mod Properties # Mod Properties
mod_version = 0.0.3-alpha mod_version = 0.0.3-alpha
maven_group = me.cortex maven_group = me.cortex
archives_base_name = zenith archives_base_name = voxy
fabric_version=0.91.1+1.20.4 fabric_version=0.91.1+1.20.4

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client; package me.cortex.voxy.client;
import me.cortex.zenith.client.core.VoxelCore; import me.cortex.voxy.client.core.VoxelCore;
public interface IGetVoxelCore { public interface IGetVoxelCore {
VoxelCore getVoxelCore(); VoxelCore getVoxelCore();

View File

@@ -1,9 +1,8 @@
package me.cortex.zenith.client; package me.cortex.voxy.client;
import me.cortex.zenith.common.world.storage.lmdb.LMDBInterface; import me.cortex.voxy.common.world.storage.lmdb.LMDBInterface;
import me.cortex.zenith.common.world.storage.StorageBackend; import me.cortex.voxy.client.importers.WorldImporter;
import me.cortex.zenith.client.importers.WorldImporter; import me.cortex.voxy.common.world.storage.lmdb.LMDBStorageBackend;
import me.cortex.zenith.common.world.storage.lmdb.LMDBStorageBackend;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
import java.io.File; import java.io.File;

View File

@@ -1,10 +1,10 @@
package me.cortex.zenith.client; package me.cortex.voxy.client;
import me.cortex.zenith.client.terrain.WorldImportCommand; import me.cortex.voxy.client.terrain.WorldImportCommand;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
public class Zenith implements ClientModInitializer { public class Voxy implements ClientModInitializer {
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.config; package me.cortex.voxy.client.config;
import com.google.gson.FieldNamingPolicy; import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson; import com.google.gson.Gson;
@@ -11,13 +11,13 @@ import java.lang.reflect.Modifier;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
public class ZenithConfig { public class VoxyConfig {
private static final Gson GSON = new GsonBuilder() private static final Gson GSON = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.setPrettyPrinting() .setPrettyPrinting()
.excludeFieldsWithModifiers(Modifier.PRIVATE) .excludeFieldsWithModifiers(Modifier.PRIVATE)
.create(); .create();
public static ZenithConfig CONFIG = loadOrCreate(); public static VoxyConfig CONFIG = loadOrCreate();
public boolean enabled = true; public boolean enabled = true;
public int qualityScale = 20; public int qualityScale = 20;
@@ -27,7 +27,7 @@ public class ZenithConfig {
public int savingThreads = 10; public int savingThreads = 10;
public int renderThreads = 5; public int renderThreads = 5;
public int savingCompressionLevel = 7; public int savingCompressionLevel = 7;
public String storagePath = "zenith_db"; public String storagePath = "voxy_db";
transient StorageConfig storageConfig; transient StorageConfig storageConfig;
public static abstract class StorageConfig { } public static abstract class StorageConfig { }
@@ -38,17 +38,17 @@ public class ZenithConfig {
public static ZenithConfig loadOrCreate() { public static VoxyConfig loadOrCreate() {
var path = getConfigPath(); var path = getConfigPath();
if (Files.exists(path)) { if (Files.exists(path)) {
try (FileReader reader = new FileReader(path.toFile())) { try (FileReader reader = new FileReader(path.toFile())) {
return GSON.fromJson(reader, ZenithConfig.class); return GSON.fromJson(reader, VoxyConfig.class);
} catch (IOException e) { } catch (IOException e) {
System.err.println("Could not parse config"); System.err.println("Could not parse config");
e.printStackTrace(); e.printStackTrace();
} }
} }
return new ZenithConfig(); return new VoxyConfig();
} }
public void save() { public void save() {
//Unsafe, todo: fixme! needs to be atomic! //Unsafe, todo: fixme! needs to be atomic!

View File

@@ -1,31 +1,26 @@
package me.cortex.zenith.client.config; package me.cortex.voxy.client.config;
import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi; import com.terraformersmc.modmenu.api.ModMenuApi;
import me.cortex.zenith.client.IGetVoxelCore; import me.cortex.voxy.client.IGetVoxelCore;
import me.shedaniel.clothconfig2.api.ConfigBuilder; import me.shedaniel.clothconfig2.api.ConfigBuilder;
import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigCategory;
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
import me.shedaniel.clothconfig2.api.Requirement;
import me.shedaniel.clothconfig2.gui.entries.BooleanListEntry;
import me.shedaniel.clothconfig2.gui.entries.IntegerListEntry;
import me.shedaniel.clothconfig2.gui.entries.IntegerSliderEntry;
import me.shedaniel.clothconfig2.impl.builders.DropdownMenuBuilder;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.Text; import net.minecraft.text.Text;
public class ZenithConfigScreenFactory implements ModMenuApi { public class VoxyConfigScreenFactory implements ModMenuApi {
private static final ZenithConfig DEFAULT = new ZenithConfig(); private static final VoxyConfig DEFAULT = new VoxyConfig();
@Override @Override
public ConfigScreenFactory<?> getModConfigScreenFactory() { public ConfigScreenFactory<?> getModConfigScreenFactory() {
return parent -> buildConfigScreen(parent, ZenithConfig.CONFIG); return parent -> buildConfigScreen(parent, VoxyConfig.CONFIG);
} }
private static Screen buildConfigScreen(Screen parent, ZenithConfig config) { private static Screen buildConfigScreen(Screen parent, VoxyConfig config) {
ConfigBuilder builder = ConfigBuilder.create() ConfigBuilder builder = ConfigBuilder.create()
.setParentScreen(parent) .setParentScreen(parent)
.setTitle(Text.translatable("zenith.config.title")); .setTitle(Text.translatable("voxy.config.title"));
addGeneralCategory(builder, config); addGeneralCategory(builder, config);
@@ -38,78 +33,78 @@ public class ZenithConfigScreenFactory implements ModMenuApi {
if (world != null) { if (world != null) {
world.reloadVoxelCore(); world.reloadVoxelCore();
} }
ZenithConfig.CONFIG.save(); VoxyConfig.CONFIG.save();
}); });
return builder.build(); return builder.build();
} }
private static void addGeneralCategory(ConfigBuilder builder, ZenithConfig config) { private static void addGeneralCategory(ConfigBuilder builder, VoxyConfig config) {
ConfigCategory category = builder.getOrCreateCategory(Text.translatable("zenith.config.general")); ConfigCategory category = builder.getOrCreateCategory(Text.translatable("voxy.config.general"));
ConfigEntryBuilder entryBuilder = builder.entryBuilder(); ConfigEntryBuilder entryBuilder = builder.entryBuilder();
category.addEntry(entryBuilder.startBooleanToggle(Text.translatable("zenith.config.general.enabled"), config.enabled) category.addEntry(entryBuilder.startBooleanToggle(Text.translatable("voxy.config.general.enabled"), config.enabled)
.setTooltip(Text.translatable("zenith.config.general.enabled.tooltip")) .setTooltip(Text.translatable("voxy.config.general.enabled.tooltip"))
.setSaveConsumer(val -> config.enabled = val) .setSaveConsumer(val -> config.enabled = val)
.setDefaultValue(DEFAULT.enabled) .setDefaultValue(DEFAULT.enabled)
.build()); .build());
category.addEntry(entryBuilder.startIntSlider(Text.translatable("zenith.config.general.quality"), config.qualityScale, 8, 50) category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.general.quality"), config.qualityScale, 8, 50)
.setTooltip(Text.translatable("zenith.config.general.quality.tooltip")) .setTooltip(Text.translatable("voxy.config.general.quality.tooltip"))
.setSaveConsumer(val -> config.qualityScale = val) .setSaveConsumer(val -> config.qualityScale = val)
.setDefaultValue(DEFAULT.qualityScale) .setDefaultValue(DEFAULT.qualityScale)
.build()); .build());
category.addEntry(entryBuilder.startIntSlider(Text.translatable("zenith.config.general.geometryBuffer"), config.geometryBufferSize, (1<<27)/8, ((1<<31)-1)/8) category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.general.geometryBuffer"), config.geometryBufferSize, (1<<27)/8, ((1<<31)-1)/8)
.setTooltip(Text.translatable("zenith.config.general.geometryBuffer.tooltip")) .setTooltip(Text.translatable("voxy.config.general.geometryBuffer.tooltip"))
.setSaveConsumer(val -> config.geometryBufferSize = val) .setSaveConsumer(val -> config.geometryBufferSize = val)
.setDefaultValue(DEFAULT.geometryBufferSize) .setDefaultValue(DEFAULT.geometryBufferSize)
.build()); .build());
category.addEntry(entryBuilder.startIntSlider(Text.translatable("zenith.config.general.maxSections"), config.maxSections, 100_000, 400_000) category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.general.maxSections"), config.maxSections, 100_000, 400_000)
.setTooltip(Text.translatable("zenith.config.general.maxSections.tooltip")) .setTooltip(Text.translatable("voxy.config.general.maxSections.tooltip"))
.setSaveConsumer(val -> config.maxSections = val) .setSaveConsumer(val -> config.maxSections = val)
.setDefaultValue(DEFAULT.maxSections) .setDefaultValue(DEFAULT.maxSections)
.build()); .build());
category.addEntry(entryBuilder.startIntSlider(Text.translatable("zenith.config.general.compression"), config.savingCompressionLevel, 1, 21) category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.general.compression"), config.savingCompressionLevel, 1, 21)
.setTooltip(Text.translatable("zenith.config.general.compression.tooltip")) .setTooltip(Text.translatable("voxy.config.general.compression.tooltip"))
.setSaveConsumer(val -> config.savingCompressionLevel = val) .setSaveConsumer(val -> config.savingCompressionLevel = val)
.setDefaultValue(DEFAULT.savingCompressionLevel) .setDefaultValue(DEFAULT.savingCompressionLevel)
.build()); .build());
} }
private static void addThreadsCategory(ConfigBuilder builder, ZenithConfig config) { private static void addThreadsCategory(ConfigBuilder builder, VoxyConfig config) {
ConfigCategory category = builder.getOrCreateCategory(Text.translatable("zenith.config.threads")); ConfigCategory category = builder.getOrCreateCategory(Text.translatable("voxy.config.threads"));
ConfigEntryBuilder entryBuilder = builder.entryBuilder(); ConfigEntryBuilder entryBuilder = builder.entryBuilder();
category.addEntry(entryBuilder.startIntSlider(Text.translatable("zenith.config.threads.ingest"), config.ingestThreads, 1, Runtime.getRuntime().availableProcessors()) category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.threads.ingest"), config.ingestThreads, 1, Runtime.getRuntime().availableProcessors())
.setTooltip(Text.translatable("zenith.config.general.ingest.tooltip")) .setTooltip(Text.translatable("voxy.config.general.ingest.tooltip"))
.setSaveConsumer(val -> config.ingestThreads = val) .setSaveConsumer(val -> config.ingestThreads = val)
.setDefaultValue(DEFAULT.ingestThreads) .setDefaultValue(DEFAULT.ingestThreads)
.build()); .build());
category.addEntry(entryBuilder.startIntSlider(Text.translatable("zenith.config.threads.saving"), config.savingThreads, 1, Runtime.getRuntime().availableProcessors()) category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.threads.saving"), config.savingThreads, 1, Runtime.getRuntime().availableProcessors())
.setTooltip(Text.translatable("zenith.config.general.saving.tooltip")) .setTooltip(Text.translatable("voxy.config.general.saving.tooltip"))
.setSaveConsumer(val -> config.savingThreads = val) .setSaveConsumer(val -> config.savingThreads = val)
.setDefaultValue(DEFAULT.savingThreads) .setDefaultValue(DEFAULT.savingThreads)
.build()); .build());
category.addEntry(entryBuilder.startIntSlider(Text.translatable("zenith.config.threads.render"), config.renderThreads, 1, Runtime.getRuntime().availableProcessors()) category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.threads.render"), config.renderThreads, 1, Runtime.getRuntime().availableProcessors())
.setTooltip(Text.translatable("zenith.config.general.render.tooltip")) .setTooltip(Text.translatable("voxy.config.general.render.tooltip"))
.setSaveConsumer(val -> config.renderThreads = val) .setSaveConsumer(val -> config.renderThreads = val)
.setDefaultValue(DEFAULT.renderThreads) .setDefaultValue(DEFAULT.renderThreads)
.build()); .build());
} }
private static void addStorageCategory(ConfigBuilder builder, ZenithConfig config) { private static void addStorageCategory(ConfigBuilder builder, VoxyConfig config) {
ConfigCategory category = builder.getOrCreateCategory(Text.translatable("zenith.config.storage")); ConfigCategory category = builder.getOrCreateCategory(Text.translatable("voxy.config.storage"));
ConfigEntryBuilder entryBuilder = builder.entryBuilder(); ConfigEntryBuilder entryBuilder = builder.entryBuilder();
//Temporary until i figure out how to do more complex multi layer configuration for storage //Temporary until i figure out how to do more complex multi layer configuration for storage
category.addEntry(entryBuilder.startStrField(Text.translatable("zenith.config.storage.path"), config.storagePath) category.addEntry(entryBuilder.startStrField(Text.translatable("voxy.config.storage.path"), config.storagePath)
.setTooltip(Text.translatable("zenith.config.storage.path.tooltip")) .setTooltip(Text.translatable("voxy.config.storage.path.tooltip"))
.setSaveConsumer(val -> config.storagePath = val) .setSaveConsumer(val -> config.storagePath = val)
.setDefaultValue(DEFAULT.storagePath) .setDefaultValue(DEFAULT.storagePath)
.build()); .build());

View File

@@ -1,11 +1,11 @@
package me.cortex.zenith.client.core; package me.cortex.voxy.client.core;
//Contains the logic to determine what is loaded and at what LoD level, dispatches render changes //Contains the logic to determine what is loaded and at what LoD level, dispatches render changes
// also determines what faces are built etc // also determines what faces are built etc
import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
import me.cortex.zenith.client.core.rendering.RenderTracker; import me.cortex.voxy.client.core.rendering.RenderTracker;
import me.cortex.zenith.client.core.util.RingUtil; import me.cortex.voxy.client.core.util.RingUtil;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
//Can use ring logic //Can use ring logic

View File

@@ -1,19 +1,18 @@
package me.cortex.zenith.client.core; package me.cortex.voxy.client.core;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import me.cortex.zenith.client.config.ZenithConfig; import me.cortex.voxy.client.config.VoxyConfig;
import me.cortex.zenith.client.core.rendering.*; import me.cortex.voxy.client.core.rendering.*;
import me.cortex.zenith.client.core.rendering.building.RenderGenerationService; import me.cortex.voxy.client.core.rendering.building.RenderGenerationService;
import me.cortex.zenith.client.core.rendering.post.PostProcessing; import me.cortex.voxy.client.core.rendering.post.PostProcessing;
import me.cortex.zenith.client.core.util.DebugUtil; import me.cortex.voxy.client.core.util.DebugUtil;
import me.cortex.zenith.common.world.WorldEngine; import me.cortex.voxy.common.world.WorldEngine;
import me.cortex.zenith.client.importers.WorldImporter; import me.cortex.voxy.client.importers.WorldImporter;
import me.cortex.zenith.common.world.storage.FragmentedStorageBackendAdaptor; import me.cortex.voxy.common.world.storage.FragmentedStorageBackendAdaptor;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.client.render.Frustum; import net.minecraft.client.render.Frustum;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryKeys;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.world.World; import net.minecraft.world.World;
@@ -48,23 +47,23 @@ public class VoxelCore {
//private final Thread shutdownThread = new Thread(this::shutdown); //private final Thread shutdownThread = new Thread(this::shutdown);
public VoxelCore() { public VoxelCore() {
System.out.println("Initializing voxel core"); System.out.println("Initializing voxy core");
//Trigger the shared index buffer loading //Trigger the shared index buffer loading
SharedIndexBuffer.INSTANCE.id(); SharedIndexBuffer.INSTANCE.id();
this.renderer = new Gl46FarWorldRenderer(ZenithConfig.CONFIG.geometryBufferSize, ZenithConfig.CONFIG.maxSections); this.renderer = new Gl46FarWorldRenderer(VoxyConfig.CONFIG.geometryBufferSize, VoxyConfig.CONFIG.maxSections);
System.out.println("Renderer initialized"); System.out.println("Renderer initialized");
this.world = new WorldEngine(new FragmentedStorageBackendAdaptor(new File(ZenithConfig.CONFIG.storagePath)), ZenithConfig.CONFIG.ingestThreads, ZenithConfig.CONFIG.savingThreads, ZenithConfig.CONFIG.savingCompressionLevel, 5);//"storagefile.db"//"ethoslab.db" this.world = new WorldEngine(new FragmentedStorageBackendAdaptor(new File(VoxyConfig.CONFIG.storagePath)), VoxyConfig.CONFIG.ingestThreads, VoxyConfig.CONFIG.savingThreads, VoxyConfig.CONFIG.savingCompressionLevel, 5);//"storagefile.db"//"ethoslab.db"
System.out.println("World engine"); System.out.println("World engine");
this.renderTracker = new RenderTracker(this.world, this.renderer); this.renderTracker = new RenderTracker(this.world, this.renderer);
this.renderGen = new RenderGenerationService(this.world, this.renderer.getModelManager(), ZenithConfig.CONFIG.renderThreads, this.renderTracker::processBuildResult); this.renderGen = new RenderGenerationService(this.world, this.renderer.getModelManager(), VoxyConfig.CONFIG.renderThreads, this.renderTracker::processBuildResult);
this.world.setDirtyCallback(this.renderTracker::sectionUpdated); this.world.setDirtyCallback(this.renderTracker::sectionUpdated);
this.renderTracker.setRenderGen(this.renderGen); this.renderTracker.setRenderGen(this.renderGen);
System.out.println("Render tracker and generator initialized"); System.out.println("Render tracker and generator initialized");
//To get to chunk scale multiply the scale by 2, the scale is after how many chunks does the lods halve //To get to chunk scale multiply the scale by 2, the scale is after how many chunks does the lods halve
this.distanceTracker = new DistanceTracker(this.renderTracker, 5, ZenithConfig.CONFIG.qualityScale); this.distanceTracker = new DistanceTracker(this.renderTracker, 5, VoxyConfig.CONFIG.qualityScale);
System.out.println("Distance tracker initialized"); System.out.println("Distance tracker initialized");
this.postProcessing = new PostProcessing(); this.postProcessing = new PostProcessing();
@@ -85,7 +84,7 @@ public class VoxelCore {
} }
//this.renderer.getModelManager().updateEntry(0, Blocks.GRASS_BLOCK.getDefaultState()); //this.renderer.getModelManager().updateEntry(0, Blocks.GRASS_BLOCK.getDefaultState());
System.out.println("Voxel core initialized"); System.out.println("Voxy core initialized");
} }
@@ -142,7 +141,7 @@ public class VoxelCore {
public void addDebugInfo(List<String> debug) { public void addDebugInfo(List<String> debug) {
debug.add(""); debug.add("");
debug.add(""); debug.add("");
debug.add("VoxelCore"); debug.add("Voxy Core");
debug.add("Ingest service tasks: " + this.world.ingestService.getTaskCount()); debug.add("Ingest service tasks: " + this.world.ingestService.getTaskCount());
debug.add("Saving service tasks: " + this.world.savingService.getTaskCount()); debug.add("Saving service tasks: " + this.world.savingService.getTaskCount());
debug.add("Render service tasks: " + this.renderGen.getTaskCount()); debug.add("Render service tasks: " + this.renderGen.getTaskCount());

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.core.gl; package me.cortex.voxy.client.core.gl;
import me.cortex.zenith.common.util.TrackedObject; import me.cortex.voxy.common.util.TrackedObject;
import static org.lwjgl.opengl.GL15.glDeleteBuffers; import static org.lwjgl.opengl.GL15.glDeleteBuffers;
import static org.lwjgl.opengl.GL44C.glBufferStorage; import static org.lwjgl.opengl.GL44C.glBufferStorage;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.core.gl; package me.cortex.voxy.client.core.gl;
import me.cortex.zenith.common.util.TrackedObject; import me.cortex.voxy.common.util.TrackedObject;
import static org.lwjgl.opengl.GL32.*; import static org.lwjgl.opengl.GL32.*;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.core.gl; package me.cortex.voxy.client.core.gl;
import me.cortex.zenith.common.util.TrackedObject; import me.cortex.voxy.common.util.TrackedObject;
import static org.lwjgl.opengl.GL45C.*; import static org.lwjgl.opengl.GL45C.*;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.core.gl; package me.cortex.voxy.client.core.gl;
import me.cortex.zenith.common.util.TrackedObject; import me.cortex.voxy.common.util.TrackedObject;
import static org.lwjgl.opengl.ARBMapBufferRange.GL_MAP_WRITE_BIT; import static org.lwjgl.opengl.ARBMapBufferRange.GL_MAP_WRITE_BIT;
import static org.lwjgl.opengl.GL15.glDeleteBuffers; import static org.lwjgl.opengl.GL15.glDeleteBuffers;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.core.gl; package me.cortex.voxy.client.core.gl;
import me.cortex.zenith.common.util.TrackedObject; import me.cortex.voxy.common.util.TrackedObject;
import static org.lwjgl.opengl.ARBFramebufferObject.glDeleteFramebuffers; import static org.lwjgl.opengl.ARBFramebufferObject.glDeleteFramebuffers;
import static org.lwjgl.opengl.ARBFramebufferObject.glGenFramebuffers; import static org.lwjgl.opengl.ARBFramebufferObject.glGenFramebuffers;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.gl.shader; package me.cortex.voxy.client.core.gl.shader;
public interface IShaderProcessor { public interface IShaderProcessor {
String process(ShaderType type, String source); String process(ShaderType type, String source);

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.core.gl.shader; package me.cortex.voxy.client.core.gl.shader;
import me.cortex.zenith.common.util.TrackedObject; import me.cortex.voxy.common.util.TrackedObject;
import org.lwjgl.opengl.GL20C; import org.lwjgl.opengl.GL20C;
import java.util.HashMap; import java.util.HashMap;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.gl.shader; package me.cortex.voxy.client.core.gl.shader;
import me.jellysquid.mods.sodium.client.gl.shader.ShaderConstants; import me.jellysquid.mods.sodium.client.gl.shader.ShaderConstants;
import me.jellysquid.mods.sodium.client.gl.shader.ShaderParser; import me.jellysquid.mods.sodium.client.gl.shader.ShaderParser;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.gl.shader; package me.cortex.voxy.client.core.gl.shader;
import static org.lwjgl.opengl.GL20.GL_FRAGMENT_SHADER; import static org.lwjgl.opengl.GL20.GL_FRAGMENT_SHADER;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.model; package me.cortex.voxy.client.core.model;
import java.util.Arrays; import java.util.Arrays;

View File

@@ -1,11 +1,11 @@
package me.cortex.zenith.client.core.model; package me.cortex.voxy.client.core.model;
import com.mojang.blaze3d.platform.GlConst; import com.mojang.blaze3d.platform.GlConst;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import me.cortex.zenith.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.GlBuffer;
import me.cortex.zenith.client.core.gl.GlTexture; import me.cortex.voxy.client.core.gl.GlTexture;
import me.cortex.zenith.client.core.rendering.util.UploadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.FluidBlock; import net.minecraft.block.FluidBlock;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
@@ -41,7 +41,6 @@ import static org.lwjgl.opengl.GL12C.GL_TEXTURE_MIN_LOD;
import static org.lwjgl.opengl.GL33.glDeleteSamplers; import static org.lwjgl.opengl.GL33.glDeleteSamplers;
import static org.lwjgl.opengl.GL33.glGenSamplers; import static org.lwjgl.opengl.GL33.glGenSamplers;
import static org.lwjgl.opengl.GL33C.glSamplerParameteri; import static org.lwjgl.opengl.GL33C.glSamplerParameteri;
import static org.lwjgl.opengl.GL45C.glGenerateTextureMipmap;
import static org.lwjgl.opengl.GL45C.glTextureSubImage2D; import static org.lwjgl.opengl.GL45C.glTextureSubImage2D;
//Manages the storage and updating of model states, textures and colours //Manages the storage and updating of model states, textures and colours

View File

@@ -1,15 +1,13 @@
package me.cortex.zenith.client.core.model; package me.cortex.voxy.client.core.model;
import com.mojang.blaze3d.platform.GlConst; import com.mojang.blaze3d.platform.GlConst;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.systems.VertexSorter; import com.mojang.blaze3d.systems.VertexSorter;
import me.cortex.zenith.client.core.gl.GlFramebuffer; import me.cortex.voxy.client.core.gl.GlFramebuffer;
import me.cortex.zenith.client.core.gl.GlTexture; import me.cortex.voxy.client.core.gl.GlTexture;
import me.cortex.zenith.client.core.gl.shader.Shader; import me.cortex.voxy.client.core.gl.shader.Shader;
import me.cortex.zenith.client.core.gl.shader.ShaderLoader; import me.cortex.voxy.client.core.gl.shader.ShaderType;
import me.cortex.zenith.client.core.gl.shader.ShaderType;
import me.jellysquid.mods.sodium.client.gl.shader.GlShader;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
@@ -18,7 +16,6 @@ import net.minecraft.client.render.*;
import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.fluid.FluidState; import net.minecraft.fluid.FluidState;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.RotationAxis;
@@ -40,8 +37,6 @@ import static org.lwjgl.opengl.ARBShaderImageLoadStore.glMemoryBarrier;
import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.GL14C.glBlendFuncSeparate; import static org.lwjgl.opengl.GL14C.glBlendFuncSeparate;
import static org.lwjgl.opengl.GL20C.glUniformMatrix4fv; import static org.lwjgl.opengl.GL20C.glUniformMatrix4fv;
import static org.lwjgl.opengl.GL20C.glUseProgram;
import static org.lwjgl.opengl.GL45C.glBlitNamedFramebuffer;
import static org.lwjgl.opengl.GL45C.glGetTextureImage; import static org.lwjgl.opengl.GL45C.glGetTextureImage;
//Builds a texture for each face of a model //Builds a texture for each face of a model
@@ -52,8 +47,8 @@ public class ModelTextureBakery {
private final GlTexture depthTex; private final GlTexture depthTex;
private final GlFramebuffer framebuffer; private final GlFramebuffer framebuffer;
private final Shader rasterShader = Shader.make() private final Shader rasterShader = Shader.make()
.add(ShaderType.VERTEX, "zenith:bakery/position_tex.vsh") .add(ShaderType.VERTEX, "voxy:bakery/position_tex.vsh")
.add(ShaderType.FRAGMENT, "zenith:bakery/position_tex.fsh") .add(ShaderType.FRAGMENT, "voxy:bakery/position_tex.fsh")
.compile(); .compile();
private static final List<MatrixStack> FACE_VIEWS = new ArrayList<>(); private static final List<MatrixStack> FACE_VIEWS = new ArrayList<>();
@@ -151,6 +146,7 @@ public class ModelTextureBakery {
renderLayer.endDrawing(); renderLayer.endDrawing();
glDisable(GL_STENCIL_TEST); glDisable(GL_STENCIL_TEST);
glDisable(GL_BLEND);
RenderSystem.setProjectionMatrix(oldProjection, VertexSorter.BY_DISTANCE); RenderSystem.setProjectionMatrix(oldProjection, VertexSorter.BY_DISTANCE);
glBindFramebuffer(GL_FRAMEBUFFER, oldFB); glBindFramebuffer(GL_FRAMEBUFFER, oldFB);

View File

@@ -1,11 +1,7 @@
package me.cortex.zenith.client.core.model; package me.cortex.voxy.client.core.model;
import me.jellysquid.mods.sodium.client.util.color.ColorSRGB; import me.jellysquid.mods.sodium.client.util.color.ColorSRGB;
import net.minecraft.util.math.ColorHelper; import net.minecraft.util.math.ColorHelper;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Unique;
import java.util.Map;
//Texturing utils to manipulate data from the model bakery //Texturing utils to manipulate data from the model bakery
public class TextureUtils { public class TextureUtils {

View File

@@ -1,14 +1,13 @@
package me.cortex.zenith.client.core.rendering; package me.cortex.voxy.client.core.rendering;
//NOTE: an idea on how to do it is so that any render section, we _keep_ aquired (yes this will be very memory intensive) //NOTE: an idea on how to do it is so that any render section, we _keep_ aquired (yes this will be very memory intensive)
// could maybe tosomething else // could maybe tosomething else
import me.cortex.zenith.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.GlBuffer;
import me.cortex.zenith.client.core.model.ModelManager; import me.cortex.voxy.client.core.model.ModelManager;
import me.cortex.zenith.client.core.rendering.building.BuiltSection; import me.cortex.voxy.client.core.rendering.building.BuiltSection;
import me.cortex.zenith.client.core.rendering.util.UploadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream;
import me.cortex.zenith.common.world.other.Mapper; import me.cortex.voxy.common.world.other.Mapper;
import net.minecraft.block.BlockState;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.client.render.Frustum; import net.minecraft.client.render.Frustum;
@@ -17,7 +16,6 @@ import org.joml.FrustumIntersection;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.ConcurrentLinkedDeque;
import static org.lwjgl.opengl.ARBMultiDrawIndirect.glMultiDrawElementsIndirect; import static org.lwjgl.opengl.ARBMultiDrawIndirect.glMultiDrawElementsIndirect;

View File

@@ -1,12 +1,12 @@
package me.cortex.zenith.client.core.rendering; package me.cortex.voxy.client.core.rendering;
import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.longs.LongArrayList;
import it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import me.cortex.zenith.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.GlBuffer;
import me.cortex.zenith.client.core.rendering.building.BuiltSection; import me.cortex.voxy.client.core.rendering.building.BuiltSection;
import me.cortex.zenith.client.core.rendering.util.BufferArena; import me.cortex.voxy.client.core.rendering.util.BufferArena;
import me.cortex.zenith.client.core.rendering.util.UploadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.ConcurrentLinkedDeque;

View File

@@ -1,21 +1,16 @@
package me.cortex.zenith.client.core.rendering; package me.cortex.voxy.client.core.rendering;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import me.cortex.zenith.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.GlBuffer;
import me.cortex.zenith.client.core.gl.shader.Shader; import me.cortex.voxy.client.core.gl.shader.Shader;
import me.cortex.zenith.client.core.gl.shader.ShaderType; import me.cortex.voxy.client.core.gl.shader.ShaderType;
import me.cortex.zenith.client.core.rendering.util.UploadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream;
import me.cortex.zenith.client.mixin.joml.AccessFrustumIntersection; import me.cortex.voxy.client.mixin.joml.AccessFrustumIntersection;
import net.minecraft.block.Blocks;
import net.minecraft.block.WallMountedBlock;
import net.minecraft.block.enums.BlockFace;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Direction;
import org.joml.Matrix4f; import org.joml.Matrix4f;
import org.joml.Vector3f; import org.joml.Vector3f;
import org.lwjgl.opengl.ARBIndirectParameters;
import org.lwjgl.opengl.GL11C; import org.lwjgl.opengl.GL11C;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
@@ -39,19 +34,19 @@ import static org.lwjgl.opengl.GL45C.glClearNamedBufferData;
public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer { public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer {
private final Shader commandGen = Shader.make() private final Shader commandGen = Shader.make()
.add(ShaderType.COMPUTE, "zenith:lod/gl46/cmdgen.comp") .add(ShaderType.COMPUTE, "voxy:lod/gl46/cmdgen.comp")
.compile(); .compile();
private final Shader lodShader = Shader.make() private final Shader lodShader = Shader.make()
.add(ShaderType.VERTEX, "zenith:lod/gl46/quads.vert") .add(ShaderType.VERTEX, "voxy:lod/gl46/quads.vert")
.add(ShaderType.FRAGMENT, "zenith:lod/gl46/quads.frag") .add(ShaderType.FRAGMENT, "voxy:lod/gl46/quads.frag")
.compile(); .compile();
//TODO: Note the cull shader needs a different element array since its rastering cubes not quads //TODO: Note the cull shader needs a different element array since its rastering cubes not quads
private final Shader cullShader = Shader.make() private final Shader cullShader = Shader.make()
.add(ShaderType.VERTEX, "zenith:lod/gl46/cull/raster.vert") .add(ShaderType.VERTEX, "voxy:lod/gl46/cull/raster.vert")
.add(ShaderType.FRAGMENT, "zenith:lod/gl46/cull/raster.frag") .add(ShaderType.FRAGMENT, "voxy:lod/gl46/cull/raster.frag")
.compile(); .compile();
private final GlBuffer glCommandBuffer; private final GlBuffer glCommandBuffer;

View File

@@ -1,9 +1,9 @@
package me.cortex.zenith.client.core.rendering; package me.cortex.voxy.client.core.rendering;
import me.cortex.zenith.client.core.rendering.building.BuiltSection; import me.cortex.voxy.client.core.rendering.building.BuiltSection;
import me.cortex.zenith.client.core.rendering.building.RenderGenerationService; import me.cortex.voxy.client.core.rendering.building.RenderGenerationService;
import me.cortex.zenith.common.world.WorldEngine; import me.cortex.voxy.common.world.WorldEngine;
import me.cortex.zenith.common.world.WorldSection; import me.cortex.voxy.common.world.WorldSection;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;

View File

@@ -1,9 +1,9 @@
package me.cortex.zenith.client.core.rendering; package me.cortex.voxy.client.core.rendering;
import me.cortex.zenith.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.GlBuffer;
import me.cortex.zenith.client.core.rendering.util.UploadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream;
import me.cortex.zenith.client.core.util.IndexUtil; import me.cortex.voxy.client.core.util.IndexUtil;
import me.cortex.zenith.common.util.MemoryBuffer; import me.cortex.voxy.common.util.MemoryBuffer;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;

View File

@@ -1,9 +1,8 @@
package me.cortex.zenith.client.core.rendering.building; package me.cortex.voxy.client.core.rendering.building;
import me.cortex.zenith.common.util.MemoryBuffer; import me.cortex.voxy.common.util.MemoryBuffer;
import java.util.Arrays; import java.util.Arrays;
import java.util.Objects;
//TODO: also have an AABB size stored //TODO: also have an AABB size stored
public final class BuiltSection { public final class BuiltSection {

View File

@@ -1,13 +1,7 @@
package me.cortex.zenith.client.core.rendering.building; package me.cortex.voxy.client.core.rendering.building;
import me.cortex.zenith.client.core.model.ModelManager; import me.cortex.voxy.client.core.util.Mesher2D;
import me.cortex.zenith.client.core.rendering.GeometryManager;
import me.cortex.zenith.client.core.util.Mesher2D;
import me.cortex.zenith.common.world.other.Mapper;
import net.minecraft.client.color.block.BlockColors;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.math.BlockPos;
public class QuadEncoder { public class QuadEncoder {

View File

@@ -1,14 +1,13 @@
package me.cortex.zenith.client.core.rendering.building; package me.cortex.voxy.client.core.rendering.building;
import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.longs.LongArrayList;
import me.cortex.zenith.client.core.model.ModelManager; import me.cortex.voxy.client.core.model.ModelManager;
import me.cortex.zenith.client.core.util.Mesher2D; import me.cortex.voxy.client.core.util.Mesher2D;
import me.cortex.zenith.common.util.MemoryBuffer; import me.cortex.voxy.common.util.MemoryBuffer;
import me.cortex.zenith.common.world.WorldEngine; import me.cortex.voxy.common.world.WorldEngine;
import me.cortex.zenith.common.world.WorldSection; import me.cortex.voxy.common.world.WorldSection;
import me.cortex.zenith.common.world.other.Mapper; import me.cortex.voxy.common.world.other.Mapper;
import net.minecraft.block.FluidBlock; import net.minecraft.block.FluidBlock;
import net.minecraft.client.MinecraftClient;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;

View File

@@ -1,9 +1,9 @@
package me.cortex.zenith.client.core.rendering.building; package me.cortex.voxy.client.core.rendering.building;
import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap;
import me.cortex.zenith.client.core.model.ModelManager; import me.cortex.voxy.client.core.model.ModelManager;
import me.cortex.zenith.common.world.WorldEngine; import me.cortex.voxy.common.world.WorldEngine;
import me.cortex.zenith.common.world.WorldSection; import me.cortex.voxy.common.world.WorldSection;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;

View File

@@ -1,8 +1,7 @@
package me.cortex.zenith.client.core.rendering.post; package me.cortex.voxy.client.core.rendering.post;
import me.cortex.zenith.client.core.gl.shader.Shader; import me.cortex.voxy.client.core.gl.shader.Shader;
import me.cortex.zenith.client.core.gl.shader.ShaderType; import me.cortex.voxy.client.core.gl.shader.ShaderType;
import net.minecraft.util.Identifier;
import static org.lwjgl.opengl.GL11C.GL_TRIANGLES; import static org.lwjgl.opengl.GL11C.GL_TRIANGLES;
import static org.lwjgl.opengl.GL11C.glDrawArrays; import static org.lwjgl.opengl.GL11C.glDrawArrays;
@@ -15,7 +14,7 @@ public class FullscreenBlit {
private final Shader shader; private final Shader shader;
public FullscreenBlit(String fragId) { public FullscreenBlit(String fragId) {
this.shader = Shader.make() this.shader = Shader.make()
.add(ShaderType.VERTEX, "zenith:post/fullscreen.vert") .add(ShaderType.VERTEX, "voxy:post/fullscreen.vert")
.add(ShaderType.FRAGMENT, fragId) .add(ShaderType.FRAGMENT, fragId)
.compile(); .compile();
} }

View File

@@ -1,20 +1,15 @@
package me.cortex.zenith.client.core.rendering.post; package me.cortex.voxy.client.core.rendering.post;
import me.cortex.zenith.client.core.gl.GlFramebuffer; import me.cortex.voxy.client.core.gl.GlFramebuffer;
import me.cortex.zenith.client.core.gl.GlTexture; import me.cortex.voxy.client.core.gl.GlTexture;
import me.cortex.zenith.client.core.gl.shader.Shader; import me.cortex.voxy.client.core.gl.shader.Shader;
import me.cortex.zenith.client.core.gl.shader.ShaderType; import me.cortex.voxy.client.core.gl.shader.ShaderType;
import org.lwjgl.opengl.GL11C;
import static org.lwjgl.opengl.ARBFramebufferObject.*; import static org.lwjgl.opengl.ARBFramebufferObject.*;
import static org.lwjgl.opengl.ARBShaderImageLoadStore.glBindImageTexture;
import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.GL13.*; import static org.lwjgl.opengl.GL13.*;
import static org.lwjgl.opengl.GL15C.GL_READ_WRITE;
import static org.lwjgl.opengl.GL20C.glStencilFuncSeparate;
import static org.lwjgl.opengl.GL44C.glBindImageTextures; import static org.lwjgl.opengl.GL44C.glBindImageTextures;
import static org.lwjgl.opengl.GL45C.glBlitNamedFramebuffer; import static org.lwjgl.opengl.GL45C.glBlitNamedFramebuffer;
import static org.lwjgl.opengl.GL45C.glTextureBarrier;
public class PostProcessing { public class PostProcessing {
private final GlFramebuffer framebuffer; private final GlFramebuffer framebuffer;
@@ -23,12 +18,8 @@ public class PostProcessing {
private GlTexture colour; private GlTexture colour;
private GlTexture depthStencil; private GlTexture depthStencil;
private final Shader ssao = Shader.make() private final FullscreenBlit emptyBlit = new FullscreenBlit("voxy:post/noop.frag");
.add(ShaderType.COMPUTE, "zenith:lod/ssao/ssao.comp") private final FullscreenBlit blitTexture = new FullscreenBlit("voxy:post/blit_texture_cutout.frag");
.compile();
private final FullscreenBlit emptyBlit = new FullscreenBlit("zenith:post/noop.frag");
private final FullscreenBlit blitTexture = new FullscreenBlit("zenith:post/blit_texture_cutout.frag");
public PostProcessing() { public PostProcessing() {
this.framebuffer = new GlFramebuffer(); this.framebuffer = new GlFramebuffer();
@@ -58,7 +49,6 @@ public class PostProcessing {
this.framebuffer.free(); this.framebuffer.free();
if (this.colour != null) this.colour.free(); if (this.colour != null) this.colour.free();
if (this.depthStencil != null) this.depthStencil.free(); if (this.depthStencil != null) this.depthStencil.free();
this.ssao.free();
this.emptyBlit.delete(); this.emptyBlit.delete();
this.blitTexture.delete(); this.blitTexture.delete();
} }
@@ -70,7 +60,7 @@ public class PostProcessing {
glBlitNamedFramebuffer(sourceFB, this.framebuffer.id, 0,0, width, height, 0,0, width, height, GL_DEPTH_BUFFER_BIT, GL_NEAREST); glBlitNamedFramebuffer(sourceFB, this.framebuffer.id, 0,0, width, height, 0,0, width, height, GL_DEPTH_BUFFER_BIT, GL_NEAREST);
//TODO: need to blit a fullscreen quad to generate a stencil mask of where the vanilla terrain is/isnt //TODO: need to blit a fullscreen quad to generate a stencil mask of where the vanilla terrain is/isnt
// then when rastering zenith terrain, only render to non masked areas // then when rastering voxy terrain, only render to non masked areas
//Hell once the stencil mask is computed, could clear the depth buffer and use a different near/far plane //Hell once the stencil mask is computed, could clear the depth buffer and use a different near/far plane
@@ -92,7 +82,7 @@ public class PostProcessing {
glClear(GL_DEPTH_BUFFER_BIT); glClear(GL_DEPTH_BUFFER_BIT);
//Make zenith terrain render only where there isnt mc terrain //Make voxy terrain render only where there isnt mc terrain
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
glStencilFunc(GL_EQUAL, 1, 0xFF); glStencilFunc(GL_EQUAL, 1, 0xFF);

View File

@@ -1,8 +1,8 @@
package me.cortex.zenith.client.core.rendering.util; package me.cortex.voxy.client.core.rendering.util;
import me.cortex.zenith.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.GlBuffer;
import me.cortex.zenith.client.core.util.AllocationArena; import me.cortex.voxy.client.core.util.AllocationArena;
import me.cortex.zenith.common.util.MemoryBuffer; import me.cortex.voxy.common.util.MemoryBuffer;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
public class BufferArena { public class BufferArena {

View File

@@ -1,15 +1,15 @@
package me.cortex.zenith.client.core.rendering.util; package me.cortex.voxy.client.core.rendering.util;
import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.longs.LongArrayList;
import me.cortex.zenith.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.GlBuffer;
import me.cortex.zenith.client.core.gl.GlFence; import me.cortex.voxy.client.core.gl.GlFence;
import me.cortex.zenith.client.core.gl.GlPersistentMappedBuffer; import me.cortex.voxy.client.core.gl.GlPersistentMappedBuffer;
import me.cortex.zenith.client.core.util.AllocationArena; import me.cortex.voxy.client.core.util.AllocationArena;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.Deque; import java.util.Deque;
import static me.cortex.zenith.client.core.util.AllocationArena.SIZE_LIMIT; import static me.cortex.voxy.client.core.util.AllocationArena.SIZE_LIMIT;
import static org.lwjgl.opengl.ARBDirectStateAccess.glCopyNamedBufferSubData; import static org.lwjgl.opengl.ARBDirectStateAccess.glCopyNamedBufferSubData;
import static org.lwjgl.opengl.ARBDirectStateAccess.glFlushMappedNamedBufferRange; import static org.lwjgl.opengl.ARBDirectStateAccess.glFlushMappedNamedBufferRange;
import static org.lwjgl.opengl.ARBMapBufferRange.*; import static org.lwjgl.opengl.ARBMapBufferRange.*;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.util; package me.cortex.voxy.client.core.util;
import it.unimi.dsi.fastutil.longs.LongRBTreeSet; import it.unimi.dsi.fastutil.longs.LongRBTreeSet;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.util; package me.cortex.voxy.client.core.util;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.util; package me.cortex.voxy.client.core.util;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.render.*; import net.minecraft.client.render.*;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.core.util; package me.cortex.voxy.client.core.util;
import me.cortex.zenith.common.util.MemoryBuffer; import me.cortex.voxy.common.util.MemoryBuffer;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
public class IndexUtil { public class IndexUtil {

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.util; package me.cortex.voxy.client.core.util;
import java.util.Arrays; import java.util.Arrays;
import java.util.BitSet; import java.util.BitSet;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.core.util; package me.cortex.voxy.client.core.util;
import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntOpenHashSet; import it.unimi.dsi.fastutil.ints.IntOpenHashSet;

View File

@@ -1,10 +1,10 @@
package me.cortex.zenith.client.importers; package me.cortex.voxy.client.importers;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import me.cortex.zenith.client.core.util.ByteBufferBackedInputStream; import me.cortex.voxy.client.core.util.ByteBufferBackedInputStream;
import me.cortex.zenith.common.voxelization.VoxelizedSection; import me.cortex.voxy.common.voxelization.VoxelizedSection;
import me.cortex.zenith.common.voxelization.WorldConversionFactory; import me.cortex.voxy.common.voxelization.WorldConversionFactory;
import me.cortex.zenith.common.world.WorldEngine; import me.cortex.voxy.common.world.WorldEngine;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.mixin.joml; package me.cortex.voxy.client.mixin.joml;
import org.joml.FrustumIntersection; import org.joml.FrustumIntersection;
import org.joml.Vector4f; import org.joml.Vector4f;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.mixin.minecraft; package me.cortex.voxy.client.mixin.minecraft;
import net.minecraft.client.render.BackgroundRenderer; import net.minecraft.client.render.BackgroundRenderer;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.mixin.minecraft; package me.cortex.voxy.client.mixin.minecraft;
import me.cortex.zenith.client.IGetVoxelCore; import me.cortex.voxy.client.IGetVoxelCore;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.world.ClientChunkManager; import net.minecraft.client.world.ClientChunkManager;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.client.mixin.minecraft; package me.cortex.voxy.client.mixin.minecraft;
import me.cortex.zenith.client.IGetVoxelCore; import me.cortex.voxy.client.IGetVoxelCore;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.DebugHud; import net.minecraft.client.gui.hud.DebugHud;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.mixin.minecraft; package me.cortex.voxy.client.mixin.minecraft;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.mixin.minecraft; package me.cortex.voxy.client.mixin.minecraft;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.RunArgs; import net.minecraft.client.RunArgs;

View File

@@ -1,8 +1,8 @@
package me.cortex.zenith.client.mixin.minecraft; package me.cortex.voxy.client.mixin.minecraft;
import me.cortex.zenith.client.IGetVoxelCore; import me.cortex.voxy.client.IGetVoxelCore;
import me.cortex.zenith.client.config.ZenithConfig; import me.cortex.voxy.client.config.VoxyConfig;
import me.cortex.zenith.client.core.VoxelCore; import me.cortex.voxy.client.core.VoxelCore;
import net.minecraft.client.render.*; import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
@@ -68,7 +68,7 @@ public abstract class MixinWorldRenderer implements IGetVoxelCore {
this.core.shutdown(); this.core.shutdown();
this.core = null; this.core = null;
} }
if (ZenithConfig.CONFIG.enabled) { if (VoxyConfig.CONFIG.enabled) {
this.core = new VoxelCore(); this.core = new VoxelCore();
} }
} }
@@ -79,7 +79,7 @@ public abstract class MixinWorldRenderer implements IGetVoxelCore {
this.core.shutdown(); this.core.shutdown();
this.core = null; this.core = null;
} }
if (this.world != null && ZenithConfig.CONFIG.enabled) { if (this.world != null && VoxyConfig.CONFIG.enabled) {
this.core = new VoxelCore(); this.core = new VoxelCore();
} }
} }

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.mixin.sodium; package me.cortex.voxy.client.mixin.sodium;
import me.jellysquid.mods.sodium.client.render.chunk.occlusion.OcclusionCuller; import me.jellysquid.mods.sodium.client.render.chunk.occlusion.OcclusionCuller;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;

View File

@@ -1,13 +1,11 @@
package me.cortex.zenith.client.mixin.sodium; package me.cortex.voxy.client.mixin.sodium;
import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer; import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer;
import me.jellysquid.mods.sodium.client.render.chunk.occlusion.OcclusionCuller;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(value = SodiumWorldRenderer.class, remap = false) @Mixin(value = SodiumWorldRenderer.class, remap = false)

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.terrain; package me.cortex.voxy.client.terrain;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.client.terrain; package me.cortex.voxy.client.terrain;
import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.CommandDispatcher;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;

View File

@@ -1,10 +1,10 @@
package me.cortex.zenith.client.terrain; package me.cortex.voxy.client.terrain;
import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.context.CommandContext;
import me.cortex.zenith.client.IGetVoxelCore; import me.cortex.voxy.client.IGetVoxelCore;
import me.cortex.zenith.client.importers.WorldImporter; import me.cortex.voxy.client.importers.WorldImporter;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.util; package me.cortex.voxy.common.util;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.util; package me.cortex.voxy.common.util;
import java.lang.ref.Cleaner; import java.lang.ref.Cleaner;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.util; package me.cortex.voxy.common.util;
public class VolatileHolder <T> { public class VolatileHolder <T> {
public volatile T obj; public volatile T obj;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.voxelization; package me.cortex.voxy.common.voxelization;
public interface I3dSupplier <T> { public interface I3dSupplier <T> {
T supply(int x, int y, int z); T supply(int x, int y, int z);

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.voxelization; package me.cortex.voxy.common.voxelization;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;

View File

@@ -1,7 +1,7 @@
package me.cortex.zenith.common.voxelization; package me.cortex.voxy.common.voxelization;
import me.cortex.zenith.common.world.other.Mapper; import me.cortex.voxy.common.world.other.Mapper;
//16x16x16 block section //16x16x16 block section
public class VoxelizedSection { public class VoxelizedSection {

View File

@@ -1,7 +1,7 @@
package me.cortex.zenith.common.voxelization; package me.cortex.voxy.common.voxelization;
import me.cortex.zenith.common.world.other.Mipper; import me.cortex.voxy.common.world.other.Mipper;
import me.cortex.zenith.common.world.other.Mapper; import me.cortex.voxy.common.world.other.Mapper;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome;

View File

@@ -1,7 +1,7 @@
package me.cortex.zenith.common.world; package me.cortex.voxy.common.world;
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
import me.cortex.zenith.common.util.VolatileHolder; import me.cortex.voxy.common.util.VolatileHolder;
public class ActiveSectionTracker { public class ActiveSectionTracker {
//Deserialize into the supplied section, returns true on success, false on failure //Deserialize into the supplied section, returns true on success, false on failure

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.world; package me.cortex.voxy.common.world;
import it.unimi.dsi.fastutil.longs.Long2ShortOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ShortOpenHashMap;
import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.longs.LongArrayList;

View File

@@ -1,10 +1,10 @@
package me.cortex.zenith.common.world; package me.cortex.voxy.common.world;
import me.cortex.zenith.common.voxelization.VoxelizedSection; import me.cortex.voxy.common.voxelization.VoxelizedSection;
import me.cortex.zenith.common.world.other.Mapper; import me.cortex.voxy.common.world.other.Mapper;
import me.cortex.zenith.common.world.service.SectionSavingService; import me.cortex.voxy.common.world.service.SectionSavingService;
import me.cortex.zenith.common.world.service.VoxelIngestService; import me.cortex.voxy.common.world.service.VoxelIngestService;
import me.cortex.zenith.common.world.storage.StorageBackend; import me.cortex.voxy.common.world.storage.StorageBackend;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
import java.util.Arrays; import java.util.Arrays;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.world; package me.cortex.voxy.common.world;
import java.util.Arrays; import java.util.Arrays;

View File

@@ -1,7 +1,7 @@
package me.cortex.zenith.common.world.other; package me.cortex.voxy.common.world.other;
import it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import me.cortex.zenith.common.world.storage.StorageBackend; import me.cortex.voxy.common.world.storage.StorageBackend;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;

View File

@@ -1,6 +1,6 @@
package me.cortex.zenith.common.world.other; package me.cortex.voxy.common.world.other;
import static me.cortex.zenith.common.world.other.Mapper.withLight; import static me.cortex.voxy.common.world.other.Mapper.withLight;
//Mipper for data //Mipper for data
public class Mipper { public class Mipper {

View File

@@ -1,8 +1,8 @@
package me.cortex.zenith.common.world.service; package me.cortex.voxy.common.world.service;
import me.cortex.zenith.common.world.SaveLoadSystem; import me.cortex.voxy.common.world.SaveLoadSystem;
import me.cortex.zenith.common.world.WorldEngine; import me.cortex.voxy.common.world.WorldEngine;
import me.cortex.zenith.common.world.WorldSection; import me.cortex.voxy.common.world.WorldSection;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.ConcurrentLinkedDeque;

View File

@@ -1,9 +1,9 @@
package me.cortex.zenith.common.world.service; package me.cortex.voxy.common.world.service;
import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.Pair;
import me.cortex.zenith.common.voxelization.VoxelizedSection; import me.cortex.voxy.common.voxelization.VoxelizedSection;
import me.cortex.zenith.common.voxelization.WorldConversionFactory; import me.cortex.voxy.common.voxelization.WorldConversionFactory;
import me.cortex.zenith.common.world.WorldEngine; import me.cortex.voxy.common.world.WorldEngine;
import net.minecraft.util.math.ChunkSectionPos; import net.minecraft.util.math.ChunkSectionPos;
import net.minecraft.world.LightType; import net.minecraft.world.LightType;
import net.minecraft.world.chunk.ChunkNibbleArray; import net.minecraft.world.chunk.ChunkNibbleArray;

View File

@@ -1,10 +1,9 @@
package me.cortex.zenith.common.world.storage; package me.cortex.voxy.common.world.storage;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.ints.Int2ShortOpenHashMap;
import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import me.cortex.zenith.common.world.storage.lmdb.LMDBStorageBackend; import me.cortex.voxy.common.world.storage.lmdb.LMDBStorageBackend;
import net.minecraft.util.math.random.RandomSeed; import net.minecraft.util.math.random.RandomSeed;
import java.io.File; import java.io.File;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.world.storage; package me.cortex.voxy.common.world.storage;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;

View File

@@ -1,8 +1,8 @@
package me.cortex.zenith.common.world.storage.lmdb; package me.cortex.voxy.common.world.storage.lmdb;
import org.lwjgl.util.lmdb.MDBVal; import org.lwjgl.util.lmdb.MDBVal;
import static me.cortex.zenith.common.world.storage.lmdb.LMDBInterface.E; import static me.cortex.voxy.common.world.storage.lmdb.LMDBInterface.E;
import static org.lwjgl.util.lmdb.LMDB.*; import static org.lwjgl.util.lmdb.LMDB.*;
public class Cursor implements AutoCloseable { public class Cursor implements AutoCloseable {

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.world.storage.lmdb; package me.cortex.voxy.common.world.storage.lmdb;
import org.lwjgl.PointerBuffer; import org.lwjgl.PointerBuffer;
import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryStack;

View File

@@ -1,7 +1,7 @@
package me.cortex.zenith.common.world.storage.lmdb; package me.cortex.voxy.common.world.storage.lmdb;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import me.cortex.zenith.common.world.storage.StorageBackend; import me.cortex.voxy.common.world.storage.StorageBackend;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
import org.lwjgl.util.lmdb.MDBVal; import org.lwjgl.util.lmdb.MDBVal;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.world.storage.lmdb; package me.cortex.voxy.common.world.storage.lmdb;
import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryStack;

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.world.storage.lmdb; package me.cortex.voxy.common.world.storage.lmdb;
public interface TransactionWrappedCallback<T> { public interface TransactionWrappedCallback<T> {
T exec(TransactionWrapper wrapper); T exec(TransactionWrapper wrapper);

View File

@@ -1,4 +1,4 @@
package me.cortex.zenith.common.world.storage.lmdb; package me.cortex.voxy.common.world.storage.lmdb;
import org.lwjgl.PointerBuffer; import org.lwjgl.PointerBuffer;
import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryStack;
@@ -6,7 +6,7 @@ import org.lwjgl.util.lmdb.MDBVal;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import static me.cortex.zenith.common.world.storage.lmdb.LMDBInterface.E; import static me.cortex.voxy.common.world.storage.lmdb.LMDBInterface.E;
import static org.lwjgl.system.MemoryStack.stackPush; import static org.lwjgl.system.MemoryStack.stackPush;
import static org.lwjgl.util.lmdb.LMDB.*; import static org.lwjgl.util.lmdb.LMDB.*;

View File

@@ -3,10 +3,10 @@
layout(local_size_x = 128, local_size_y = 1, local_size_x = 1) in; layout(local_size_x = 128, local_size_y = 1, local_size_x = 1) in;
#import <zenith:lod/gl46/quad_format.glsl> #import <voxy:lod/gl46/quad_format.glsl>
#import <zenith:lod/gl46/bindings.glsl> #import <voxy:lod/gl46/bindings.glsl>
#import <zenith:lod/gl46/frustum.glsl> #import <voxy:lod/gl46/frustum.glsl>
#import <zenith:lod/gl46/section.glsl> #import <voxy:lod/gl46/section.glsl>
#line 11 #line 11
//https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt //https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt

View File

@@ -1,7 +1,7 @@
#version 460 core #version 460 core
#extension GL_ARB_gpu_shader_int64 : enable #extension GL_ARB_gpu_shader_int64 : enable
#define VISIBILITY_ACCESS writeonly #define VISIBILITY_ACCESS writeonly
#import <zenith:lod/gl46/bindings.glsl> #import <voxy:lod/gl46/bindings.glsl>
layout(early_fragment_tests) in; layout(early_fragment_tests) in;
flat in uint id; flat in uint id;

View File

@@ -1,8 +1,8 @@
#version 460 core #version 460 core
#extension GL_ARB_gpu_shader_int64 : enable #extension GL_ARB_gpu_shader_int64 : enable
#define VISIBILITY_ACCESS writeonly #define VISIBILITY_ACCESS writeonly
#import <zenith:lod/gl46/bindings.glsl> #import <voxy:lod/gl46/bindings.glsl>
#import <zenith:lod/gl46/section.glsl> #import <voxy:lod/gl46/section.glsl>
flat out uint id; flat out uint id;
flat out uint value; flat out uint value;

View File

@@ -1,9 +1,9 @@
#version 460 core #version 460 core
#extension GL_ARB_gpu_shader_int64 : enable #extension GL_ARB_gpu_shader_int64 : enable
#import <zenith:lod/gl46/quad_format.glsl> #import <voxy:lod/gl46/quad_format.glsl>
#import <zenith:lod/gl46/bindings.glsl> #import <voxy:lod/gl46/bindings.glsl>
#import <zenith:lod/gl46/block_model.glsl> #import <voxy:lod/gl46/block_model.glsl>
#line 8 #line 8
layout(location = 0) out vec2 uv; layout(location = 0) out vec2 uv;

View File

@@ -1,5 +0,0 @@
layout(binding=0) uniform sampler2D colourTexture;
in vec2 uv;
void main() {
gl_Colour = texture(colourTexture, uv);
}

View File

@@ -1,4 +0,0 @@
void main() {
gl_Position =
}

View File

@@ -1,11 +0,0 @@
#version 460
layout(local_size_x = 32, local_size_y = 32, local_size_x = 1) in;
layout(binding=0,rgba8) restrict uniform image2D colourTexture;
layout(binding=1) uniform sampler2D depthTexture;
void main() {
float d = texture2D(depthTexture, vec2(gl_GlobalInvocationID.xy)/vec2(1024)).x;
d = 1/d;
d = d/2;
imageStore(colourTexture, ivec2(gl_GlobalInvocationID.xy), vec4(d,d,d,1));
}

Some files were not shown because too many files have changed in this diff Show More