Click here to load reader
Upload
electronic-arts-dice
View
30.739
Download
1
Embed Size (px)
Citation preview
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