LerpworksAcademy

Code and math · course

Optimization

17 lessons

This course is still being written: 4 of 17 lessons are ready.

1LOD, instancing and Nanite: drawing a million blades of grassLesson · coreHow a big scene stays within budget: the two prices, triangles and draw calls; levels of detail chosen by screen size, popping and dithering, HLOD and impostors; why small triangles are expensive; instancing and per-copy data; culling by frustum, distance and occlusion (Hi-Z); and Nanite, with its clusters, its errors under a pixel and what it dislikes.2The frame budget on the graphics cardLesson · in depthThe last lesson of the course. The frame budget in milliseconds (16.7 ms at 60 fps) and why to count in ms rather than FPS; the CPU and the graphics card working at once, with the slowest link setting the frame, and the resolution test; input latency and the frame queue; the cost breakdown of the GPU frame by the passes of the course; why grass, shadows and transparency are expensive; video memory, texture streaming and what happens when it overflows; finding the bottleneck with a profiler; and a checklist of savings for artists.3Open world: how it loads in piecesLesson · in depthHow a big world loads around the player: a grid of cells, loading range, simplified copies in the distance, world layers, large coordinates and what breaks at the seams between pieces. World Partition in Unreal and how other engines solve it.4Open-world budgetCheat sheetOne screen of numbers and checks: landscape sizes, cells and loading ranges, vegetation density, draw distance, what to look at in the profiler, and a checklist before you expand the world.