High-level talk about the PC graphics features in Battlefield 3 for PC. Full video of talk: http://www.youtube.com/watch?v=KMaL6j7Ry6c
Text of Shiny PC Graphics in Battlefield 3
Johan Andersson, Rendering Architect, DICE
64-player multiplayer Singleplayer COOP Landscape, Urban and In-door environments PC is lead platform. DX10/DX11 only!
Developed for Battlefield 3 and future DICE + EA games Major advancements in animation, rendering, lighting, destruction, landscapes and streaming Big focus on creating simple to use & powerful workflows
http://www.penny-arcade.com/patv/episode/graphics-vs.-aestheticsGraphics exists to serve Aesthetics (and Gameplay)!
We stream almost all meshes & textures More variation Increased quality Shorter loading times Reduced memory requirements Freedom for level designers & artists
Streaming based on camera Per multiplayer level:position 200 250 MB of streamed object meshes No blurry textures behind you 1.3 1.5 GB of streamed object texturesDX11 concurrent creates = no stalls! TEXTURE QUALITY setting sets Worked closely with Microsoft and the size of the texture pool: IHVs Low: 150 mb Loading / creation is handled by separate Medium: 200 mb thread High: 300 mb Ultra: 500 mb
Damavand Peak in ULTRA 4000 -> 900 draw calls! Instance objects of the same type DX10/DX11 required Major CPU performance optimization Can instance all types of meshes!
LIGHTING Point lightsSpot lights Emissive particles Lensflare s Specular highlights
HDR rendering & lighting Dynamic exposure to adapt to both dark and bright areas True HDR bloom = natural part of the HDR rendering pipeline
Scene is rendered to a gbuffer, then litEnables massive lighting environments 100s of large dynamic light sources on screen Destructible & animated lights Lighting cost relative to how many pixels are lit not objects Highly flexible lightingRequires lots of GPU memory & bandwidth 1080p with 4x MSAA = 158 mb gbuffer
Normals SmoothnessDiffuse Specular
Tile-based lighting using DX11 CS Reduces amount of pixels lit Fixed low memory bandwidth Great performance with huge amount of light sources Esp. when using MSAA
Indirect/bounced light No indirect/bounced light Indirect light No indirect light
Indirect light No indirect light
EFFECTS Essential that particles fit in &1000s of small and big particles interact with the environment Sprite particles It is all about the lighting (again!) Mesh particles
Particle shadows! On ground & opaque objects Disabled when ShadowQuality = Low Alpha-tested debris Gives sharp details Soft particles Soft fade instead of hard z-test
Particle shadows = on
Particle shadows = off
Volumetric particle lighting Each particle is lit by all lights Fit into all light environments Automatic!
Particle lights Light up both themselves and surrounding surfaces
Shadows on particles = onShadows on particles = off