Skip to content

Commit

Permalink
Adjust cast_shadows type
Browse files Browse the repository at this point in the history
  • Loading branch information
TokisanGames committed Sep 14, 2024
1 parent 6db2a16 commit 4dfdf13
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
22 changes: 11 additions & 11 deletions src/terrain_3d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,8 +251,8 @@ void Terrain3D::_build_meshes(const int p_mesh_lods, const int p_mesh_size) {
RID scenario = get_world_3d()->get_scenario();

_mesh_data.cross = RS->instance_create2(_meshes[GeoClipMap::CROSS], scenario);
RS->instance_geometry_set_cast_shadows_setting(_mesh_data.cross, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(_mesh_data.cross, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(_mesh_data.cross, _cast_shadows);

for (int lod = 0; lod < p_mesh_lods; lod++) {
for (int x = 0; x < 4; x++) {
Expand All @@ -266,8 +266,8 @@ void Terrain3D::_build_meshes(const int p_mesh_lods, const int p_mesh_size) {
} else {
tile = RS->instance_create2(_meshes[GeoClipMap::TILE], scenario);
}
RS->instance_geometry_set_cast_shadows_setting(tile, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(tile, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(tile, _cast_shadows);
_mesh_data.tiles.push_back(tile);
}
}
Expand All @@ -278,8 +278,8 @@ void Terrain3D::_build_meshes(const int p_mesh_lods, const int p_mesh_size) {
} else {
filler = RS->instance_create2(_meshes[GeoClipMap::FILLER], scenario);
}
RS->instance_geometry_set_cast_shadows_setting(filler, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(filler, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(filler, _cast_shadows);
_mesh_data.fillers.push_back(filler);

if (lod != p_mesh_lods - 1) {
Expand All @@ -289,13 +289,13 @@ void Terrain3D::_build_meshes(const int p_mesh_lods, const int p_mesh_size) {
} else {
trim = RS->instance_create2(_meshes[GeoClipMap::TRIM], scenario);
}
RS->instance_geometry_set_cast_shadows_setting(trim, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(trim, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(trim, _cast_shadows);
_mesh_data.trims.push_back(trim);

RID seam = RS->instance_create2(_meshes[GeoClipMap::SEAM], scenario);
RS->instance_geometry_set_cast_shadows_setting(seam, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(seam, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(seam, _cast_shadows);
_mesh_data.seams.push_back(seam);
}
}
Expand Down Expand Up @@ -323,35 +323,35 @@ void Terrain3D::_update_mesh_instances() {
bool v = is_visible_in_tree();
RS->instance_set_visible(_mesh_data.cross, v);
RS->instance_set_scenario(_mesh_data.cross, _scenario);
RS->instance_geometry_set_cast_shadows_setting(_mesh_data.cross, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(_mesh_data.cross, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(_mesh_data.cross, _cast_shadows);

for (const RID rid : _mesh_data.tiles) {
RS->instance_set_visible(rid, v);
RS->instance_set_scenario(rid, _scenario);
RS->instance_geometry_set_cast_shadows_setting(rid, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(rid, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(rid, _cast_shadows);
}

for (const RID rid : _mesh_data.fillers) {
RS->instance_set_visible(rid, v);
RS->instance_set_scenario(rid, _scenario);
RS->instance_geometry_set_cast_shadows_setting(rid, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(rid, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(rid, _cast_shadows);
}

for (const RID rid : _mesh_data.trims) {
RS->instance_set_visible(rid, v);
RS->instance_set_scenario(rid, _scenario);
RS->instance_geometry_set_cast_shadows_setting(rid, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(rid, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(rid, _cast_shadows);
}

for (const RID rid : _mesh_data.seams) {
RS->instance_set_visible(rid, v);
RS->instance_set_scenario(rid, _scenario);
RS->instance_geometry_set_cast_shadows_setting(rid, RenderingServer::ShadowCastingSetting(_cast_shadows));
RS->instance_set_layer_mask(rid, _render_layers);
RS->instance_geometry_set_cast_shadows_setting(rid, _cast_shadows);
}
}

Expand Down Expand Up @@ -843,7 +843,7 @@ void Terrain3D::set_mouse_layer(const uint32_t p_layer) {
}
}

void Terrain3D::set_cast_shadows(const GeometryInstance3D::ShadowCastingSetting p_cast_shadows) {
void Terrain3D::set_cast_shadows(const RenderingServer::ShadowCastingSetting p_cast_shadows) {
_cast_shadows = p_cast_shadows;
_update_mesh_instances();
}
Expand Down
7 changes: 4 additions & 3 deletions src/terrain_3d.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <godot_cpp/classes/geometry_instance3d.hpp>
#include <godot_cpp/classes/mesh.hpp>
#include <godot_cpp/classes/mesh_instance3d.hpp>
#include <godot_cpp/classes/rendering_server.hpp>
#include <godot_cpp/classes/static_body3d.hpp>
#include <godot_cpp/classes/sub_viewport.hpp>

Expand Down Expand Up @@ -81,7 +82,7 @@ class Terrain3D : public Node3D {

// Renderer settings
uint32_t _render_layers = 1 | (1 << 31); // Bit 1 and 32 for the cursor
GeometryInstance3D::ShadowCastingSetting _cast_shadows = GeometryInstance3D::SHADOW_CASTING_SETTING_ON;
RenderingServer::ShadowCastingSetting _cast_shadows = RenderingServer::SHADOW_CASTING_SETTING_ON;
real_t _cull_margin = 0.0f;

// Mouse cursor
Expand Down Expand Up @@ -172,8 +173,8 @@ class Terrain3D : public Node3D {
uint32_t get_render_layers() const { return _render_layers; };
void set_mouse_layer(const uint32_t p_layer);
uint32_t get_mouse_layer() const { return _mouse_layer; };
void set_cast_shadows(const GeometryInstance3D::ShadowCastingSetting p_cast_shadows);
GeometryInstance3D::ShadowCastingSetting get_cast_shadows() const { return _cast_shadows; };
void set_cast_shadows(const RenderingServer::ShadowCastingSetting p_cast_shadows);
RenderingServer::ShadowCastingSetting get_cast_shadows() const { return _cast_shadows; };
void set_cull_margin(const real_t p_margin);
real_t get_cull_margin() const { return _cull_margin; };

Expand Down

0 comments on commit 4dfdf13

Please sign in to comment.