More work
This commit is contained in:
@@ -15,7 +15,6 @@ 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.entity.boss.BossBar;
|
import net.minecraft.entity.boss.BossBar;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
@@ -53,7 +52,6 @@ public class VoxelCore {
|
|||||||
private final WorldEngine world;
|
private final WorldEngine world;
|
||||||
|
|
||||||
private final RenderService renderer;
|
private final RenderService renderer;
|
||||||
private final ViewportSelector viewportSelector;
|
|
||||||
private final PostProcessing postProcessing;
|
private final PostProcessing postProcessing;
|
||||||
|
|
||||||
//private final Thread shutdownThread = new Thread(this::shutdown);
|
//private final Thread shutdownThread = new Thread(this::shutdown);
|
||||||
@@ -70,7 +68,6 @@ public class VoxelCore {
|
|||||||
|
|
||||||
this.renderer = new RenderService(this.world);
|
this.renderer = new RenderService(this.world);
|
||||||
System.out.println("Using " + this.renderer.getClass().getSimpleName());
|
System.out.println("Using " + this.renderer.getClass().getSimpleName());
|
||||||
this.viewportSelector = new ViewportSelector<>(this.renderer::createViewport);
|
|
||||||
this.postProcessing = new PostProcessing();
|
this.postProcessing = new PostProcessing();
|
||||||
|
|
||||||
System.out.println("Voxy core initialized");
|
System.out.println("Voxy core initialized");
|
||||||
@@ -116,7 +113,7 @@ public class VoxelCore {
|
|||||||
|
|
||||||
var projection = computeProjectionMat();
|
var projection = computeProjectionMat();
|
||||||
|
|
||||||
var viewport = this.viewportSelector.getViewport();
|
var viewport = this.renderer.getViewport();
|
||||||
viewport
|
viewport
|
||||||
.setProjection(projection)
|
.setProjection(projection)
|
||||||
.setModelView(matrices.peek().getPositionMatrix())
|
.setModelView(matrices.peek().getPositionMatrix())
|
||||||
@@ -171,7 +168,7 @@ public class VoxelCore {
|
|||||||
try {this.importer.shutdown();this.importer = null;} catch (Exception e) {e.printStackTrace();}
|
try {this.importer.shutdown();this.importer = null;} catch (Exception e) {e.printStackTrace();}
|
||||||
}
|
}
|
||||||
System.out.println("Shutting down rendering");
|
System.out.println("Shutting down rendering");
|
||||||
try {this.renderer.shutdown(); this.viewportSelector.free();} catch (Exception e) {e.printStackTrace();}
|
try {this.renderer.shutdown();} catch (Exception e) {e.printStackTrace();}
|
||||||
System.out.println("Shutting down post processor");
|
System.out.println("Shutting down post processor");
|
||||||
if (this.postProcessing!=null){try {this.postProcessing.shutdown();} catch (Exception e) {e.printStackTrace();}}
|
if (this.postProcessing!=null){try {this.postProcessing.shutdown();} catch (Exception e) {e.printStackTrace();}}
|
||||||
System.out.println("Shutting down world engine");
|
System.out.println("Shutting down world engine");
|
||||||
|
|||||||
@@ -131,8 +131,8 @@ public class BakedBlockEntityModel {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var renderer = MinecraftClient.getInstance().getBlockEntityRenderDispatcher().get(entity);
|
var renderer = MinecraftClient.getInstance().getBlockEntityRenderDispatcher().get(entity);
|
||||||
if (renderer != null) {
|
|
||||||
entity.setWorld(MinecraftClient.getInstance().world);
|
entity.setWorld(MinecraftClient.getInstance().world);
|
||||||
|
if (renderer != null) {
|
||||||
try {
|
try {
|
||||||
renderer.render(entity, 0.0f, new MatrixStack(), layer->map.computeIfAbsent(layer, BakedVertices::new), 0, 0);
|
renderer.render(entity, 0.0f, new MatrixStack(), layer->map.computeIfAbsent(layer, BakedVertices::new), 0, 0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -4,18 +4,27 @@ import me.cortex.voxy.client.config.VoxyConfig;
|
|||||||
import me.cortex.voxy.client.core.model.ModelBakerySubsystem;
|
import me.cortex.voxy.client.core.model.ModelBakerySubsystem;
|
||||||
import me.cortex.voxy.client.core.rendering.building.BuiltSection;
|
import me.cortex.voxy.client.core.rendering.building.BuiltSection;
|
||||||
import me.cortex.voxy.client.core.rendering.building.RenderGenerationService;
|
import me.cortex.voxy.client.core.rendering.building.RenderGenerationService;
|
||||||
|
import me.cortex.voxy.client.core.rendering.section.AbstractSectionRenderer;
|
||||||
|
import me.cortex.voxy.client.core.rendering.section.MDICSectionRenderer;
|
||||||
import me.cortex.voxy.common.world.WorldEngine;
|
import me.cortex.voxy.common.world.WorldEngine;
|
||||||
import net.minecraft.client.render.Camera;
|
import net.minecraft.client.render.Camera;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class RenderService {
|
public class RenderService {
|
||||||
|
private final ViewportSelector<?> viewportSelector;
|
||||||
|
private final AbstractSectionRenderer sectionRenderer;
|
||||||
private final ModelBakerySubsystem modelService;
|
private final ModelBakerySubsystem modelService;
|
||||||
private final RenderGenerationService renderGen;
|
private final RenderGenerationService renderGen;
|
||||||
|
|
||||||
public RenderService(WorldEngine world) {
|
public RenderService(WorldEngine world) {
|
||||||
this.modelService = new ModelBakerySubsystem(world.getMapper());
|
this.modelService = new ModelBakerySubsystem(world.getMapper());
|
||||||
|
this.sectionRenderer = new MDICSectionRenderer();
|
||||||
this.renderGen = new RenderGenerationService(world, this.modelService, VoxyConfig.CONFIG.renderThreads, this::consumeRenderBuildResult, false);
|
this.renderGen = new RenderGenerationService(world, this.modelService, VoxyConfig.CONFIG.renderThreads, this::consumeRenderBuildResult, false);
|
||||||
|
|
||||||
|
this.viewportSelector = new ViewportSelector<>(this.sectionRenderer::createViewport);
|
||||||
|
|
||||||
|
|
||||||
for(int x = -200; x<=200;x++) {
|
for(int x = -200; x<=200;x++) {
|
||||||
for (int z = -200; z <= 200; z++) {
|
for (int z = -200; z <= 200; z++) {
|
||||||
for (int y = -3; y <= 3; y++) {
|
for (int y = -3; y <= 3; y++) {
|
||||||
@@ -53,15 +62,13 @@ public class RenderService {
|
|||||||
this.renderGen.addDebugData(debug);
|
this.renderGen.addDebugData(debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Viewport<?> createViewport() {
|
|
||||||
return new RenderServiceViewport();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void shutdown() {
|
public void shutdown() {
|
||||||
this.modelService.shutdown();
|
this.modelService.shutdown();
|
||||||
this.renderGen.shutdown();
|
this.renderGen.shutdown();
|
||||||
|
this.viewportSelector.free();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Viewport<?> getViewport() {
|
||||||
|
return this.viewportSelector.getViewport();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
package me.cortex.voxy.client.core.rendering;
|
|
||||||
|
|
||||||
import me.cortex.voxy.client.core.gl.GlBuffer;
|
|
||||||
|
|
||||||
public class RenderServiceViewport extends Viewport<RenderServiceViewport> {
|
|
||||||
@Override
|
|
||||||
protected void delete0() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package me.cortex.voxy.client.core;
|
package me.cortex.voxy.client.core.rendering;
|
||||||
|
|
||||||
import me.cortex.voxy.client.core.rendering.Viewport;
|
import me.cortex.voxy.client.core.rendering.Viewport;
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
@@ -2,9 +2,13 @@ package me.cortex.voxy.client.core.rendering.section;
|
|||||||
|
|
||||||
|
|
||||||
import me.cortex.voxy.client.core.gl.GlBuffer;
|
import me.cortex.voxy.client.core.gl.GlBuffer;
|
||||||
import me.cortex.voxy.client.core.rendering.geometry.OLD.Gl46HierarchicalViewport;
|
import me.cortex.voxy.client.core.rendering.Viewport;
|
||||||
|
|
||||||
//Takes in mesh ids from the hierachical traversal and may perform more culling then renders it
|
//Takes in mesh ids from the hierachical traversal and may perform more culling then renders it
|
||||||
public abstract class AbstractSectionRenderer {
|
public abstract class AbstractSectionRenderer <T extends Viewport<T>> {
|
||||||
public abstract void renderOpaque(Gl46HierarchicalViewport viewport, GlBuffer renderList);
|
public abstract void renderOpaque(T viewport);
|
||||||
|
public abstract void buildDrawCallsAndRenderTemporal(T viewport, GlBuffer sectionRenderList);
|
||||||
|
public abstract void renderTranslucent(T viewport);
|
||||||
|
|
||||||
|
public abstract T createViewport();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package me.cortex.voxy.client.core.rendering.section;
|
||||||
|
|
||||||
|
import me.cortex.voxy.client.core.rendering.Viewport;
|
||||||
|
|
||||||
|
public class BasicViewport extends Viewport<BasicViewport> {
|
||||||
|
@Override
|
||||||
|
protected void delete0() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,9 +5,26 @@ import me.cortex.voxy.client.core.gl.GlBuffer;
|
|||||||
import me.cortex.voxy.client.core.rendering.geometry.OLD.Gl46HierarchicalViewport;
|
import me.cortex.voxy.client.core.rendering.geometry.OLD.Gl46HierarchicalViewport;
|
||||||
|
|
||||||
//Uses MDIC to render the sections
|
//Uses MDIC to render the sections
|
||||||
public class MDICSectionRenderer extends AbstractSectionRenderer {
|
public class MDICSectionRenderer extends AbstractSectionRenderer<BasicViewport> {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderOpaque(Gl46HierarchicalViewport viewport, GlBuffer renderList) {
|
public void renderOpaque(BasicViewport viewport) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildDrawCallsAndRenderTemporal(BasicViewport viewport, GlBuffer sectionRenderList) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderTranslucent(BasicViewport viewport) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BasicViewport createViewport() {
|
||||||
|
return new BasicViewport();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user