The 3D Handbook
Topic

Real-time vs. offline rendering

Games draw each frame in milliseconds, while films can spend hours on one; this difference shapes how game assets are built.

foundationsrenderingperformance

Real-time rendering draws each image fast enough to respond to the player, many times per second. Offline rendering can spend minutes or hours on a single image because nobody is waiting to press a button. Almost every rule about game assets comes from that difference.

#The frame budget

A game running at 60 frames per second has about 16.7 ms to update and draw each frame, often quoted as 16.6 ms. At 30 fps the budget is 33.3 ms (Valve Developer Community wiki: Budget; Meta Horizon OS Developers Blog: Tech Note: Profiling & Optimizing on Mobile…). Valve's developer wiki recommends 60 fps as the target and calls 30 fps the lowest acceptable level, and notes that graphics usually take most of the budget (Valve Developer Community wiki: Budget).

The budget is shared. Animation, physics, AI, audio and gameplay code each use part of it, and the environment has to fit into the rest.

#Two ways to make an image

#Rasterisation

Rasterisation projects each triangle onto the screen and fills in the pixels it covers. Blender's manual describes its real-time engine, EEVEE, this way: "Instead of computing each ray of light, EEVEE uses a process called rasterization" (Blender 4.0 Manual: Introduction). Rasterisation is fast because it works triangle by triangle, but light bouncing between surfaces, soft shadows and reflections have to be approximated or precomputed.

#Ray tracing and path tracing

Ray tracing follows rays of light through the scene. Path tracing follows many random light paths per pixel and averages them, which handles bounced light, soft shadows and reflections naturally. Blender describes Cycles as its "physically-based path tracer for production rendering" (Blender Manual: Introduction). The same manual states that "Cycles will always provide more physically accurate renders" than EEVEE, and that both share the same shader nodes (Blender 4.0 Manual: Introduction).

Path tracing takes time. More samples mean less noise, and offline renderers can afford thousands of samples per pixel, which a game cannot.

#What the budget means for assets

Every asset in a game competes for a slice of those milliseconds and for memory. That shapes four things.

#Triangles and vertices

Unity's manual states: "The fewer the polygons you use in your meshes, the faster your application runs" (Unity 6.6 Manual: Creating models for optimal performance). It also warns that the vertex count the engine reports is usually higher than your modeling tool shows, because vertices are split wherever normals, UVs or vertex colours change (Unity 6.6 Manual: Creating models for optimal performance). Every UV seam and hard edge costs a little. See polygon and triangle budgets, UV seams and islands and smoothing, hard edges and smoothing groups.

#Materials and draw calls

Unity's advice is to "keep the number of materials on each model as low as possible" (Unity 6.6 Manual: Creating models for optimal performance). Epic's Nanite documentation names draw calls alongside polygon counts and mesh memory as the things that have traditionally constrained frame budgets (Unreal Engine 5.8 Documentation: Nanite Virtualized Geometry in Unreal Engine). Techniques such as texture atlases, trim sheets and master materials and instances exist largely to keep draw calls down.

#Textures

Textures take memory, and every platform has a limited amount of it. That is why so much of this handbook is about sharing texture space: tileable materials, trim sheets and consistent texel density. See texture formats, compression and mipmaps for how engines store textures.

#Baked detail

Because triangles are expensive, games traditionally fake fine detail. A detailed high-poly model is baked into a normal map that sits on a simple low-poly mesh. Normal maps "only simulate fluctuations in the surface direction" (Magnopus: Unreal Engine 5 and Nanite virtualized…), but at game distances that illusion is usually enough. Lighting has traditionally been baked too, which Epic's engineers note "requires long build times, and greatly constrains the game environment" (Unreal Engine tech blog: Unreal Engine 5 goes all-in on dynamic global…). See baked vs. dynamic lighting.

#Hybrid rendering

Modern engines blur the line by using ray tracing and dense geometry inside real-time budgets.

Lumen is Unreal Engine's "fully dynamic global illumination and reflections system" (Unreal Engine 5.8 Documentation: Lumen Global Illumination and Reflections in…). In 2022, Epic's engineers wrote that it used software ray tracing against mesh distance fields by default, because that does not need ray tracing hardware; hardware ray tracing "is more accurate but more expensive" (Unreal Engine tech blog: Unreal Engine 5 goes all-in on dynamic global…). The docs say Lumen uses hardware ray tracing when the video card, RHI and operating system support it, and falls back to software otherwise (Unreal Engine 5.8 Documentation: Lumen Global Illumination and Reflections in…). Epic's engineers wrote that Lumen can reach 60 fps on next-generation consoles at its high scalability level (Unreal Engine tech blog: Unreal Engine 5 goes all-in on dynamic global…). When Lumen is enabled, precomputed static lighting is disabled and lightmaps are hidden (Unreal Engine 5.8 Documentation: Lumen Global Illumination and Reflections in…). See global illumination.

