Added option to change subdivision size
This commit is contained in:
@@ -27,6 +27,7 @@ public class VoxyConfig {
|
||||
//public int renderDistance = 128;
|
||||
public int serviceThreads = Math.max(Runtime.getRuntime().availableProcessors()/2, 1);
|
||||
public String defaultSaveConfig;
|
||||
public int subDivisionSize = 128;
|
||||
//public int renderQuality = 256;//Smaller is higher quality
|
||||
|
||||
|
||||
|
||||
@@ -103,6 +103,13 @@ public class VoxyConfigScreenFactory implements ModMenuApi {
|
||||
.build());
|
||||
*/
|
||||
|
||||
category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.general.subDivisionSize"), config.subDivisionSize, 32, 256)
|
||||
.setTooltip(Text.translatable("voxy.config.general.subDivisionSize.tooltip"))
|
||||
.setSaveConsumer(val -> config.subDivisionSize = val)
|
||||
.setDefaultValue(DEFAULT.subDivisionSize)
|
||||
.build());
|
||||
|
||||
|
||||
category.addEntry(entryBuilder.startIntSlider(Text.translatable("voxy.config.general.serviceThreads"), config.serviceThreads, 1, Runtime.getRuntime().availableProcessors())
|
||||
.setTooltip(Text.translatable("voxy.config.general.serviceThreads.tooltip"))
|
||||
.setSaveConsumer(val -> config.serviceThreads = val)
|
||||
|
||||
@@ -80,6 +80,15 @@ public class RenderService<T extends AbstractSectionRenderer<J, ?>, J extends Vi
|
||||
//this.nodeManager.insertTopLevelNode(WorldEngine.getWorldSectionId(4, 0,0,0));
|
||||
|
||||
|
||||
/*
|
||||
for (int x = 0; x <= 25000>>9; x++) {
|
||||
for (int y = -1; y <= 1; y++) {
|
||||
for (int z = 0; z <= 25000>>9; z++) {
|
||||
this.nodeManager.insertTopLevelNode(WorldEngine.getWorldSectionId(4, x, y, z));
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
final int H_WIDTH = 10;
|
||||
for (int x = -H_WIDTH; x <= H_WIDTH; x++) {
|
||||
for (int y = -1; y <= 0; y++) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package me.cortex.voxy.client.core.rendering.hierachical2;
|
||||
|
||||
import me.cortex.voxy.client.Voxy;
|
||||
import me.cortex.voxy.client.config.VoxyConfig;
|
||||
import me.cortex.voxy.client.core.gl.GlBuffer;
|
||||
import me.cortex.voxy.client.core.gl.shader.Shader;
|
||||
import me.cortex.voxy.client.core.gl.shader.ShaderType;
|
||||
@@ -39,8 +40,8 @@ public class HierarchicalOcclusionTraverser {
|
||||
private final GlBuffer renderList = new GlBuffer(100_000 * 4 + 4).zero();//100k sections max to render, TODO: Maybe move to render service or somewhere else
|
||||
|
||||
private final GlBuffer queueMetaBuffer = new GlBuffer(4*4*5).zero();
|
||||
private final GlBuffer scratchQueueA = new GlBuffer(20_000*4).zero();
|
||||
private final GlBuffer scratchQueueB = new GlBuffer(20_000*4).zero();
|
||||
private final GlBuffer scratchQueueA = new GlBuffer(50_000*4).zero();
|
||||
private final GlBuffer scratchQueueB = new GlBuffer(50_000*4).zero();
|
||||
|
||||
private static final int LOCAL_WORK_SIZE_BITS = 5;
|
||||
private static final int MAX_ITERATIONS = 5;
|
||||
@@ -116,7 +117,7 @@ public class HierarchicalOcclusionTraverser {
|
||||
MemoryUtil.memPutInt(ptr, (int) (this.renderList.size()/4-1)); ptr += 4;
|
||||
|
||||
|
||||
final float screenspaceAreaDecreasingSize = 100 * 100;
|
||||
final float screenspaceAreaDecreasingSize = VoxyConfig.CONFIG.subDivisionSize*VoxyConfig.CONFIG.subDivisionSize;
|
||||
//Screen space size for descending
|
||||
MemoryUtil.memPutFloat(ptr, (float) (screenspaceAreaDecreasingSize) /(viewport.width*viewport.height)); ptr += 4;
|
||||
}
|
||||
|
||||
@@ -7,25 +7,13 @@
|
||||
|
||||
"voxy.config.general.enabled": "Enable Voxy",
|
||||
"voxy.config.general.enabled.tooltip": "Fully enables or disables voxy",
|
||||
|
||||
"voxy.config.general.ingest": "Chunk Ingest",
|
||||
"voxy.config.general.ingest.tooltip": "Enables or disables voxies ability to convert new chunks into LoDs",
|
||||
"voxy.config.general.quality": "LoD Quality",
|
||||
"voxy.config.general.quality.tooltip": "How big of an area a section should be on screen before it subdivides (pixels^2)",
|
||||
"voxy.config.general.geometryBuffer": "Geometry Buffer Quads",
|
||||
"voxy.config.general.geometryBuffer.tooltip": "How many quads the geometry buffer can hold",
|
||||
"voxy.config.general.maxSections": "Max Sections",
|
||||
"voxy.config.general.maxSections.tooltip": "The max number of sections the renderer can contain",
|
||||
"voxy.config.general.renderDistance": "Render Distance",
|
||||
"voxy.config.general.renderDistance.tooltip": "The render distance in chunks (set to -1 to disable chunk unloading)",
|
||||
"voxy.config.general.nvmesh": "Use nvidia mesh shaders",
|
||||
"voxy.config.general.nvmesh.tooltip": "Use nvidia mesh shaders if possible to render LoDs",
|
||||
|
||||
"voxy.config.threads.ingest": "Ingest",
|
||||
"voxy.config.threads.ingest.tooltip": "How many threads voxy will use for ingesting new chunks",
|
||||
"voxy.config.threads.saving": "Saving",
|
||||
"voxy.config.threads.saving.tooltip": "How many threads voxy will use for saving sections to the storage backend",
|
||||
"voxy.config.threads.render": "Render",
|
||||
"voxy.config.threads.render.tooltip": "How many threads voxy will use for generating render data",
|
||||
"voxy.config.general.serviceThreads": "Service threads",
|
||||
"voxy.config.general.serviceThreads.tooltip": "Number of threads the ServiceThreadPool can use",
|
||||
"voxy.config.general.serviceThreads": "Service threads"
|
||||
|
||||
"voxy.config.general.subDivisionSize": "Pixels^2 of subdivision size",
|
||||
"voxy.config.general.subDivisionSize.tooltip": "Maximum size in pixels (squared) of screenspace AABB before subdiving to smaller LoDs (Smaller being higher quality)"
|
||||
}
|
||||
Reference in New Issue
Block a user