the unique lighting of mirror's edge

Post on 21-Aug-2014

24.531 Views

Category:

Entertainment & Humor

11 Downloads

Preview:

Click to see full reader

DESCRIPTION

We present the technology and ideas behind the unique lighting in MIRRORS EDGE from DICE. Covering how DICE adopted Global illumination into their lighting process and Illuminate Labs current toolbox of state of the art lighting technology.

TRANSCRIPT

The Unique Lighting of The Unique Lighting of Mirrors EdgeMirrors Edge

David Larsson, Illuminate LabsDavid Larsson, Illuminate LabsHenrik Halén, EA DICEHenrik Halén, EA DICE

Illuminate LabsIlluminate LabsFounded in 2002Founded in 2002Since 3 years Since 3 years 100% focused100% focused on lighting for games on lighting for gamesBased in Gothenburg, Based in Gothenburg, SwedenSweden10 employees (8 10 employees (8 software engineerssoftware engineers))+30 +30 game studios as clientsgame studios as clientsEpicEpic Independent Partner Program member Independent Partner Program member

Illuminate LabsIlluminate LabsProprietary LiquidLight® technologyProprietary LiquidLight® technologyUsed in development of many of the most exciting Used in development of many of the most exciting game titlesgame titles

Mirror’s Edge DICE Mirror’s Edge DICE Killzone 2 GuerrillaKillzone 2 GuerrillaWET A2M WET A2M Mass Effect BioWare Mass Effect BioWare Gran Turismo Polyphony DigitalGran Turismo Polyphony DigitalHeavenly Sword Ninja TheoryHeavenly Sword Ninja Theory

State of the art global illumination State of the art global illumination Efficient workflowEfficient workflow

EA DICEEA DICEAround since early 1990’sAround since early 1990’s~250 Employees in Stockholm, ~250 Employees in Stockholm, SwedenSwedenSelected titlesSelected titles

Mirror’s EdgeMirror’s EdgeBattlefield SeriesBattlefield SeriesRallisport ChallengeRallisport Challenge

Acquired by EA 2006Acquired by EA 2006

Mirror’s EdgeMirror’s EdgeAction AdventureAction AdventureA new take on first person movementA new take on first person movement

First person free runningFirst person free runningNo more gun-on-a-stickNo more gun-on-a-stick

You play FaithYou play FaithFree running information courierFree running information courier

Mirror’s EdgeMirror’s Edge

BackgroundBackgroundNo shadows at all 14 Years agoNo shadows at all 14 Years agoNew techniques showed upNew techniques showed up

LightmapsLightmapsShadowmapsShadowmapsStencil ShadowsStencil Shadows

Bake shadow/no shadowBake shadow/no shadowNot much has changed until recentlyNot much has changed until recently

Global IlluminationGlobal Illumination

Global IlluminationGlobal Illumination

Global IlluminationGlobal Illumination

No Global IlluminationNo Global Illumination

Light and ShadowLight and ShadowThere is much more to lighting than There is much more to lighting than telling where the shadow istelling where the shadow isOffline resources are much greater Offline resources are much greater nownowSpend some more time computing Spend some more time computing the lightmapsthe lightmaps

Beast collaborationBeast collaborationWanted standalone rendererWanted standalone rendererGood experience Illuminate Labs’ Good experience Illuminate Labs’ productsproducts

Global IlluminationGlobal Illumination

No Global IlluminationNo Global Illumination

Beast collaborationBeast collaborationArtistic requirements met early onArtistic requirements met early on<screens similar to ref photos><screens similar to ref photos>

Beast collaborationBeast collaboration

Art styleArt style

TechniquesTechniquesGI isn’t a set of featuresGI isn’t a set of featuresMore like a uniform solutionMore like a uniform solutionEasily recreates a number of Easily recreates a number of phenomenaphenomena

Bouncing lightBouncing lightColor bleedingColor bleedingTransparency transferTransparency transfer

BounceBounce

BounceBounceArtistic requirements met early onArtistic requirements met early on<screens similar to ref photos><screens similar to ref photos>

BleedingBleeding<examples/demo strong color bleeds, <examples/demo strong color bleeds, boss room?>boss room?>

BleedingBleeding<examples/demo strong color bleeds, <examples/demo strong color bleeds, boss room?>boss room?>

BleedingBleeding<examples/demo strong color bleeds, <examples/demo strong color bleeds, boss room?>boss room?>

