Your SlideShare is downloading. ×
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

The Unique Lighting of Mirror's Edge

24,912

Published on

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 …

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.

0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
24,912
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
170
Comments
0
Likes
11
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • so to understand where we are coming from, If we turn the clock back about ten years. it might be hard to recall but it used to be that there were no shadows at all. everything was just lit ambiently, and maybe by a few point lights but then techniques like shadow maps, stencil shadows and lightmaps started showing up and suddenly there were shadows and this has been working very well for games ever since but as everything else has improved dramatically, the basic lighting model has remained pretty much the same and maybe that was fine a few years ago But with everything else starting to look so good it becomes increasingly obvious that there is something missing from most games it's like the uncanny valley of lighting models. everything else is looking increasingly convicing but most people can tell there's something wrong with what they are looking at and as we were in prototyping three years ago our art team realized that. and we came to the conclusion that what we wanted was some form of realistic lighting or global illumination But instead of telling you what global illumination actually is I’m just going to show you some real life examples 02/10/10 23:05
  • This is a narrow street in the old town part of stockholm. The houses on the right side are completely in shadow. What’s lighting them is the light from the bright wall to the left, which is lit by the sun. Even the street below and the lower part of the left wall pick up some light 02/10/10 23:05
  • this is a good example where color is involved. the wall on the right is hit by direct sunlight and the pink color of it bounces onto the wall on the left and the ground, giving them a very pink tone, despite it beeing completely in shadow. 02/10/10 23:05
  • Here the sunlight hits the floor and reflects up onto the cielings of this structure. Creating a warm type of gradient. 02/10/10 23:05
  • So this is from one of our DLC levels. This is what it lookes like with regular lightmaps, there is shadow but it’s very flat and booring. But there’s so much more to lighting than that. And if we are spending the memory on those lightmaps, couldn’t we just make just them look better? 02/10/10 23:05
  • It used to be that regular lightmaps took a while to render in the old days, but now days they usually only take a few minutes for a whole level. Couldn’t we spend a little more time generating them to make them look better? 02/10/10 23:05
  • //our art team had been using a product called turtle for maya which they used to render ambient occlusion for characters among other things //could we use something like that to bake the entire game with global illumination? so we contacted /*the makers of turtle, */ illuminate labs about this and it turned out they were just starting work on a standalone renderer, specifically for games So we signed up to be the launch title for a product tailored to bake global illumination for games //the illuminate labs product which was named beast was going to be a standalone command line baker free from maya designed to do global illumination baking in all its forms //the beast renders lightmaps/RNMs shadowmaps SH pointclouds and some other things david will talk about later the bottom line for us was that since we were already using lightmaps, we would just be making those lightmaps look much better, there would be no extra runtime cost 02/10/10 23:05
  • So this is the same scene from before as we rendered it with beast. The red and yellow from the far wall fills into the shadow and sky is occluded in different ways. Despite extremely simple geometry this suddenly starts looking pretty good. 02/10/10 23:05
  • Just to remind you.. 02/10/10 23:05
  • as we started testing we quickly discovered that our requirements were being met 02/10/10 23:05
  • The bright sunlight hitting lights the underside of the subway bridge much like the house in the reference photo 02/10/10 23:05
  • these are some images from an early test of the art direction. as you can see this all works pretty well, and would likely have been very booring without these effects while most games would benefit a lot from this kind of stuff the stylized look of ME would not have worked att all without it 02/10/10 23:05
  • Details in the light 02/10/10 23:05
  • (Details in the light) 02/10/10 23:05
  • 02/10/10 23:05
  • Bouncing light is one of the benefits. You can let the light find its way into areas that are not directly lit. There is no need to define or fake an ambient level. This is a good example of that, the sun hits the upper part of the shute and the light nicely finds its way down. 02/10/10 23:05
  • Bouncing light is one of the benefits. You can let the light find its way into areas that are not directly lit. There is no need to define or fake an ambient level. This is a good example of that, the sun hits the upper part of the shute and the light nicely finds its way down. 02/10/10 23:05
  • This is something similar to the alley I showed you before. Sunlight hits some of the boxes and slowly propergates between the sides. 02/10/10 23:05
  • Color bleeding is really just a name for bounce when the bouncing light has a color. And this is a good example of that. The green light illuminating the wall to the right 02/10/10 23:05
  • 02/10/10 23:05
  • ) 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • 02/10/10 23:05
  • <good RNM image> one of the nifty things about the beast is in addition to storing global illumination in lightmaps it can store where that light is coming from. ) This is a scene from our tutorial level with just the diffuse materials. The horizontal air duct has a pretty coarse normal map here. 02/10/10 23:05
  • And this is what it looks like with just the lighting. 02/10/10 23:05
  • but together with the directional information in the lightmap it looks like this. Even though the air duct is in shadow from the sun it gets its normal maps lit. and they also pick up the yellow light coming from the wall on the right. 02/10/10 23:05
  • Another example. Diffuse textures 02/10/10 23:05
  • Coarse low resolution lightmaps 02/10/10 23:05
  • High resolution lit normalmaps 02/10/10 23:05
  • So when using normal maps, they can pick up the baked lighting in the right directions 02/10/10 23:05
  • 02/10/10 23:05
  • White from the lights above hit the normals pointing there, and blue bounce from the floor hits where it should 02/10/10 23:05
  • So soft direct shadows isn’t really considered part of global illumination. But in any case if you are baking the direct light you can get some pretty nice soft shadowing. Like from the fence poles here. The shadow fades out, it almost gets hard to tell where it ends, and that’s the way it should be 02/10/10 23:05
  • And in some areas the shadows mix up with the bounce so much they blend toghether almost completely 02/10/10 23:05
  • 02/10/10 23:05
  • So how do you use this stuff? the process in lighting with the beast IS a bit different than what most artists are used to. initially there is usually some skepticism as they are used to the kind of systems where there is only one shade of shadow and one shade of light, where lighting with the beast is much more like lighting in real life. You tweak intensities of the lights, the sun and the sky, and you tweak material settings to control the bouncing and radiosity. It depends on the game a lot I guess, but for us there were a few distinct types of areas 02/10/10 23:05
  • So this is a pretty good example of an indoor type area with no additional lights beyond the sunlight coming in. which is one of the usual cases. As the lighter would work on this, even though the level is much bigger he would typically isolate this section and work on that alone for a while. Tweaking the intensity of the sunlight, the bounce and color of the materials to get the bleeding and the amount of contrast right. Like if the sunlight coming into a room in real life hits a very dark wall, the room will of course be dark, it’s the same here. 02/10/10 23:05
  • This is another example of that. The bounce factor of the blue matt has been raised so that it reflects more blue light into the rest of the room and the cieling 02/10/10 23:05
  • And in the outdoors in daylight its usually of course just the sun. It’s about deciding where the sun will be, getting the angle right, and the tone of the sunlight as well as the color of light coming from the rest of the sky. Most of the blueish tone here in the shadows comes from the sky. Usually I found the lighter would place the sun so that the player would run towards it. The sky would get more interesting that way and the shadows are cast towards you, which breaks things up a bit more. 02/10/10 23:05
  • The wall here is pretty simple in terms of geomtery, but the lighting makes it work, the top balconies get a warm bouncing light from the roof and it gets darker towards the alley 02/10/10 23:05
  • But it’s very different from this. Where both the sky and the sun have a warmer sunset tone. And again the yellow wall here is typically something that has been tweaked to get the amount of bounce we wanted from it 02/10/10 23:05
  • In the indoors the lights are placed with their fixtures. That’s where we start anyway, and usually that’s enough. 02/10/10 23:05
  • There are lights where the lights are so to speak. There is no ambient level or skylight here, the light just happily bounces around from the placed lights. 02/10/10 23:05
  • Lots of big flourecent lights here 02/10/10 23:05
  • And some pointlights 02/10/10 23:05
  • But just because it’s indoors doesn’t mean you have to have a lot of lights. Here is just the big one, and the light propergates and gets darker towards the camera, between the pillars. 02/10/10 23:06
  • In all the previous scenes there were no extra fake lights But its of course perfectly fine to use them as well 02/10/10 23:06
  • Like in this subway section. A few lights placed in mid air, an area light close to the camera, and a few point lights down the tunnle. Sometimes its just easier and faster to get the look right that way. 02/10/10 23:06
  • As far as light types go they are all there. But the area light is probably the type of light our lighters used the most. it's basically a light with a big emitting area that gives very nice and soft shadows. Like the windows here have big areal lights placed in them. 02/10/10 23:06
  • And there’s no limit on the number of lights you can place. Since it’s all baked. So when the artists asked med how many lights they could use, I said “go crazy”. 02/10/10 23:06
  • Lots of pointlights 02/10/10 23:06
  • They did. 02/10/10 23:06
  • It doesn’t end there 02/10/10 23:06
  • Lots of area lights. And that’s perfectly fine of course 02/10/10 23:06
  • To help out the process our lighters had access to about 50 machines for every bake, which speeds things up a bit. Usually iterating on their areas would have a rebake time of about 5 minutes. We did have pretty big levels though. Log: Exporter Stats: Triangles 4200563 , Static Meshes: 11982 , LODs: 16410 , BSP Elements 829 , Lights: 1969 Log: Exporter Stats: Lightmapped Static Mesh LODs 12144 , Vertex Baked Static Mesh LODs: 4266 , Atlases: 211 Log: 6974 instances based on 9436 Originals. Log: Zero area BSP triangles 825, Smallest 16.000000 02/10/10 23:06
  • I’d like to mention one last thing before handing over to David. it's a color correction technique very similar to curves in photoshop, which is what our artists wanted They wanted to be able to set the tone and contrast extactly like they wanted it in different areas They already had control over shadows midtones and highlights, but that wasn’t enough in the editor the tool consists of four curves, one for each color channel plus luminosity. They wanted something similar to curves in photoshop to be able to get set the tone and contrast extactly like they wanted it in different areas And they wanted to be able to edit it in real time in the editor <color tools> <interleave with pictures after initial slide, otherwise people will go wtf is this> <also show slides with some actual math> this is unrealated to beast but it's a nice technique our artists found very useful in setting the exact right tone in the game and in different scenes. it's sort of similar to color cubes but with some benefits one of the nice things about using piecewise linear curves is that they interpolate nicely. which gives good looking transitions between areas with different curve settings <with without examples from game + invert?> 02/10/10 23:06
  • So this is what the one of our levels looks like in the game and editor. You can see the curves editor to the right. They have done some small adjustments. 02/10/10 23:06
  • And this is what it looked like without them. So the difference might seem small to some of you, but it really helped the artists going that last mile 02/10/10 23:06
  • The change here is more obvious. Lots of more contrast 02/10/10 23:06
  • So this is what our first level looks like in the game and editor. You can see the curves editor to the right. /*First level of our game, */some extra blue in the lower part of the spectrum, a little less red all over, and some more contrast 02/10/10 23:06
  • And this is what it looked like before 02/10/10 23:06
  • Another example with the adjustments, 02/10/10 23:06
  • And without. Suttle differences that make the whole thing come together 02/10/10 23:06
  • it's sort of similar to color cubes in many ways But we instead use 16 linear segments for r,g and b in runtime 02/10/10 23:06
  • So if an artist created curve looks like this 02/10/10 23:06
  • It’s segmented at fixed intervals into something like this 02/10/10 23:06
  • Which is usually close enough 02/10/10 23:06
  • The segmented data is sent to the gpu in the form of two one dimensional 16 bit textures one of the nice things about using piecewise linear curves is that two sets of curves interpolate nicely. which gives good looking transitions between areas with different curve setting You can also add a permanent contrast or gamma curve 02/10/10 23:06
  • Another tip if you’re using dxt1 srgb for your lightmaps is to move the color space conversion to the pixel shader on GPUs that have bad sRGB approximations. It can get pretty bad on some platforms with per object HDR scaling 02/10/10 23:06
  • Transcript

    • 1. The Unique Lighting of Mirrors Edge David Larsson, Illuminate Labs Henrik Halén, EA DICE
    • 2. Illuminate Labs
      • Founded in 2002
      • Since 3 years 100% focused on lighting for games
      • Based in Gothenburg, Sweden
      • 10 employees (8 software engineers )
      • +30 game studios as clients
      • Epic Independent Partner Program member
    • 3. Illuminate Labs
      • Proprietary LiquidLight® technology
      • Used in development of many of the most exciting game titles
        • Mirror’s Edge DICE
        • Killzone 2 Guerrilla
        • WET A2M
        • Mass Effect BioWare
        • Gran Turismo Polyphony Digital
        • Heavenly Sword Ninja Theory
      • State of the art global illumination
      • Efficient workflow
    • 4. EA DICE
      • Around since early 1990’s
      • ~250 Employees in Stockholm, Sweden
      • Selected titles
        • Mirror’s Edge
        • Battlefield Series
        • Rallisport Challenge
      • Acquired by EA 2006
    • 5. Mirror’s Edge
      • Action Adventure
      • A new take on first person movement
        • First person free running
        • No more gun-on-a-stick
      • You play Faith
        • Free running information courier
    • 6. Mirror’s Edge
    • 7. Background
      • No shadows at all 14 Years ago
      • New techniques showed up
        • Lightmaps
        • Shadowmaps
        • Stencil Shadows
      • Bake shadow/no shadow
      • Not much has changed until recently
    • 8. Global Illumination
    • 9. Global Illumination
    • 10. Global Illumination
    • 11. No Global Illumination
    • 12. Light and Shadow
      • There is much more to lighting than telling where the shadow is
      • Offline resources are much greater now
      • Spend some more time computing the lightmaps
    • 13. Beast collaboration
      • Wanted standalone renderer
      • Good experience Illuminate Labs’ products
    • 14. Global Illumination
    • 15. No Global Illumination
    • 16. Beast collaboration
      • Artistic requirements met early on
      • <screens similar to ref photos>
    • 17. Beast collaboration
    • 18. Art style
    • 19. White enough?
      • <oscar white>
      • <whiteroom render>
    • 20. White enough?
      • <oscar white>
      • <whiteroom render>
    • 21. Techniques
      • GI isn’t a set of features
      • More like a uniform solution
      • Easily recreates a number of phenomena
        • Bouncing light
        • Color bleeding
        • Transparency transfer
    • 22. Bounce
    • 23. Bounce
    • 24. Bounce
      • Artistic requirements met early on
      • <screens similar to ref photos>
    • 25. Bleeding
      • <examples/demo strong color bleeds, boss room?>
    • 26. Bleeding
      • <examples/demo strong color bleeds, boss room?>
    • 27. Bleeding
      • <examples/demo strong color bleeds, boss room?>
    • 28. Bleeding
      • <examples/demo strong color bleeds, boss room?>
    • 29. Bleeding
      • <examples/demo strong color bleeds, boss room?>
    • 30. Bleeding
      • <examples/demo strong color bleeds, boss room?>
    • 31. Bleeding
      • <examples/demo strong color bleeds, boss room?>
    • 32. Colored transparency
    • 33. Colored transparency
    • 34. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 35. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 36. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 37. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 38. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 39. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 40. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 41. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 42. Radiosity normal maps
      • <tie in from bleeding examples/demo bounce>
    • 43. Soft shadows
      • <tie in from bleeding examples/demo bounce>
    • 44. Soft shadows
      • <tie in from bleeding examples/demo bounce>
    • 45. Soft shadows
      • <tie in from bleeding examples/demo bounce>
    • 46. Lighting process
      • Different approach from traditional “fake” methods
      • Very similar to real world lighting
      • Work with light intensities, colors and materials
      • Best results with no invisible lights
      • Iterate on small areas
    • 47. Indoors with sun
      • <Examples>
    • 48. Material tweaks
      • <Examples>
    • 49. Daylight outdoors
      • <Examples>
    • 50. Outdoors
      • <Examples>
    • 51. Outdoors
      • <Examples>
    • 52. Indoors
      • <Examples>
    • 53. Indoors
      • <Examples>
    • 54. Lighting process
      • <Examples>
    • 55. Lighting process
      • <Examples>
    • 56. Lighting process
      • Artistic requirements met early on
      • <screens similar to ref photos>
    • 57. Lighting process
      • Artistic requirements met early on
      • <screens similar to ref photos>
    • 58. Lighting process
      • Artistic requirements met early on
      • <screens similar to ref photos>
    • 59. Area lights
      • <examples/demo>
    • 60. Area lights
      • <examples/demo>
    • 61. Lighting process
      • <Examples>
    • 62. Lighting process
      • <Examples>
    • 63. Lighting process
      • <Examples>
    • 64. Lighting process
      • <Examples>
    • 65. Lighting process
      • Rendering farm. Mostly on workstations
        • 50 cores per bake
        • Efficiency depends on many factors
        • Usually 15 times faster than local
      • Some stats (the Shard):
        • ~200x3 Lightmaps (1024x1024 DXT1)
        • ~15000 meshes (12000 RNM + 4000 Vertex)
        • ~2000 lights
    • 66. Additional techniques
      • Curves
        • Color correction post process
        • Very similar to photoshop equivalent
        • Arbitrary number of segments in editor
        • Curves for R, G, B and Luminance
    • 67. Curves
    • 68. Curves
    • 69. Curves
    • 70. Curves
    • 71. Curves
    • 72. Curves
    • 73. Curves
    • 74. Curves
        • Converted to three (RGB) curves with 16 linear segments for runtime
        • Realtime in-editor preview
        • Compared to cubes:
          • More GPU ALU
          • Less CPU and less data to GPU
          • Possibly more precision
    • 75. Curves
      • Artist curve
    • 76. Curves
      • 16 linear segments
    • 77. Curves
      • Close enough
    • 78. Curves
        • 16 segments go a long way
        • Two 16 bit 16x1 RGBA textures sent to GPU
        • Segment lookup with color as UV
        • Interpolation between sets of curves on CPU
        • Result always continuous
        • Easy and fast to add curves
        • Allows for smooth transitions and effects
    • 79. sRGB tips
        • If you’re using 8 bit lightmaps
        • Some hardware has bad sRGB approximation
        • Gets worse with 8 bit -> HDR scaling
        • Do transformation in shader instead
          • Not correct after filtering, but looks good
        • Alternatively, author lightmaps

    ×