Emissive shader casting light

paulstraw posted this 02 April 2017

Hi again,

I'm using the PicaVoxel PBR OneMinus Alpha Emissive shader to create "lit" voxels in my scene. This is working fine, but they don't actually cast light onto other objects in the scene. After a bit of research, this seems like the expected behavior, since only static objects are included in realtime GI. The only workaround I can think of at the moment is to create a point light at the center of each "lit" voxel, does that sound like a reasonable solution?


Order By: Standard | Newest | Votes
GarethIW posted this 04 April 2017

I was quite disappointed when I learned that emissive doesn't cast light in realtime, back before I even knew what light baking was.

But yeah, casting a point light will currently be the best way to do this. I wouldn't do it for every emissive voxel, as that might be a lot of lights which will be expensive in Forward rendering. Maybe a light for each colour in the model, with the intensity adjusted according to the number of voxels. Smoke and mirrors, basically.

paulstraw posted this 04 April 2017

Sure, that makes sense. Thanks for the confirmation. I implemented this last night, and it's looking pretty solid!

Lit blocks at sunset

Last edited 04 April 2017

Our 127 members have posted 466 times in 112 discussions