Skip to content

Commit cfeba36

Browse files
committed
[forest] calibrated grass density
1 parent 39ebdfd commit cfeba36

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

source/runtime/Game/Game.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,16 +1107,16 @@ namespace spartan
11071107
if (!all_transforms.empty())
11081108
{
11091109
size_t total_count = all_transforms.size();
1110-
size_t split_1 = static_cast<size_t>(total_count * 0.1f); // far layer is 10% of the total count
1111-
size_t split_2 = static_cast<size_t>(total_count * 0.3f); // mid layer is 20% of the total count (so we end at 30%)
1110+
size_t split_1 = static_cast<size_t>(total_count * 0.15f); // far layer is 15% of the total count
1111+
size_t split_2 = static_cast<size_t>(total_count * 0.45f); // mid layer is 30% of the total count (so we end at 45%)
11121112

1113-
// 1. low detail - near
1113+
// 1. low density - far (visible at all distances, sparse coverage)
11141114
{
11151115
Entity* entity = World::CreateEntity();
11161116
entity->SetObjectName("grass_layer_density_low");
11171117
entity->SetParent(terrain_tile);
11181118

1119-
// copy the first 10% of transforms
1119+
// copy the first 15% of transforms
11201120
vector<Matrix> far_transforms(all_transforms.begin(), all_transforms.begin() + split_1);
11211121

11221122
Renderable* renderable = entity->AddComponent<Renderable>();
@@ -1127,38 +1127,38 @@ namespace spartan
11271127
renderable->SetMaxRenderDistance(render_distance_foliage);
11281128
}
11291129

1130-
// 2. medium detail - medium
1130+
// 2. medium density - medium (adds density at medium range)
11311131
{
11321132
Entity* entity = World::CreateEntity();
11331133
entity->SetObjectName("grass_layer_density_mid");
11341134
entity->SetParent(terrain_tile);
11351135

1136-
// copy the next 20% of transforms
1136+
// copy the next 30% of transforms
11371137
vector<Matrix> mid_transforms(all_transforms.begin() + split_1, all_transforms.begin() + split_2);
11381138

11391139
Renderable* renderable = entity->AddComponent<Renderable>();
11401140
renderable->SetMesh(mesh_grass_blade.get());
11411141
renderable->SetFlag(RenderableFlags::CastsShadows, false);
11421142
renderable->SetInstances(mid_transforms);
11431143
renderable->SetMaterial(material_grass_blade);
1144-
renderable->SetMaxRenderDistance(render_distance_foliage * 0.3f);
1144+
renderable->SetMaxRenderDistance(render_distance_foliage * 0.6f);
11451145
}
11461146

1147-
// 3. high detail - near
1147+
// 3. high density - near (full density up close)
11481148
{
11491149
Entity* entity = World::CreateEntity();
11501150
entity->SetObjectName("grass_layer_density_high");
11511151
entity->SetParent(terrain_tile);
11521152

1153-
// copy the remaining 70% of transforms
1153+
// copy the remaining 55% of transforms
11541154
vector<Matrix> near_transforms(all_transforms.begin() + split_2, all_transforms.end());
11551155

11561156
Renderable* renderable = entity->AddComponent<Renderable>();
11571157
renderable->SetMesh(mesh_grass_blade.get());
11581158
renderable->SetFlag(RenderableFlags::CastsShadows, false);
11591159
renderable->SetInstances(near_transforms);
11601160
renderable->SetMaterial(material_grass_blade);
1161-
renderable->SetMaxRenderDistance(render_distance_foliage * 0.1f);
1161+
renderable->SetMaxRenderDistance(render_distance_foliage * 0.3f);
11621162
}
11631163
}
11641164
}

0 commit comments

Comments
 (0)