Announcement

Collapse
No announcement yet.

GDC 2015: Nvidia GameWorks in Far Cry 4, Assassin's Creed Unity, and War Thunder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GDC 2015: Nvidia GameWorks in Far Cry 4, Assassin's Creed Unity, and War Thunder

    Tools for digital hair, water, light shafts, and shadows

    Most of us think of Nvidia as a hardware company. Video cards, tablets, and now a game console. But they've been doing a lot on the software side, working directly with developers in a program called GameWorks. This is a set of graphical tools that a developer can select from like a buffet, to fill in gaps in the game-creation process, or to accelerate it. Today, Ubisoft Kiev, the guys who worked on the PC ports of Far Cry 4 and Assassin's Creed Unity, gave some real-world examples of different GameWorks elements that they used to improve their visuals. Also along for the ride was free-to-play online shooter Warthunder, who makes liberal use of some interesting water effects.
    With ShadowWorks, Ubisoft had tools to smoothly blend together shadows cast by multiple objects, and create better blurring (a shadow can look fake if it's sharp in the wrong places). TXAA is Nvidia's proprietary method of anti-aliasing in a way that causes less "shimmer" than standard MSAA, and without MSAA's performance impact. (Shimmer is a side effect of jagged edges that causes them to kind of ripple as you move your POV around a scene. ) They showed AC Unity running in real-time and compared the different AA methods side-by-side. TXAA definitely caused the least shimmer.
    With Far Cry 4, meanwhile, they made liberal use of HairWorks, since the game is full of wild, furry critters. It's similar to AMD's TressFX in that it renders individual hairs and tufts. This doesn't look very good without anti-aliasing, so use can use TXAA once again to sand those rough edges off. They also did anti-aliasing in a separate pass from the AA applied in the rest of the scene. HairWorks provides a real-time viewer so that you can see how the effect looks in-game, and you can tweak different settings and see the effects right away. Integration of HairWorks took them about one month, with two technical artists from Nvidia assisting a software engineer at Ubisoft.

    The Far Cry 4 porting team also made use of GodWorks, which is Nvidia's tool for god rays. These are basically light shafts caused by the sun in-game, or another sufficiently bright light source. At first, the team was using gray, smoke-colored rays, but they decided that the aesthetics were much better with yellowish-gold light. They had to be careful not to over-use the effect, though, or things would get too "foggy" to see clearly. They also made the effect evolve over the course of an in-game day, so that it was lightest around noon, and heaviest in the early morning and late afternoon.
    The developers of WarThunder took the game next and talked about WaveWorks. WarThunder renders a lot of water in its maps, and the tea wasn't getting the visual effect that it wanted, so it turned to Nvidia for some tools. They needed something that looked dynamic and realistic, didn't have a high performance hit, and could convincingly interact with objects in the game. With WaveWorks, they were able to plug in things like reflection, refraction, dynamic ocean foam, bubbles, light scattering, shadows, atmospherics, and displacement.
    They wanted to keep physical interaction the same for all players, so the PhysX part is calculated on the CPU rather than the GPU. This also allows them to more easily deal with the different APIs (DirectX 9, DirectX 11, OpenGL) that GPUs use on different platforms; each API has different limitations and advantages that would be a headache to deal with otherwise. Since the team was developing for Windows, OSX, and PS4, getting everyone's physics on the same page was pretty important. The CPUs in their game servers could also help with physics.
    Once they'd figured out how to make shore waves look realistic – by adding noise, using the seabed to push waves up, some under-the-hood math to take energy out of the waves as they came to shore – the last step was integrating everything into an LOD system. They implemented three levels of detail, because you don't need all of the effects going at full blast when the player is flying a thousand feet above the ocean. This helps with performance on both the server and client side. The team said that WaveWorks took one man week to integrate, and the results speak for themselves.


    More...
    ClanofIdiots.com Administrator
    PcGamingNetworks.com Co-owner
    webmaster@clanofidiots.com
Working...
X