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. */
|
/** Modifies the quadratic function fake chunks use for horizontal quality drop-off. */
|
||||||
IDhApiConfigValue<EDhApiHorizontalQuality> horizontalQuality();
|
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();
|
IDhApiConfigValue<EDhApiTransparency> transparency();
|
||||||
|
|
||||||
/** Defines what blocks won't be rendered as LODs. */
|
/** Defines what blocks won't be rendered as LODs. */
|
||||||
|
|||||||
+4
@@ -85,6 +85,10 @@ public class DhApiGraphicsConfig implements IDhApiGraphicsConfig
|
|||||||
public IDhApiConfigValue<EDhApiHorizontalQuality> horizontalQuality()
|
public IDhApiConfigValue<EDhApiHorizontalQuality> horizontalQuality()
|
||||||
{ return new DhApiConfigValue<EDhApiHorizontalQuality, EDhApiHorizontalQuality>(Config.Client.Advanced.Graphics.Quality.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
|
@Override
|
||||||
public IDhApiConfigValue<EDhApiTransparency> transparency()
|
public IDhApiConfigValue<EDhApiTransparency> transparency()
|
||||||
{ return new DhApiConfigValue<EDhApiTransparency, EDhApiTransparency>(Config.Client.Advanced.Graphics.Quality.transparency); }
|
{ return new DhApiConfigValue<EDhApiTransparency, EDhApiTransparency>(Config.Client.Advanced.Graphics.Quality.transparency); }
|
||||||
|
|||||||
@@ -223,6 +223,18 @@ public class Config
|
|||||||
.addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
|
.addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
|
||||||
.build();
|
.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 ConfigUISpacer qualitySpacer = new ConfigUISpacer.Builder().build();
|
||||||
|
|
||||||
public static ConfigEntry<EDhApiTransparency> transparency = new ConfigEntry.Builder<EDhApiTransparency>()
|
public static ConfigEntry<EDhApiTransparency> transparency = new ConfigEntry.Builder<EDhApiTransparency>()
|
||||||
|
|||||||
@@ -109,10 +109,21 @@ public class ClientLevelModule implements Closeable, IDataSourceUpdateListenerFu
|
|||||||
this.ClientRenderStateRef.set(clientRenderState);
|
this.ClientRenderStateRef.set(clientRenderState);
|
||||||
}
|
}
|
||||||
|
|
||||||
// use camera position instead of player pos so free cam mods work better
|
|
||||||
DhVec3d cameraDoublePos = MC_RENDER.getCameraExactPosition();
|
DhBlockPos2D quadTreeTickBlockPos;
|
||||||
DhBlockPos2D cameraBlockPos = new DhBlockPos2D((int)cameraDoublePos.x, (int)cameraDoublePos.z);
|
if (Config.Client.Advanced.Graphics.Quality.useCameraPositionForQualityDropOff.get())
|
||||||
clientRenderState.quadtree.tryTick(cameraBlockPos);
|
{
|
||||||
|
// use camera position allow free cam mods work better
|
||||||
|
DhVec3d cameraDoublePos = MC_RENDER.getCameraExactPosition();
|
||||||
|
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",
|
"Vertical Quality",
|
||||||
"distanthorizons.config.client.advanced.graphics.quality.verticalQuality.@tooltip":
|
"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.",
|
"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":
|
"distanthorizons.config.client.advanced.graphics.quality.horizontalScale":
|
||||||
"Horizontal Scale",
|
"Horizontal Scale",
|
||||||
"distanthorizons.config.client.advanced.graphics.quality.horizontalScale.@tooltip":
|
"distanthorizons.config.client.advanced.graphics.quality.horizontalScale.@tooltip":
|
||||||
|
|||||||
Reference in New Issue
Block a user