1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-06 17:41:04 +00:00

Remove bumpmapping and make requested changes

This commit is contained in:
Gefüllte Taubenbrust 2024-11-30 18:18:06 +01:00
parent 795f669c97
commit 364ca57819
13 changed files with 57 additions and 129 deletions

View file

@ -215,10 +215,10 @@ void Clouds::updateMesh()
for (video::S3DVertex& vertex : v) {
vertex.Normal.set(0, 1, 0);
}
v[0].Pos.set(-rx, ry, -rz);
v[0].Pos.set(-rx, ry,-rz);
v[1].Pos.set(-rx, ry, rz);
v[2].Pos.set(rx, ry, rz);
v[3].Pos.set(rx, ry, -rz);
v[2].Pos.set( rx, ry, rz);
v[3].Pos.set( rx, ry,-rz);
break;
case 1: // back
if (INAREA(xi, zi - 1, m_cloud_radius_i)) {
@ -239,10 +239,10 @@ void Clouds::updateMesh()
vertex.Normal.set(0, 0, -1);
}
}
v[0].Pos.set(-rx, ry, -rz);
v[1].Pos.set(rx, ry, -rz);
v[2].Pos.set(rx, 0, -rz);
v[3].Pos.set(-rx, 0, -rz);
v[0].Pos.set(-rx, ry,-rz);
v[1].Pos.set( rx, ry,-rz);
v[2].Pos.set( rx, 0,-rz);
v[3].Pos.set(-rx, 0,-rz);
break;
case 2: //right
if (INAREA(xi + 1, zi, m_cloud_radius_i)) {
@ -263,10 +263,10 @@ void Clouds::updateMesh()
vertex.Normal.set(1, 0, 0);
}
}
v[0].Pos.set(rx, ry, -rz);
v[0].Pos.set(rx, ry,-rz);
v[1].Pos.set(rx, ry, rz);
v[2].Pos.set(rx, 0, rz);
v[3].Pos.set(rx, 0, -rz);
v[2].Pos.set(rx, 0, rz);
v[3].Pos.set(rx, 0,-rz);
break;
case 3: // front
if (INAREA(xi, zi + 1, m_cloud_radius_i)) {
@ -287,10 +287,10 @@ void Clouds::updateMesh()
vertex.Normal.set(0, 0, -1);
}
}
v[0].Pos.set(rx, ry, rz);
v[0].Pos.set( rx, ry, rz);
v[1].Pos.set(-rx, ry, rz);
v[2].Pos.set(-rx, 0, rz);
v[3].Pos.set(rx, 0, rz);
v[2].Pos.set(-rx, 0, rz);
v[3].Pos.set( rx, 0, rz);
break;
case 4: // left
if (INAREA(xi - 1, zi, m_cloud_radius_i)) {
@ -312,19 +312,19 @@ void Clouds::updateMesh()
}
}
v[0].Pos.set(-rx, ry, rz);
v[1].Pos.set(-rx, ry, -rz);
v[2].Pos.set(-rx, 0, -rz);
v[3].Pos.set(-rx, 0, rz);
v[1].Pos.set(-rx, ry,-rz);
v[2].Pos.set(-rx, 0,-rz);
v[3].Pos.set(-rx, 0, rz);
break;
case 5: // bottom
for (video::S3DVertex& vertex : v) {
vertex.Color = c_bottom;
vertex.Normal.set(0, -1, 0);
}
v[0].Pos.set(rx, 0, rz);
v[1].Pos.set(-rx, 0, rz);
v[2].Pos.set(-rx, 0, -rz);
v[3].Pos.set(rx, 0, -rz);
v[0].Pos.set( rx, 0, rz);
v[1].Pos.set(-rx, 0, rz);
v[2].Pos.set(-rx, 0,-rz);
v[3].Pos.set( rx, 0,-rz);
break;
}

View file

