add useCameraPositionForQualityDropOff config/api
This commit is contained in:
+10
@@ -85,6 +85,16 @@ public interface IDhApiGraphicsConfig extends IDhApiConfigGroup
|
||||
/** Modifies the quadratic function fake chunks use for horizontal quality drop-off. */
|
||||
IDhApiConfigValue<EDhApiHorizontalQuality> horizontalQuality();
|
||||
|
||||
/**
|
||||
* If true DH will try to use the camera position when
|
||||
* determining LOD quality drop-off. <br>
|
||||
* If false DH will use the player's position.
|
||||
* <br><br>
|
||||
* Enabling helps free-cam mods render correctly. <br>
|
||||
* Disabling helps multi-camera mods render correctly (ie Immersive Portals or camera mods).
|
||||
*/
|
||||
IDhApiConfigValue<Boolean> useCameraPositionForQualityDropOff();
|
||||
|
||||
IDhApiConfigValue<EDhApiTransparency> transparency();
|
||||
|
||||
/** Defines what blocks won't be rendered as LODs. */
|
||||
|
||||
+4
@@ -85,6 +85,10 @@ public class DhApiGraphicsConfig implements IDhApiGraphicsConfig
|
||||
public IDhApiConfigValue<EDhApiHorizontalQuality> horizontalQuality()
|
||||
{ return new DhApiConfigValue<EDhApiHorizontalQuality, EDhApiHorizontalQuality>(Config.Client.Advanced.Graphics.Quality.horizontalQuality); }
|
||||
|
||||
@Override
|
||||
public IDhApiConfigValue<Boolean> useCameraPositionForQualityDropOff()
|
||||
{ return new DhApiConfigValue<Boolean, Boolean>(Config.Client.Advanced.Graphics.Quality.useCameraPositionForQualityDropOff); }
|
||||
|
||||
@Override
|
||||
public IDhApiConfigValue<EDhApiTransparency> transparency()
|
||||
{ return new DhApiConfigValue<EDhApiTransparency, EDhApiTransparency>(Config.Client.Advanced.Graphics.Quality.transparency); }
|
||||
|
||||
@@ -223,6 +223,18 @@ public class Config
|
||||
.addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
|
||||
.build();
|
||||
|
||||
public static ConfigEntry<Boolean> useCameraPositionForQualityDropOff = new ConfigEntry.Builder<Boolean>()
|
||||
.set(true)
|
||||
.comment(""
|
||||
+ "If true DH will try to use the camera position when \n"
|
||||
+ "determining LOD quality drop-off. \n"
|
||||
+ "If false DH will use the player's position. \n"
|
||||
+ " \n"
|
||||
+ "Enabling helps free-cam mods render correctly. \n"
|
||||
+ "Disabling helps multi-camera mods render correctly (ie Immersive Portals or camera mods). \n"
|
||||
+ "")
|
||||
.build();
|
||||
|
||||
public static ConfigUISpacer qualitySpacer = new ConfigUISpacer.Builder().build();
|
||||
|
||||
public static ConfigEntry<EDhApiTransparency> transparency = new ConfigEntry.Builder<EDhApiTransparency>()
|
||||
|
||||
@@ -109,10 +109,21 @@ public class ClientLevelModule implements Closeable, IDataSourceUpdateListenerFu
|
||||
this.ClientRenderStateRef.set(clientRenderState);
|
||||
}
|
||||
|
||||
// use camera position instead of player pos so free cam mods work better
|
||||
|
||||
DhBlockPos2D quadTreeTickBlockPos;
|
||||
if (Config.Client.Advanced.Graphics.Quality.useCameraPositionForQualityDropOff.get())
|
||||
{
|
||||
// use camera position allow free cam mods work better
|
||||
DhVec3d cameraDoublePos = MC_RENDER.getCameraExactPosition();
|
||||
DhBlockPos2D cameraBlockPos = new DhBlockPos2D((int)cameraDoublePos.x, (int)cameraDoublePos.z);
|
||||
clientRenderState.quadtree.tryTick(cameraBlockPos);
|
||||
quadTreeTickBlockPos = new DhBlockPos2D((int)cameraDoublePos.x, (int)cameraDoublePos.z);
|
||||
}
|
||||
else
|
||||
{
|
||||
// player position allows multi-cam mods to work better
|
||||
quadTreeTickBlockPos = new DhBlockPos2D(MC_CLIENT.getPlayerBlockPos());
|
||||
}
|
||||
|
||||
clientRenderState.quadtree.tryTick(quadTreeTickBlockPos);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -127,6 +127,10 @@
|
||||
"Vertical Quality",
|
||||
"distanthorizons.config.client.advanced.graphics.quality.verticalQuality.@tooltip":
|
||||
"How well LODs represent overhangs, caves, cliffsides, etc.\n\nHigher options will increase memory and GPU usage.",
|
||||
"distanthorizons.config.client.advanced.graphics.quality.useCameraPositionForQualityDropOff":
|
||||
"Use Camera Pos for Quality Drop-Off",
|
||||
"distanthorizons.config.client.advanced.graphics.quality.useCameraPositionForQualityDropOff.@tooltip":
|
||||
"If true DH will try to use the camera position when \ndetermining LOD quality drop-off. \nIf false DH will use the player's position. \n\nEnabling helps free-cam mods render correctly. \nDisabling helps multi-camera mods render correctly (ie Immersive Portals or camera mods).",
|
||||
"distanthorizons.config.client.advanced.graphics.quality.horizontalScale":
|
||||
"Horizontal Scale",
|
||||
"distanthorizons.config.client.advanced.graphics.quality.horizontalScale.@tooltip":
|
||||
|
||||
Reference in New Issue
Block a user