@@ -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