6
$\begingroup$

So after reading https://www.guerrilla-games.com/read/killzone-shadow-fall-creating-art-tools-for-a-new-generation (a guerilla games presentation on PBR) I noticed the Area lights as opposed to the standard Directional, Point & Spot lights in DirectX can produce very realistic shadows.

Now a lot of the resources online talk about it and what it is but there's not much regarding implementation. Some websites online say that it is just an array of lights but I don't think that's what it is.

Can somebody explain how I can implement this (and maybe with some code). If you could include any links to some good resources regarding implementation that would be great aswell.

$\endgroup$
6
$\begingroup$

When I implemented real-time area lighting, there were two documents I kept referring to: "Moving Frostbite to PBR" by Sebastien Lagarde and "Real Shading in Unreal Engine 4" by Brian Karis. Also "Lighting of Killzone Shadow Fall" by Michal Drobot is an interesting read on the topic. None of these documents deal with area shadows though but focus on energy conserving approximation of the lighting integral. While there are some code snippets, these documents lack quite a bit of details of how to implement area lighting though, so you need to do fair amount of research on your own. For example I posted a question and an answer here related to implementing rectangular area lights.

A very valuable tool I used was to implement a Monte Carlo reference model to easily compare different approximations to the ground truth. Some people also use Mitsuba renderer to validate their implementations. I think this ground truth reference is extremely important so that you know if there are mistakes in your implementation and also to see where/how these approximations fail and if you can somehow try to improve them. Implementing Monte Carlo integration is also quite a good exercise to understand the underlying problem.

$\endgroup$
  • $\begingroup$ Thanks for the answer! I guess I'll comeback to Physically Based Area lights in a while since I'm only 15 and all this Math is confusing the hell out of me. Hopefully as time passes there will be more implementation details. and I should be able to understand all of the jargon. I've also read both of those publications you suggested but I've not understood much of it correctly. $\endgroup$ – Arjan Singh Oct 16 '16 at 16:02
  • 3
    $\begingroup$ A bit of a tangent but great job on pursuing this at 15 years old. Reading papers might seem confusing now and have a lot of complex math, but each one you read gets a little bit easier. Keep at it and you'll be way ahead of the game by the time you hit college and/or the workforce. $\endgroup$ – Alan Wolfe Oct 17 '16 at 17:36

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.