BleedingBleeding<examples/demo strong color bleeds, <examples/demo strong color bleeds, boss room?>boss room?>

Colored transparencyColored transparency

Colored transparencyColored transparency

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Radiosity normal mapsRadiosity normal maps<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Soft shadowsSoft shadows<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Soft shadowsSoft shadows<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Soft shadowsSoft shadows<tie in from bleeding examples/demo <tie in from bleeding examples/demo bounce>bounce>

Lighting processLighting processDifferent approach from traditional Different approach from traditional “fake” methods“fake” methodsVery similar to real world lightingVery similar to real world lightingWork with light intensities, colors and Work with light intensities, colors and materialsmaterialsBest results with no invisible lightsBest results with no invisible lightsIterate on small areasIterate on small areas

Indoors with sunIndoors with sun<Examples><Examples>

Material tweaksMaterial tweaks<Examples><Examples>

Daylight outdoorsDaylight outdoors<Examples><Examples>

OutdoorsOutdoors<Examples><Examples>

OutdoorsOutdoors<Examples><Examples>

IndoorsIndoors<Examples><Examples>

IndoorsIndoors<Examples><Examples>

Lighting processLighting process<Examples><Examples>

Lighting processLighting process<Examples><Examples>

Lighting processLighting processArtistic requirements met early onArtistic requirements met early on<screens similar to ref photos><screens similar to ref photos>

Lighting processLighting processArtistic requirements met early onArtistic requirements met early on<screens similar to ref photos><screens similar to ref photos>

Lighting processLighting processArtistic requirements met early onArtistic requirements met early on<screens similar to ref photos><screens similar to ref photos>

Area lightsArea lights<examples/demo><examples/demo>

Area lightsArea lights<examples/demo><examples/demo>

Lighting processLighting process<Examples><Examples>

Lighting processLighting process<Examples><Examples>

Lighting processLighting process<Examples><Examples>

Lighting processLighting process<Examples><Examples>

Lighting processLighting processRendering farm. Mostly on Rendering farm. Mostly on workstationsworkstations

50 cores per bake50 cores per bakeEfficiency depends on many factorsEfficiency depends on many factorsUsually 15 times faster than localUsually 15 times faster than local

Some stats (the Shard):Some stats (the Shard):~200x3 Lightmaps (1024x1024 DXT1)~200x3 Lightmaps (1024x1024 DXT1)~15000 meshes (12000 RNM + 4000 ~15000 meshes (12000 RNM + 4000 Vertex)Vertex)~2000 lights~2000 lights

Additional techniquesAdditional techniquesCurvesCurves

Color correction post processColor correction post processVery similar to photoshop equivalentVery similar to photoshop equivalentArbitrary number of segments in editorArbitrary number of segments in editorCurves for R, G, B and LuminanceCurves for R, G, B and Luminance

CurvesCurves

CurvesCurves

CurvesCurves

CurvesCurves

CurvesCurvesConverted to three (RGB) curves with 16 Converted to three (RGB) curves with 16 linear segments for runtimelinear segments for runtimeRealtime in-editor previewRealtime in-editor previewCompared to cubes:Compared to cubes:

More GPU ALUMore GPU ALULess CPU and less data to GPULess CPU and less data to GPUPossibly more precisionPossibly more precision

CurvesCurvesArtist curveArtist curve

CurvesCurves16 linear segments16 linear segments

CurvesCurvesClose enoughClose enough

CurvesCurves16 segments go a long way16 segments go a long wayTwo 16 bit 16x1 RGBA textures sent to Two 16 bit 16x1 RGBA textures sent to GPUGPUSegment lookup with color as UVSegment lookup with color as UVInterpolation between sets of curves on Interpolation between sets of curves on CPUCPUResult always continuousResult always continuousEasy and fast to add curvesEasy and fast to add curvesAllows for smooth transitions and effectsAllows for smooth transitions and effects

sRGB tipssRGB tipsIf you’re using 8 bit lightmapsIf you’re using 8 bit lightmapsSome hardware has bad sRGB Some hardware has bad sRGB approximationapproximationGets worse with 8 bit -> HDR scalingGets worse with 8 bit -> HDR scalingDo transformation in shader insteadDo transformation in shader instead

Not correct after filtering, but looks goodNot correct after filtering, but looks goodAlternatively, author lightmapsAlternatively, author lightmaps

top related