todo and fixes
This commit is contained in:
@@ -34,7 +34,7 @@ public class VoxyConfig implements OptionStorage<VoxyConfig> {
|
|||||||
public boolean useEnvironmentalFog = false;
|
public boolean useEnvironmentalFog = false;
|
||||||
public boolean renderStatistics = false;
|
public boolean renderStatistics = false;
|
||||||
|
|
||||||
public static VoxyConfig loadOrCreate() {
|
private static VoxyConfig loadOrCreate() {
|
||||||
if (VoxyCommon.isAvailable()) {
|
if (VoxyCommon.isAvailable()) {
|
||||||
var path = getConfigPath();
|
var path = getConfigPath();
|
||||||
if (Files.exists(path)) {
|
if (Files.exists(path)) {
|
||||||
|
|||||||
@@ -214,6 +214,21 @@ public class IrisShaderPatch {
|
|||||||
PatchGson patchData = null;
|
PatchGson patchData = null;
|
||||||
try {
|
try {
|
||||||
//TODO: basicly find any "commented out" quotation marks and escape them (if the line, when stripped starts with a // or /* then escape all quotation marks in that line)
|
//TODO: basicly find any "commented out" quotation marks and escape them (if the line, when stripped starts with a // or /* then escape all quotation marks in that line)
|
||||||
|
{
|
||||||
|
StringBuilder builder = new StringBuilder(voxyPatchData.length());
|
||||||
|
//Rebuild the patch, replacing commented out " with \"
|
||||||
|
for (var line : voxyPatchData.split("\n")) {
|
||||||
|
int idx = line.indexOf("//");
|
||||||
|
if (idx != -1) {
|
||||||
|
builder.append(line, 0, idx);
|
||||||
|
builder.append(line.substring(idx).replace("\"","\\\""));
|
||||||
|
} else {
|
||||||
|
builder.append(line);
|
||||||
|
}
|
||||||
|
builder.append("\n");
|
||||||
|
}
|
||||||
|
voxyPatchData = builder.toString();
|
||||||
|
}
|
||||||
patchData = GSON.fromJson(voxyPatchData, PatchGson.class);
|
patchData = GSON.fromJson(voxyPatchData, PatchGson.class);
|
||||||
if (patchData != null && !patchData.checkValid()) {
|
if (patchData != null && !patchData.checkValid()) {
|
||||||
throw new IllegalStateException("voxy json patch not valid: " + voxyPatchData);
|
throw new IllegalStateException("voxy json patch not valid: " + voxyPatchData);
|
||||||
|
|||||||
@@ -386,7 +386,13 @@ public class IrisVoxyRenderPipelineData {
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
for (var entry : samplerSet) {
|
for (var entry : samplerSet) {
|
||||||
samplers[i]=entry;
|
samplers[i]=entry;
|
||||||
builder.append("layout(binding=(BASE_SAMPLER_BINDING_INDEX+").append(i).append(")) uniform sampler2D ").append(entry.name).append(";\n");
|
|
||||||
|
String samplerType = "sampler2D";
|
||||||
|
if (entry.name.startsWith("shadowtex")) {
|
||||||
|
samplerType = "sampler2DShadow";
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.append("layout(binding=(BASE_SAMPLER_BINDING_INDEX+").append(i).append(")) uniform ").append(samplerType).append(" ").append(entry.name).append(";\n");
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class VoxyUniforms {
|
|||||||
|
|
||||||
public static void addUniforms(UniformHolder uniforms) {
|
public static void addUniforms(UniformHolder uniforms) {
|
||||||
uniforms
|
uniforms
|
||||||
.uniform1i(PER_FRAME, "vxRenderDistance", ()-> VoxyConfig.loadOrCreate().sectionRenderDistance*32)//In chunks
|
.uniform1i(PER_FRAME, "vxRenderDistance", ()-> VoxyConfig.CONFIG.sectionRenderDistance*32)//In chunks
|
||||||
.uniformMatrix(PER_FRAME, "vxViewProj", VoxyUniforms::getViewProjection)
|
.uniformMatrix(PER_FRAME, "vxViewProj", VoxyUniforms::getViewProjection)
|
||||||
.uniformMatrix(PER_FRAME, "vxViewProjInv", new Inverted(VoxyUniforms::getViewProjection))
|
.uniformMatrix(PER_FRAME, "vxViewProjInv", new Inverted(VoxyUniforms::getViewProjection))
|
||||||
.uniformMatrix(PER_FRAME, "vxViewProjPrev", new PreviousMat(VoxyUniforms::getViewProjection))
|
.uniformMatrix(PER_FRAME, "vxViewProjPrev", new PreviousMat(VoxyUniforms::getViewProjection))
|
||||||
@@ -50,7 +50,7 @@ public class VoxyUniforms {
|
|||||||
.uniform1f(PER_FRAME, "dhNearPlane", ()->16)//Presently hardcoded in voxy
|
.uniform1f(PER_FRAME, "dhNearPlane", ()->16)//Presently hardcoded in voxy
|
||||||
.uniform1f(PER_FRAME, "dhFarPlane", ()->16*3000)//Presently hardcoded in voxy
|
.uniform1f(PER_FRAME, "dhFarPlane", ()->16*3000)//Presently hardcoded in voxy
|
||||||
|
|
||||||
.uniform1i(PER_FRAME, "dhRenderDistance", ()-> VoxyConfig.loadOrCreate().sectionRenderDistance*32)//In chunks
|
.uniform1i(PER_FRAME, "dhRenderDistance", ()-> VoxyConfig.CONFIG.sectionRenderDistance*32)//In chunks
|
||||||
.uniformMatrix(PER_FRAME, "dhProjection", VoxyUniforms::getProjection)
|
.uniformMatrix(PER_FRAME, "dhProjection", VoxyUniforms::getProjection)
|
||||||
.uniformMatrix(PER_FRAME, "dhProjectionInverse", new Inverted(VoxyUniforms::getProjection))
|
.uniformMatrix(PER_FRAME, "dhProjectionInverse", new Inverted(VoxyUniforms::getProjection))
|
||||||
.uniformMatrix(PER_FRAME, "dhPreviousProjection", new PreviousMat(VoxyUniforms::getProjection));
|
.uniformMatrix(PER_FRAME, "dhPreviousProjection", new PreviousMat(VoxyUniforms::getProjection));
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ void main() {
|
|||||||
positionBuffer[drawId] = extractRawPos(meta);
|
positionBuffer[drawId] = extractRawPos(meta);
|
||||||
uvec4 counts = meta.b;
|
uvec4 counts = meta.b;
|
||||||
|
|
||||||
|
//TODO implicit command merging
|
||||||
uint msk = 0;
|
uint msk = 0;
|
||||||
msk |= uint(((counts.y &0xFFFFu)!=0) && (relative.y>-1))<<0;
|
msk |= uint(((counts.y &0xFFFFu)!=0) && (relative.y>-1))<<0;
|
||||||
msk |= uint((((counts.y>>16)&0xFFFFu)!=0) && (relative.y<1 ))<<1;
|
msk |= uint((((counts.y>>16)&0xFFFFu)!=0) && (relative.y<1 ))<<1;
|
||||||
|
|||||||
Reference in New Issue
Block a user