Nanite is Unreal Engine's "virtualized geometry system" (Unreal Engine 5.8 Documentation: Nanite Virtualized Geometry in Unreal Engine). Epic says it makes it possible to "directly import film-quality source arts, such as ZBrush sculpts and photogrammetry scans", handles level of detail automatically, and lets you "use high-poly detailing rather than baking detail into normal map textures" (Unreal Engine 5.8 Documentation: Nanite Virtualized Geometry in Unreal Engine). It only processes the detail that can be perceived on screen (80 Level: A Deep Dive into Unreal Engine's 5 Nanite). See virtualised geometry.

#Common misunderstandings

  • Assuming offline tricks transfer. Displacement at render time, unlimited subdivision and per-object unique textures are offline habits. In a game, each one has a cost.
  • Judging a game asset from a Cycles render. A portfolio render in a path tracer can hide shading problems that appear in the engine. Always check assets in the engine they are for.
  • Treating Nanite as free. Dense source meshes still cost memory (Magnopus: Unreal Engine 5 and Nanite virtualized…).

#In different tools

Tool Real-time option Offline option
Blender EEVEE, rasterisation (Blender 4.0 Manual) Cycles, path tracing (Blender Manual)
Unreal Engine Default renderer with Lumen and Nanite (Unreal Engine 5.8 Documentation; Unreal Engine 5.8 Documentation) Path Tracer, a "progressive, hardware-accelerated rendering mode" (Unreal Engine 5.8 Documentation)

See game engines for a fuller comparison of engines and their renderers.

#Further reading and watching

Epic's Brian Karis and Quixel's Galen Davis walk through Nanite using the Valley of the Ancient sample; watch it for what Nanite changes for environment artists. Watch on YouTube

References

  1. Valve Developer Community · Budget · Valve Developer Community wiki · docs · accessed 2026-10-20
  2. Gabor Szauer · Tech Note: Profiling & Optimizing on Mobile Devices · Meta Horizon OS Developers Blog, 2018 · article · accessed 2026-10-20
  3. Todd Blankenship · What We Can Learn from Pixar's 24,000-Core Supercomputer · No Film School, 2022 · article · accessed 2026-10-20
  4. Ryan Salazar · Pixar Talks Render Farms · Broadcast Beat, 2016 · article · accessed 2026-10-20
  5. Blender Foundation · Introduction (EEVEE) · Blender 4.0 Manual, 2023 · docs · accessed 2026-10-20
  6. Blender Foundation · Introduction (Cycles) · Blender Manual · docs · accessed 2026-10-20
  7. Unity Technologies · Creating models for optimal performance · Unity 6.6 Manual, 2026 · docs · accessed 2026-10-20
  8. Epic Games · Nanite Virtualized Geometry in Unreal Engine · Unreal Engine 5.8 Documentation, 2026 · docs · accessed 2026-10-20
  9. Ross Beardsall · Unreal Engine 5 and Nanite virtualized geometry · Magnopus · article · accessed 2026-10-20
  10. Daniel Wright and Krzysztof Narkowicz · Unreal Engine 5 goes all-in on dynamic global illumination with Lumen · Unreal Engine tech blog, 2022 · article · accessed 2026-10-20
  11. Epic Games · Lumen Global Illumination and Reflections in Unreal Engine · Unreal Engine 5.8 Documentation, 2026 · docs · accessed 2026-10-20
  12. Theodore McKenzie · A Deep Dive into Unreal Engine's 5 Nanite · 80 Level, 2021 · article · accessed 2026-10-20
  13. Epic Games · Path Tracer in Unreal Engine · Unreal Engine 5.8 Documentation, 2026 · docs · accessed 2026-10-21
  14. Epic Games (Victor Brodin, Brian Karis, Galen Davis, Chance Ivey) · Inside Unreal: Nanite · Epic Developer Community Forums, 2021 · video · accessed 2026-10-20

Last updated 2026-10-22