changed how the distance generation mode is determined and added

zFix boolean in node to render to disable the zFighting fix
This commit is contained in:
Leonardo
2021-08-24 23:10:29 +02:00
parent cddd239fc5
commit c4f864f0e3
7 changed files with 307 additions and 263 deletions
@@ -6,12 +6,15 @@ import com.seibel.lod.handlers.LodConfig;
public class DetailDistanceUtil
{
private static double genMultiplier = 1;
private static double cutMultiplier = 1.5;
private static double genMultiplier = 2;
private static double treeGenMultiplier = 2;
private static double treeCutMultiplier = 1.5;
private static int minDetail = LodConfig.CLIENT.maxGenerationDetail.get().detailLevel;
private static int maxDetail = LodUtil.REGION_DETAIL_LEVEL + 1;
private static int minDistance = 0;
private static int maxDistance = LodConfig.CLIENT.lodChunkRenderDistance.get() * 16 * 2;
private static DistanceGenerationMode[] distancesGenerators = {
DistanceGenerationMode.SURFACE,
DistanceGenerationMode.SURFACE,
@@ -24,6 +27,29 @@ public class DetailDistanceUtil
DistanceGenerationMode.SURFACE,
DistanceGenerationMode.SURFACE};
/*private static DistanceGenerationMode[] distancesGenerators = {
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT};*/
/*private static DistanceGenerationMode[] distancesGenerators = {
DistanceGenerationMode.FEATURES,
DistanceGenerationMode.SURFACE,
DistanceGenerationMode.SURFACE,
DistanceGenerationMode.SURFACE,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT,
DistanceGenerationMode.BIOME_ONLY_SIMULATE_HEIGHT};*/
private static LodDetail[] lodDetails = {
LodDetail.FULL,
LodDetail.HALF,
@@ -58,6 +84,8 @@ public class DetailDistanceUtil
return minDistance;
if(detail == maxDetail)
return maxDistance;
if(detail == maxDetail+1)
return maxDistance*2;
switch (LodConfig.CLIENT.lodDistanceCalculatorType.get())
{
case LINEAR:
@@ -70,11 +98,21 @@ public class DetailDistanceUtil
public static int getDistanceGeneration(int detail)
{
if(detail == maxDetail)
return maxDistance;
return (int) (getDistanceRendering(detail) * genMultiplier);
}
public static int getDistanceCut(int detail)
public static int getDistanceTreeCut(int detail)
{
return (int) (getDistanceRendering(detail) * cutMultiplier);
if(detail == maxDetail)
return maxDistance;
return (int) (getDistanceRendering(detail) * treeCutMultiplier);
}
public static int getDistanceTreeGen(int detail)
{
if(detail == maxDetail)
return maxDistance;
return (int) (getDistanceRendering(detail) * treeGenMultiplier);
}
public static DistanceGenerationMode getDistanceGenerationMode(int detail)
@@ -95,15 +133,19 @@ public class DetailDistanceUtil
}
public static LodDetail getCutLodDetail(int detail)
public static byte getCutLodDetail(int detail)
{
if(detail < minDetail)
{
return lodDetailsCut[minDetail];
return lodDetailsCut[minDetail].detailLevel;
}
else if(detail == maxDetail)
{
return LodUtil.REGION_DETAIL_LEVEL;
}
else
{
return lodDetailsCut[detail];
return lodDetailsCut[detail].detailLevel;
}
}
}