Ignore near_plane setting on non-Android platforms (#8749)
Camera's near-plane will be hard-coded to 0.1 on all non-Android platforms. The upper-bound of this setting has been reduced to 0.25, as 0.5 is just way too high.
This commit is contained in:
parent
c6d6358b92
commit
13b228513e
@ -623,11 +623,11 @@ pause_on_lost_focus (Pause on lost window focus) bool false
|
|||||||
# 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 clipping plane' distance in nodes, between 0 and 0.5.
|
# Camera 'near clipping plane' distance in nodes, between 0 and 0.25
|
||||||
# Most users will not need to change this.
|
# Only works on GLES platforms. Most users will not need to change this.
|
||||||
# Increasing can reduce artifacting on weaker GPUs.
|
# Increasing can reduce artifacting on weaker GPUs.
|
||||||
# 0.1 = Default, 0.25 = Good value for weaker tablets.
|
# 0.1 = Default, 0.25 = Good value for weaker tablets.
|
||||||
near_plane (Near clipping plane) float 0.1 0 0.5
|
near_plane (Near plane) float 0.1 0 0.25
|
||||||
|
|
||||||
# Width component of the initial window size.
|
# Width component of the initial window size.
|
||||||
screen_w (Screen width) int 1024 1
|
screen_w (Screen width) int 1024 1
|
||||||
|
@ -713,11 +713,11 @@
|
|||||||
# type: int min: 20 max: 4000
|
# type: int min: 20 max: 4000
|
||||||
# viewing_range = 100
|
# viewing_range = 100
|
||||||
|
|
||||||
# Camera 'near clipping plane' distance in nodes, between 0 and 0.5.
|
# Camera 'near clipping plane' distance in nodes, between 0 and 0.25
|
||||||
# Most users will not need to change this.
|
# Only works on GLES platforms. Most users will not need to change this.
|
||||||
# Increasing can reduce artifacting on weaker GPUs.
|
# Increasing can reduce artifacting on weaker GPUs.
|
||||||
# 0.1 = Default, 0.25 = Good value for weaker tablets.
|
# 0.1 = Default, 0.25 = Good value for weaker tablets.
|
||||||
# type: float min: 0 max: 0.5
|
# type: float min: 0 max: 0.25
|
||||||
# near_plane = 0.1
|
# near_plane = 0.1
|
||||||
|
|
||||||
# Width component of the initial window size.
|
# Width component of the initial window size.
|
||||||
@ -3292,4 +3292,3 @@
|
|||||||
# so see a full list at https://content.minetest.net/help/content_flags/
|
# so see a full list at https://content.minetest.net/help/content_flags/
|
||||||
# type: string
|
# type: string
|
||||||
# contentdb_flag_blacklist = nonfree, desktop_default
|
# contentdb_flag_blacklist = nonfree, desktop_default
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
|
#include "config.h"
|
||||||
#include "map.h"
|
#include "map.h"
|
||||||
#include "clientmap.h" // MapDrawControl
|
#include "clientmap.h" // MapDrawControl
|
||||||
#include "player.h"
|
#include "player.h"
|
||||||
@ -569,10 +570,16 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime, f32 tool_r
|
|||||||
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");
|
|
||||||
|
// Ignore near_plane setting on all other platforms to prevent abuse
|
||||||
|
#if ENABLE_GLES
|
||||||
|
m_cameranode->setNearValue(rangelim(
|
||||||
|
g_settings->getFloat("near_plane"), 0.0f, 0.25f) * BS);
|
||||||
|
#else
|
||||||
|
m_cameranode->setNearValue(0.1f * BS);
|
||||||
|
#endif
|
||||||
|
|
||||||
m_draw_control.wanted_range = std::fmin(adjustDist(viewing_range, getFovMax()), 4000);
|
m_draw_control.wanted_range = std::fmin(adjustDist(viewing_range, getFovMax()), 4000);
|
||||||
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;
|
||||||
@ -600,7 +607,7 @@ void Camera::wield(const ItemStack &item)
|
|||||||
|
|
||||||
void Camera::drawWieldedTool(irr::core::matrix4* translation)
|
void Camera::drawWieldedTool(irr::core::matrix4* translation)
|
||||||
{
|
{
|
||||||
// Clear Z buffer so that the wielded tool stay in front of world geometry
|
// Clear Z buffer so that the wielded tool stays in front of world geometry
|
||||||
m_wieldmgr->getVideoDriver()->clearZBuffer();
|
m_wieldmgr->getVideoDriver()->clearZBuffer();
|
||||||
|
|
||||||
// Draw the wielded node (in a separate scene manager)
|
// Draw the wielded node (in a separate scene manager)
|
||||||
|
@ -165,7 +165,9 @@ 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");
|
||||||
|
#if ENABLE_GLES
|
||||||
settings->setDefault("near_plane", "0.1");
|
settings->setDefault("near_plane", "0.1");
|
||||||
|
#endif
|
||||||
settings->setDefault("screen_w", "1024");
|
settings->setDefault("screen_w", "1024");
|
||||||
settings->setDefault("screen_h", "600");
|
settings->setDefault("screen_h", "600");
|
||||||
settings->setDefault("autosave_screensize", "true");
|
settings->setDefault("autosave_screensize", "true");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user