top of page
Search

Talk Title: Blowing from the West: Simulating Wind in 'Ghost of Tsushima'

  • Writer: Joaquin De Losada
    Joaquin De Losada
  • 2 minutes ago
  • 3 min read

Effective talk: How the render pipelines are set up for large simulations.

Year of Talk: 2021


  • Part of the main game UI is called the guiding wind, which helps guide players to interesting nearby locations.


Important information:

  • As ‘Ghost of Tsushima’ was made just before the studio fully transitioned to working with PS5, there may be some items that change due to how the console runs.

  • The target of the wind simulations was to make sure a large amount of wind could be simulated. It was decided that this was more important than accuracy.

  • As sucker punch (The studio behind the game) have their inhouse engine this may vary depending on other factors that the team could better control.


How the particle system works:

  • Starts with a direction vector that determines the main wind direction.

  • A perlin noise map is used over an area to add slight randomness to the wind direction.

  • Particle system uses ‘Vorticles’ which work as a strong source of wind generation. Let the designers change directions, speed, and area of effect of the wind.

  • The studio uses an in-depth particle system originally made for the second son game.

  • This particle system helps create around 100,000 particles rendered entirely through the GPU.

  • The team reworked terrain to work around height maps and allowed the particles to interact with said height map to help better simulate their interaction with the world.


Vorticles wind generation:

  • During runtime, all local vorticle forces are combined and applied to live particles, which react accordingly.

  • The particle system is also designed to allow for basic animation and quicker rendering of NPCs. This lets the team have larger crowds that have basic animations at low costs.

  • The particle system was improved for the game to allow for the animation of foliage from trees and bushes. This lets them move around as needed while only containing the information for a couple of nearby nodes.

  • This particle foliage system allows it to sway around the nodes according to the direction of the wind.


Grass Pipeline:

  • While the GPU pipeline allows for around 1 million blades of grass, the number is reduced to 100,000 through distance culling and FOV limits.

  • Three main maps are passed to the grass compute shader: grass type map, terrain height map, and grass height map.

  • At the same time, certain grass parameters are passed, which returns a list of all the grass that is meant to be rendered. Including all direct and indirect grass blades.

  • The grass is finally rendered on the screen for the player.


Cloth Pipeline:

  • It starts by creating a mesh in Maya where the vertices are connected by different types of springs.

  • The Sims mesh will calculate a certain radius for many of the vertices to determine how much they can move around. 

  • Corner vertices/nodes having 0 represent being pinned to a character model.

  • Meanwhile, the draw mesh will actually draw the meshes and vertices. Tends to have minor differences from the Sims mesh but has many of the same attachments.

  • Both meshes connect by having the vertices of the Sims mesh create a transformation matrix used to determine the positions for the draw mesh vertices.

  • When the cloth is farther away, the draw mesh is replaced with a lower poly version to help reduce resources while keeping the same level of detail for the sim meshes.

  • The current/previous node positions, and all nearby cloth simulations are passed through the cloth pipeline, which returns the new node position for the cloth and its joints values.

  • The changes in joint value can drastically change if the time difference between updates is too large due to the value of acceleration. 

  • Even though the time difference can be reduced to do a lot of calculations in a short period can be computationally intense.

  • To solve this, the team will calculate the force to be a fraction of the distance to equilibrium. This allows for the springs to more smoothly transition between calculations.

  • Springs are grouped together based on direction and position, where their calculations are passed through the same thread. This allows for springs with similar changes in values to be determined at the same time.

 
 
 

Recent Posts

See All

Comments


bottom of page