@ -25,10 +25,9 @@
MeshMakeData
*/
MeshMakeData::MeshMakeData(const NodeDefManager *ndef, u16 side_length, bool use_tangent_vertices):
MeshMakeData::MeshMakeData(const NodeDefManager *ndef, u16 side_length):
side_length(side_length),
nodedef(ndef),
m_use_tangent_vertices(use_tangent_vertices)
nodedef(ndef)
{}
void MeshMakeData::fillBlockDataBegin(const v3s16 &blockpos)
@ -602,8 +601,6 @@ MapBlockMesh::MapBlockMesh(Client *client, MeshMakeData *data, v3s16 camera_offs
for (auto &m : m_mesh)
m = make_irr<scene::SMesh>();
m_use_tangent_vertices = data->m_use_tangent_vertices;
auto mesh_grid = client->getMeshGrid();
v3s16 bp = data->m_blockpos;
// Only generate minimap mapblocks at even coordinates.
@ -712,44 +709,27 @@ MapBlockMesh::MapBlockMesh(Client *client, MeshMakeData *data, v3s16 camera_offs
p.layer.applyMaterialOptionsWithShaders(material);
}
if (m_use_tangent_vertices && !p.layer.isTransparent()) {
scene::SMeshBufferTangents* buf = new scene::SMeshBufferTangents();
buf->Material = material;
std::vector<video::S3DVertexTangents> vertices;
vertices.reserve(p.vertices.size());
for (video::S3DVertex &v : p.vertices)
vertices.emplace_back(v.Pos, v.Normal, v.Color, v.TCoords);
buf->append(&vertices[0], vertices.size(),
&p.indices[0], p.indices.size());
buf->recalculateBoundingBox();
scene::IMeshManipulator* meshmanip =
client->getSceneManager()->getMeshManipulator();
meshmanip->recalculateTangents(buf);
mesh->addMeshBuffer(buf);
buf->drop();
} else {
scene::SMeshBuffer *buf = new scene::SMeshBuffer();
buf->Material = material;
if (p.layer.isTransparent()) {
buf->append(&p.vertices[0], p.vertices.size(), nullptr, 0);
scene::SMeshBuffer *buf = new scene::SMeshBuffer();
buf->Material = material;
if (p.layer.isTransparent()) {
buf->append(&p.vertices[0], p.vertices.size(), nullptr, 0);
MeshTriangle t;
t.buffer = buf;
m_transparent_triangles.reserve(p.indices.size() / 3);
for (u32 i = 0; i < p.indices.size(); i += 3) {
t.p1 = p.indices[i];
t.p2 = p.indices[i + 1];
t.p3 = p.indices[i + 2];
t.updateAttributes();
m_transparent_triangles.push_back(t);
}
} else {
buf->append(&p.vertices[0], p.vertices.size(),
&p.indices[0], p.indices.size());
MeshTriangle t;
t.buffer = buf;
m_transparent_triangles.reserve(p.indices.size() / 3);
for (u32 i = 0; i < p.indices.size(); i += 3) {
t.p1 = p.indices[i];
t.p2 = p.indices[i + 1];
t.p3 = p.indices[i + 2];
t.updateAttributes();
m_transparent_triangles.push_back(t);
}
mesh->addMeshBuffer(buf);
buf->drop();
} else {
buf->append(&p.vertices[0], p.vertices.size(),
&p.indices[0], p.indices.size());
}
mesh->addMeshBuffer(buf);
buf->drop();
}
if (mesh) {

View file

@ -36,9 +36,7 @@ struct MeshMakeData
const NodeDefManager *nodedef;
bool m_use_tangent_vertices;
MeshMakeData(const NodeDefManager *ndef, u16 side_length, bool use_tangent_vertices = false);
MeshMakeData(const NodeDefManager *ndef, u16 side_length);
/*
Copy block data manually (to allow optimizations by the caller)
@ -236,8 +234,6 @@ private:
f32 m_bounding_radius;
v3f m_bounding_sphere_center;
bool m_use_tangent_vertices;
// Must animate() be called before rendering?
bool m_has_animation;
int m_animation_force_timer;

View file

@ -39,8 +39,6 @@ QueuedMeshUpdate::~QueuedMeshUpdate()
MeshUpdateQueue::MeshUpdateQueue(Client *client):
m_client(client)
{
m_cache_use_tangent_vertices = g_settings->getBool("enable_bumpmaps");
m_cache_smooth_lighting = g_settings->getBool("smooth_lighting");
}
@ -179,8 +177,7 @@ void MeshUpdateQueue::fillDataFromMapBlocks(QueuedMeshUpdate *q)
{
auto mesh_grid = m_client->getMeshGrid();
MeshMakeData *data = new MeshMakeData(m_client->ndef(), MAP_BLOCKSIZE * mesh_grid.cell_size, m_cache_use_tangent_vertices);
MeshMakeData *data = new MeshMakeData(m_client->ndef(), MAP_BLOCKSIZE * mesh_grid.cell_size);
q->data = data;
data->fillBlockDataBegin(q->p);

View file

@ -70,7 +70,6 @@ private:
std::mutex m_mutex;
// TODO: Add callback to update these when g_settings changes
bool m_cache_use_tangent_vertices;
bool m_cache_smooth_lighting;
void fillDataFromMapBlocks(QueuedMeshUpdate *q);

View file

@ -680,9 +680,6 @@ ShaderInfo ShaderSource::generateShader(const std::string &name,
if (g_settings->getBool("shadow_poisson_filter"))
shaders_header << "#define POISSON_FILTER 1\n";
if (g_settings->getBool("enable_bumpmaps"))
shaders_header << "#define ENABLE_BUMPMAPS 1\n";
if (g_settings->getBool("enable_water_reflections"))
shaders_header << "#define ENABLE_WATER_REFLECTIONS 1\n";
@ -716,9 +713,6 @@ ShaderInfo ShaderSource::generateShader(const std::string &name,
if (g_settings->getBool("enable_color_grading"))
shaders_header << "#define ENABLE_COLOR_GRADING 1\n";
if (g_settings->getBool("enable_vignette"))
shaders_header << "#define ENABLE_VIGNETTE 1\n";
if (g_settings->get("antialiasing") == "ssaa") {
shaders_header << "#define ENABLE_SSAA 1\n";
u16 ssaa_scale = MYMAX(2, g_settings->getU16("fsaa"));

View file

@ -326,7 +326,6 @@ void set_default_settings()
settings->setDefault("exposure_compensation", "0.0");
settings->setDefault("enable_auto_exposure", "false");
settings->setDefault("enable_color_grading", "false");
settings->setDefault("enable_vignette", "false");
settings->setDefault("secondstage_gamma", "1.6");
settings->setDefault("debanding", "true");
settings->setDefault("antialiasing", "none");
@ -334,7 +333,6 @@ void set_default_settings()
settings->setDefault("enable_bloom_debug", "false");
settings->setDefault("enable_volumetric_lighting", "false");
settings->setDefault("enable_volumetric_depth_attenuation", "false");
settings->setDefault("enable_bumpmaps", "false");
settings->setDefault("enable_water_reflections", "false");
settings->setDefault("enable_translucent_foliage", "false");
settings->setDefault("enable_node_specular", "false");

View file

@ -40,11 +40,11 @@ struct AutoExposure
*/
struct Vignette {
/// @brief The darkest part of the vignette will be darkened/brightened by this factor.
float dark = 0.3f;
float dark = 1.0f;
/// @brief The brightest part of the vignette will be darkened/brightened by this factor.
float bright = 1.1f;
float bright = 1.0f;
/// @brief Describes the blending between dark and bright. Higher values mean darkening is more intense at the screen edges.
float power = 1.1f;
float power = 1.0f;
};
/**

View file

@ -62,7 +62,7 @@ private:
// These calls explicitly use the templated version of operator<<,
// so that they won't use the overloads created by ADD_NULL_CHECK.
if (arg == nullptr)
return this->operator<< <const char*> ("(null)");
return this->operator<< <const char*> ((const char*)"(null)");
else
return this->operator<< <T>(std::forward<T>(arg));
}