I’m a little confused about “smooth lighting” and how to implement it. I’m using LibGDX and just doing simple tile by tile lighting right now, and I want to smooth it out to look nice. When I got to thinking, however, I first thought of Minecraft’s smooth lighting system, and that made me realize something. Minecraft doesn’t use shaders, so you cannot access individual pixels (I think), so how does the lighting work? I always imagined that you start with a light value like 12, get the light value of the block next to it, then create a gradient of pixels for the light and render it on the two block. However, you would have to modify individual pixels to make this work, so I’m confused here. Unless of course I’m wrong and you can play with pixels in old OpenGL.
But now I’m wondering how to implement my own system. I need to get the average, or interpolate, the light values of my tiles. But how do I do this? Do I need to use shaders or is this something I need to code by hand? I’m using LibGDX but that shouldn’t matter. Also, in smooth lighting systems do you do a lighting pass and render tile based lighting and then do another pass and interpolate the lighting?