[video output=day096 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Lighting" vod_platform=youtube id=QtepVbq6_pw annotator=Miblo annotator=dspecht]
[1:59][Consider addressing the problem of speed and optimisation in order to ease debugging]
[4:02][Two possible directions: Renderer Features...]
[5:11][...or Lighting Control]
[6:26][Suggest turning off everything except for the tree]
[7:29][Review what's going on in handmade_render_group]
[8:18][Turn off DrawBitmap, change the hideous pink background and switch to compile in debug mode]
[10:03][Stop the tree rotating]
[10:50][Blackboard: 'Lighting is the sound of graphics' - Doug Church]
[13:53][Blackboard: Dynamic lighting]
[15:32][Blackboard: Lighting is fundamentally a 'directional' effect]
[17:42][Blackboard: Wavelengths]
[21:24][Blackboard: RGB colour receptors]
[24:29][Blackboard: Don't talk to animals with more color wavelength sensors than you][quote 55]
[25:11][Blackboard: We see the aggregate effect of all of the light sources scattering light towards our eye]
[26:44][Blackboard: Subsurface scattering]
[28:12][Blackboard: What makes surfaces look different?]
[32:37][Blackboard: What sorts of surfaces do we tend to actually want?]
[35:10][Blackboard: Approximations]
[38:29][Blackboard: 'Light probes' or Indirect light sampling]
[44:22][Blackboard: What do we do in 2D?]
[46:22][Blackboard: Normal maps]
[48:19][Blackboard: We don't know what the light field is]
[53:19][Q&A][:speech]
[54:18][@cubercaleb][So is this why animation studios like Pixar have super computers for the rendering?]
[55:31][@ttbjm][What about shadows?]
[56:09][Blackboard: Shadow maps]
[58:01][@tweester][I was looking for a build design doc to follow if you have one?]
[58:28][@ifingerbangedurcat][Do we also plan on having a day/night cycle and dynamic shadows, where they stretch and fade depending on the position of the sun?]
[59:36][@mmair0ne][Light feathering, e.g. in a window or tree]
[1:00:01][@thestalkingwolf][Sort of on topic would you consider doing a true 3D lighting and or ray tracing discussion/lessons at some time?]
[1:00:24][@smt19913][How do you account for infinite reflections if there is a mirror that reflects light into a mirror that reflects light back at the first mirror?]
[1:01:48][Blackboard: Volumetric scattering]
[1:03:03][@bunnymancer][Could you repeat that?]
[1:03:12][@abnercoimbre][Q: Heated debates of why we need to go through the trouble you're going through. #JustUseUnity Many newcomers]
[1:06:26][@hsru][Is 2D worth going for when it becomes more complex than 3D?]
[1:09:22][@zootboysean][Is your 'lighting cube' idea the same thing as cubemaps?][quote 56]
[1:10:44][@mmair0ne][How to feather light through a window or tree]
[1:11:07][Blackboard: Translucence]
[1:14:16][@theottergod][Why don't we just have the lighting feigned on the sprites?]
[1:15:16][@flaturated][How about the second framebuffer you mentioned with light sources having precomputed distance falloff, plus graphics objects having another channel similar to alpha that indicates reflectivity? That would be fast and maybe good enough for a 2D game]
[1:15:51][Blackboard: Illumination is constant along a line]
[1:18:34][@johanso][Due to the complexity of lighting, are system resources a major factor/consideration in shading engines?]
[1:19:10][@grumpygiant256][If you use a 2D lighting buffer, will you need to generate a G-buffer or Z-buffer as well first?]
[1:19:47][@chokeagun][What about bleeding effects?]
[1:19:55][@insofaras][Is this going to work with software rendering or will it be too computationally expensive?]
[1:20:37][@erdomina][You mentioned computing values for a single source receiving light from multiple sources. How would we in essence do this computation? I'm assuming it's based off of neighbouring pixel values. I'm having a hard time formulating an approach]
[1:22:09][@sv3ns0nic][Wouldn't it (in most cases) be smarter to use an existing graphic / render engine and just focus on coding the game itself / gameplay?]
[1:25:03][@runningmyself][What is the ambient occlusion and why my video card get late to run games with ambient occlusion? Like really lose FPS]
[1:25:29][Blackboard: Ambient occlusion]
[1:31:47][@tsongbird][Do you prefer cake or muffins?]
[1:31:59][@n2__][Do you have any plans to implement sprite opacity and, if so, could it be taken into consideration with the light map calculation, i.e. less opaque objects block less light?]
[1:32:40][@naddafadda][Are there any books or resources you would recommend on lighting or game engine creation in general?[ref
    site="Matt Pharr and Greg Humphreys"
    page="Physically Based Rendering"
    url="http://pbrt.org/"]]
[1:33:51][@tweester][So game design documentation, like a roadmap for the game?]
[1:34:27][@morwakawaka][Wouldn't a game in pitch darkness have the easiest lighting system to code?]
[1:35:19][@redfin9][Can you go back in time and start this series 15 years ago?]
[1:35:52][@tsongbird][If you did choose cake, would it be a cheese or mud cake?]
[1:36:05][@mmair0ne][What I mean is sort of more like how to make beams of light pass through a rendered object]
[1:36:24][Blackboard: God rays]
[1:41:48][@twinduoq][Don't you cast rays from the eye and not the sun to reduce calculations, and then see if the rays cast from the eye hit the sun?]
[1:43:26][@darthkoonstyle][Can you use a 3D overlay to pretend, say, a slice of a 3D environment. For example, the platform you are on being z, and then x is across, y up and down. So you can have a light source at x 33, y 50, z 1. So all objects less than x 33 would be shadowed to the right, objects greater than would be shadowed to the left, greater than y 50 would be brighter to the front and less would be shadowed to the back... I don't know if this is making sense, but would it be possible?]
[1:44:13][@cubercaleb][In early episodes you worked on having multiple z levels. Wouldn't this mean you would need to render walls in 3D, thus introducing some 3D into the rendering and lighting calculations?]
[1:44:42][@itisbob][How often do you stream Game Development?]
[1:45:12][@redfin9][What is your background that led to where you are? Is education important or interest more important?]
[1:45:26][@morwakawaka][Will this lighting system work for blind people?]
[1:45:49][@deadvertex][Do you think we'll be able to do all this in real time or will we have to pre-bake some of the lighting information when generating the map?]
[1:46:11][@morwakawaka][Couldn't you just make a 3D game and then flatten it with a rolling pin?]
[1:46:29][@irdumbs][How often is real time radiosity used in games? Is it easy, and do you guys use it? Why or why not? Any hints?]
[1:48:06][@dgmtv][I saw a game that uses normal maps on sprites]
[1:48:39][@yakra13][Isn't lights falloff inverse square? As you move farther from the source each ray is further from its neighbors]
[1:48:55][Blackboard: Inverse square law]
[1:51:36][@grumpygiant256][Would you consider voxelizing the scene like Little Big Planet 2 does?]
[1:52:46][@oliholli][Had to log in so hopefully this isn't too late. Wouldn't there be falloff with a point source when integrating across the surface, since the rays spread out away from the source?]
[1:54:33][@ice_engine][Why is it easier to represent light as photons and not particles in 3D programs?]
[1:55:08][@irdumbs][Rendering light in environments and events approaching the speed of light. How to do it?]
[1:55:24][@doctoromega][PBR lightning? Quick run down on how it works?]
[1:55:41][We have come to the end][:speech]
[/video]
