In this episode we cover every trick I've got for improving foliage performance while preserving the quality and the look and feel of your scene. In the final 10 minutes we focus on the common aesthetic issues you'll see with your foliage assets and how to fix them.
Link to spreadsheet of all meshes and materials used so far in this series (as of episode 10):
https://docs.google.com/spreadsheets/d/1xQquI9U5y4LbZ8mfdyMGEQRvv_RisNY5
00:00 Intro
00:15 Today's Goals and Key Concepts
02:21 Baseline FPS – 80 FPS
02:47 How to get the assets used this episode for free
03:08 Painting dense foliage along the edge of a river
05:19 Current FPS Assessment: 67 FPS
05:30 Painting the water quadrant with foliage (next quadrant of our garden level)
07:00 Current FPS Assessment: 35 FPS (low point)
07:37 Foliage PERFORMANCE Improvement Technique 1: Scaling up foliage assets and scaling down paint density
09:20 Current FPS Assessment: 50 FPS (15 FPS improvement)
09:52 Foliage PERFORMANCE Improvement Technique 2: Cull Distances
14:13 Current FPS Assessment: 59 FPS (9 FPS improvement)
15:19 Overview of LOD (Level of Detail)
16:29 Billboard Material (final LOD)
17:02 Contrasting lower and higher density (poly count- triangles and vertices) static meshes
18:09 Foliage PERFORMANCE Improvement Technique 3: Upping the minimum LOD
19:15 Foliage PERFORMANCE Improvement Technique 4: Cutting the total # of high poly assets in the scene compared to lower poly assets
20:16 Current FPS Assessment: 69 FPS (10 FPS improvement)
20:47 Scaling up size and painting fewer red fountain grass assets in garden water quadrant
23:36 Foliage AESTHETIC Issue fix 1: Adjusting the camera size threshold for the switch to the Billboard material
26:54 Foliage AESTHETIC issue fix 2: Brightness (color) change of the billboard material
27:38 Painting edges of garden water quadrant
29:04 Foliage AESTHETIC issue fix 3: Brightness (color) of the asset doesn't match the rest of the assets in the scene
30:05 Foliage AESTHETIC issue fix 4: Foliage growing in the wrong direction (align to normal)
30:53 Finishing up painting and aesthetic fixes for edges of garden water quadrant
32:14 Final FPS and quality test
32:38 Foliage AESTHETIC issue fix 5: Foliage wind settings
33:59 Foliage AESTHETIC issue fix 6: Rebuilding LOD's (fixing foliage LOD glitches)
35:21 Summary Slide: Techniques for Improving Foliage Performance
35:33 Summary Slide: Techniques for Improving Foliage Aesthetics
35:37 Conclusion and preview of next episode
New episode released every Saturday morning!
Direct References
Fixing 'Texture Streaming Pool Over Budget' error:
https://www.techarthub.com/fixing-texture-streaming-pool-over-budget-in-ue4/
How Instanced Heirarchical Meshes work:
https://www.undeaddev.com/lets-play-with-a-lot-of-meshes-part-1
General References
Quixel Bridge: https://quixel.com/bridge (comes automatically with UE5)
Megascans: https://quixel.com/megascans
What's the relationship between Quixel Bridge and Megascans?
Bridge is basically the tool for bringing it into UE5, Megascans is the library.
Official documentation on Foliage:
https://docs.unrealengine.com/4.27/en-US/BuildingWorlds/Foliage/
Official documentation on performance:
https://docs.unrealengine.com/4.27/en-US/TestingAndOptimization/PerformanceAndProfiling/
We will continue to cover performance in many episodes. The implications of performance (and the goal of improving performance without sacrificing the quality of the experience) is universal across many aspects of a game.
Official documentation on LOD's:
https://docs.unrealengine.com/4.27/en-US/WorkingWithContent/Types/StaticMeshes/HowTo/LODs/
https://docs.unrealengine.com/4.27/en-US/WorkingWithContent/Types/StaticMeshes/HowTo/AutomaticLODGeneration/
Music used this episode:
California – MusicbyAden
Horizons – Roa
Bubble – KV
Desire – MusicbyAden
Roa – Remember
Playa – Mauro Somm
Amelia – Amine Maxwell
This Feeling – Atch
Stable – KV
Pineapple – JayJen
We've Got Time – LiQWYD
Ardent – Pratzapp
Journey – Atch
Sunray valley – Scandinavianz
Ready for Summer - Roa