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.util.math.MatrixStack;
|
||||
import net.minecraft.entity.boss.BossBar;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
@@ -53,7 +52,6 @@ public class VoxelCore {
|
||||
private final WorldEngine world;
|
||||
|
||||
private final RenderService renderer;
|
||||
private final ViewportSelector viewportSelector;
|
||||
private final PostProcessing postProcessing;
|
||||
|
||||
//private final Thread shutdownThread = new Thread(this::shutdown);
|
||||
@@ -70,7 +68,6 @@ public class VoxelCore {
|
||||
|
||||
this.renderer = new RenderService(this.world);
|
||||
System.out.println("Using " + this.renderer.getClass().getSimpleName());
|
||||
this.viewportSelector = new ViewportSelector<>(this.renderer::createViewport);
|
||||
this.postProcessing = new PostProcessing();
|
||||
|
||||
System.out.println("Voxy core initialized");
|
||||
@@ -116,7 +113,7 @@ public class VoxelCore {
|
||||
|
||||
var projection = computeProjectionMat();
|
||||
|
||||
var viewport = this.viewportSelector.getViewport();
|
||||
var viewport = this.renderer.getViewport();
|
||||
viewport
|
||||
.setProjection(projection)
|
||||
.setModelView(matrices.peek().getPositionMatrix())
|
||||
@@ -171,7 +168,7 @@ public class VoxelCore {
|
||||
try {this.importer.shutdown();this.importer = null;} catch (Exception e) {e.printStackTrace();}
|
||||
}
|
||||
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");
|
||||
if (this.postProcessing!=null){try {this.postProcessing.shutdown();} catch (Exception e) {e.printStackTrace();}}
|
||||
System.out.println("Shutting down world engine");
|
||||
|
||||
@@ -131,8 +131,8 @@ public class BakedBlockEntityModel {
|
||||
return null;
|
||||
}
|
||||
var renderer = MinecraftClient.getInstance().getBlockEntityRenderDispatcher().get(entity);
|
||||
if (renderer != null) {
|
||||
entity.setWorld(MinecraftClient.getInstance().world);
|
||||
if (renderer != null) {
|
||||
try {
|
||||
renderer.render(entity, 0.0f, new MatrixStack(), layer->map.computeIfAbsent(layer, BakedVertices::new), 0, 0);
|
||||
} 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.rendering.building.BuiltSection;
|
||||
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 net.minecraft.client.render.Camera;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RenderService {
|
||||
private final ViewportSelector<?> viewportSelector;
|
||||
private final AbstractSectionRenderer sectionRenderer;
|
||||
private final ModelBakerySubsystem modelService;
|
||||
private final RenderGenerationService renderGen;
|
||||
|
||||
public RenderService(WorldEngine world) {
|
||||
this.modelService = new ModelBakerySubsystem(world.getMapper());
|
||||
this.sectionRenderer = new MDICSectionRenderer();
|
||||
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 z = -200; z <= 200; z++) {
|
||||
for (int y = -3; y <= 3; y++) {
|
||||
@@ -53,15 +62,13 @@ public class RenderService {
|
||||
this.renderGen.addDebugData(debug);
|
||||
}
|
||||
|
||||
public Viewport<?> createViewport() {
|
||||
return new RenderServiceViewport();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void shutdown() {
|
||||
this.modelService.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 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.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
|
||||
public abstract class AbstractSectionRenderer {
|
||||
public abstract void renderOpaque(Gl46HierarchicalViewport viewport, GlBuffer renderList);
|
||||
public abstract class AbstractSectionRenderer <T extends Viewport<T>> {
|
||||
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;
|
||||
|
||||
//Uses MDIC to render the sections
|
||||
public class MDICSectionRenderer extends AbstractSectionRenderer {
|
||||
public class MDICSectionRenderer extends AbstractSectionRenderer<BasicViewport> {
|
||||
|
||||
|
||||
@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