<p>Fellow 15-year-old here.
As far as I have read, you would usually implement an Area light by combining multiple things:</p>
<ul>
<li>A point or directional light at the position for BRDF calculations.</li>
<li>Using the size of the light for a specular highlight.</li>
<li>PCSS or another technique for soft shadows.</li>
</ul>

CC BY-SA 4.0
2020-12-30T06:23:59.403Z
2020-12-30T06:23:59.403Z
SparkyPotato
<p>When I implemented real-time area lighting, there were two documents I kept referring to: &quot;<a href="https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf" rel="nofollow noreferrer">Moving Frostbite to PBR</a>&quot; by Sebastien Lagarde and &quot;<a href="https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf" rel="nofollow noreferrer">Real Shading in Unreal Engine 4</a>&quot; by Brian Karis. Also &quot;<a href="https://www.guerrilla-games.com/read/killzone-shadow-fall-creating-art-tools-for-a-new-generation" rel="nofollow noreferrer">Lighting of Killzone Shadow Fall</a>&quot; 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 <a href="https://math.stackexchange.com/questions/1438242/finding-ray-direction-with-smallest-angle-from-a-ray-to-a-rectangle-in-3d">here</a> related to implementing rectangular area lights.</p>
<p>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 <a href="http://www.mitsuba-renderer.org/" rel="nofollow noreferrer">Mitsuba renderer</a> 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.</p>

CC BY-SA 3.0
2016-10-16T16:02:48.033Z
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.
Arjan Singh
CC BY-SA 3.0
2016-10-17T17:36:53.067Z
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.
Alan Wolfe
CC BY-SA 4.0
2020-12-16T14:51:12.560Z
"Moving Frostbite to PBR" link is dead. Here is the mirror: https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf
Atahan Acar
CC BY-SA 4.0
2016-10-16T14:34:20.807Z
2020-12-16T17:52:25.930Z
2020-12-16T17:52:25.930Z
JarkkoL
<p>So after reading <a href="https://www.guerrilla-games.com/read/killzone-shadow-fall-creating-art-tools-for-a-new-generation">https://www.guerrilla-games.com/read/killzone-shadow-fall-creating-art-tools-for-a-new-generation</a> (a guerilla games presentation on PBR) I noticed the Area lights as opposed to the standard Directional, Point &amp; Spot lights in DirectX can produce very realistic shadows.</p>

<p>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.</p>

<p>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. </p>

<opengl><lighting><physically-based><directx11>
Physically Based Area Lights
Arjan Singh
# Physically Based Area Lights

(Asked by: username_0 on 2016-10-15)

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.

**Tags:** opengl, lighting, physically-based, directx11


---

## 2 answers

### Answer by username_2 on 2016-10-16. Score: 9 | Accepted answer

When I implemented real-time area lighting, there were two documents I kept referring to: "[Moving Frostbite to PBR](https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf)" by Sebastien Lagarde and "[Real Shading in Unreal Engine 4](https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf)" by Brian Karis. Also "[Lighting of Killzone Shadow Fall](https://www.guerrilla-games.com/read/killzone-shadow-fall-creating-art-tools-for-a-new-generation)" 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](https://math.stackexchange.com/questions/1438242/finding-ray-direction-with-smallest-angle-from-a-ray-to-a-rectangle-in-3d) 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](http://www.mitsuba-renderer.org/) 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.

> **Comments:**
> **username_0**: 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.  
> **username_3**: 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.  
> **username_4**: "Moving Frostbite to PBR" link is dead. Here is the mirror: https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf  

---

### Answer by username_1 on 2020-12-30. Score: 1

Fellow 15-year-old here.
As far as I have read, you would usually implement an Area light by combining multiple things:

* A point or directional light at the position for BRDF calculations.
* Using the size of the light for a specular highlight.
* PCSS or another technique for soft shadows.


---

