Between Tech and Art: The Vegetation of Horizon Zero Dawn

GDC40 minutes read

Guerilla Games spent seven years developing Horizon Zero Dawn, with Gilbert Saunders leading the vegetation creation efforts. The game aimed for smooth performance on PS4 and PS4 Pro, using advanced techniques like global wind force fields and efficient texture rendering for grass assets.

Insights

  • Gilbert Saunders played a crucial role in developing the vegetation for Horizon Zero Dawn, transitioning from Killzone games to this new IP, highlighting the extensive effort and expertise dedicated to creating the game's world.
  • The intricate technical processes and optimizations involved in Horizon Zero Dawn's development, such as using vertex colors for realistic wind-driven movement, rendering alpha tested meshes in two passes for performance, and implementing compressed textures with mip maps for memory efficiency, showcase the meticulous attention to detail and innovation required to achieve the game's visual quality and performance standards.

Get key ideas from YouTube videos. It’s free

Recent questions

  • How long did it take to create Horizon Zero Dawn?

    Guerilla Games spent seven years developing Horizon Zero Dawn.

Related videos

Summary

00:00

"Horizon Zero Dawn: Seven Years of Creation"

  • Guerilla Games took seven years to create the world of Horizon Zero Dawn, with Gilbert Saunders being a principal artist involved in the vegetation creation.
  • Saunders joined the team in 2011, transitioning from working on Killzone games to the new IP, Horizon Zero Dawn.
  • The development aimed for the game to run at 30 frames per second at 1080p on PS4 and 4K on PS4 Pro.
  • Killzone Shadowfall served as a testing ground for vegetation production, highlighting the need for a placement system for Horizon's open world.
  • A system was created to allow artists to describe various environments for easy integration into the game world.
  • The movement of foliage in the game was tied to a global wind force field, simulating different levels of motion for assets.
  • Vertex colors were used to store skinned data for assets, allowing for realistic wind-driven movement.
  • Grass in the game was designed to be geometry-based, with a dedicated shader and artistic choices for texture.
  • Grass shaders could load different functionalities based on distance, ensuring efficient rendering.
  • Grass movement was achieved through displacement of vertices based on wind samples, with additional large and small-scale motions for realism.

20:20

Optimizing Alpha Textures for Performance Boost

  • Scaling down animations over distance aids in removing animation from the last blot, enhancing blending with terrain and boosting performance.
  • Rendering alpha tested meshes in two passes, first as early occluders and then normally, optimizes performance by reducing the expense of alpha testing.
  • Utilizing signed distance alpha textures in Horizon Zero Dawn allows for dynamic adjustment of alpha sizes in shaders, enhancing visual quality.
  • Implementing a custom map chain to adjust alpha textures in shaders proves more efficient than real-time adjustments, leading to performance improvements.
  • Making alpha textures as small as possible, especially for frequently drawn assets like grass, significantly reduces memory usage and boosts performance.
  • The use of compressed textures with mip maps in Horizon Zero Dawn optimizes memory usage and visual quality, particularly for grass assets.
  • The shading process in Horizon Zero Dawn involves colorization of vegetation textures using a texture array with eco-taupe colorized textures.
  • Normal adjustments in shaders for assets relying on alpha planes help in hiding the simplistic nature of assets like grass, enhancing visual quality.
  • The translucency process in shaders involves controlling absorption and scattering values to achieve desired visual effects, deviating from physical correctness for artistic purposes.
  • The vegetation creation pipeline in Horizon Zero Dawn involves starting with low-poly components and gradually adding detail based on performance and visual quality requirements.

40:52

"Speed model loading process for game assets"

  • Speed models treated as lot 3, detailed loading process initiated
  • Triangles around measures in speed-read for LOD bounding box similarity
  • Speed 3/6 route production used for alignment, workaround needed
  • Replacement of speed model meshes with new low chain in Speed
  • Export lot chain from Speed Read with bones and AO to FBX
  • Custom Houdini process converts mesh data to vertex color
  • Asset setup in Maya and export to game, typical lot chain of a tree asset
  • Shadow Caston for Sun shadows, Cascades 0 & 1 for standard shadow maps
  • Objects rendered into shadow maps based on fixed distances, smooth blend between Cascades prevents popping
Channel avatarChannel avatarChannel avatarChannel avatarChannel avatar

Try it yourself — It’s free.