Add setting for near plane distance. (#6395)

* Allow setting the near plane

* - Add near_plane limit of 0.5 to prevent x-ray.
- Add more details to near_plane setting.
This commit is contained in:
Rob Blanckaert 2017-10-07 09:11:48 -04:00 committed by SmallJoker
parent 0034abb560
commit c56c3d8d6f
3 changed files with 9 additions and 0 deletions

@ -476,6 +476,12 @@ pause_fps_max (FPS in pause menu) int 20
# View distance in nodes. # View distance in nodes.
viewing_range (Viewing range) int 100 20 4000 viewing_range (Viewing range) int 100 20 4000
# Camera near plane distance in nodes, between 0 and 0.5
# Most users will not need to change this.
# Increasing can reduce artifacting on weaker GPUs.
# 0.1 = Default, 0.25 = Good value for weaker tablets.
near_plane (Near plane) float 0.1 0 0.5
# Width component of the initial window size. # Width component of the initial window size.
screenW (Screen width) int 800 screenW (Screen width) int 800

@ -487,7 +487,9 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime,
void Camera::updateViewingRange() void Camera::updateViewingRange()
{ {
f32 viewing_range = g_settings->getFloat("viewing_range"); f32 viewing_range = g_settings->getFloat("viewing_range");
f32 near_plane = g_settings->getFloat("near_plane");
m_draw_control.wanted_range = viewing_range; m_draw_control.wanted_range = viewing_range;
m_cameranode->setNearValue(rangelim(near_plane, 0.0f, 0.5f) * BS);
if (m_draw_control.range_all) { if (m_draw_control.range_all) {
m_cameranode->setFarValue(100000.0); m_cameranode->setFarValue(100000.0);
return; return;

@ -125,6 +125,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("fps_max", "60"); settings->setDefault("fps_max", "60");
settings->setDefault("pause_fps_max", "20"); settings->setDefault("pause_fps_max", "20");
settings->setDefault("viewing_range", "100"); settings->setDefault("viewing_range", "100");
settings->setDefault("near_plane", "0.1");
settings->setDefault("screenW", "800"); settings->setDefault("screenW", "800");
settings->setDefault("screenH", "600"); settings->setDefault("screenH", "600");
settings->setDefault("autosave_screensize", "true"); settings->setDefault("autosave_screensize", "true");