diff options
author | Rob Blanckaert <basicer@basicer.com> | 2017-10-07 09:11:48 -0400 |
---|---|---|
committer | SmallJoker <mk939@ymail.com> | 2018-06-03 17:31:59 +0200 |
commit | c56c3d8d6f5d050acea30a70c058fd442cc41389 (patch) | |
tree | c70f48046ba0daed261d578aebf348706129f546 | |
parent | 0034abb56075b841da441b1c8ad2e7779f42eac9 (diff) | |
download | minetest-c56c3d8d6f5d050acea30a70c058fd442cc41389.tar.gz minetest-c56c3d8d6f5d050acea30a70c058fd442cc41389.tar.bz2 minetest-c56c3d8d6f5d050acea30a70c058fd442cc41389.zip |
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.
-rw-r--r-- | builtin/settingtypes.txt | 6 | ||||
-rw-r--r-- | src/camera.cpp | 2 | ||||
-rw-r--r-- | src/defaultsettings.cpp | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 0da66750a..ddb0afacd 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -476,6 +476,12 @@ pause_fps_max (FPS in pause menu) int 20 # View distance in nodes. 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. screenW (Screen width) int 800 diff --git a/src/camera.cpp b/src/camera.cpp index 52a42a3a9..6957508cc 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -487,7 +487,9 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime, void Camera::updateViewingRange() { f32 viewing_range = g_settings->getFloat("viewing_range"); + f32 near_plane = g_settings->getFloat("near_plane"); m_draw_control.wanted_range = viewing_range; + m_cameranode->setNearValue(rangelim(near_plane, 0.0f, 0.5f) * BS); if (m_draw_control.range_all) { m_cameranode->setFarValue(100000.0); return; diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 3378e8b4a..181a12b5e 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -125,6 +125,7 @@ void set_default_settings(Settings *settings) settings->setDefault("fps_max", "60"); settings->setDefault("pause_fps_max", "20"); settings->setDefault("viewing_range", "100"); + settings->setDefault("near_plane", "0.1"); settings->setDefault("screenW", "800"); settings->setDefault("screenH", "600"); settings->setDefault("autosave_screensize", "true"); |