For a long while I’ve known theres been a problem when testing for shadow visibility with my voxels during my injection of voxel lighting. But as usual I got too lazy and left it. So I got along with the problem, I called it Steve, I created lots of hackish solutions to mimic the “correct” shadow testing.
But after a while I got tired of Steve, so I double checked the light injection pass, and noticed that the light intensity calculation was acting “weirdly”. So, what was the problem? THIS:
... = VoxelGetNormal(nDotL, voxel.maskNormal, -lDirection);
What could possibly be wrong with Steve here? Well it turns out that Steve was a challanged kid:
... = VoxelGetNormal(nDotL, voxel.maskNormal, lDirection); // Woala
More correct output:
Currently I’m testing the shadow maps on the voxel with a PCF filter, but the interpolation is still jagged ( like cubes ), because theyre voxels. So I might look into how to smootly interpolate, I’m just afraid of multi sampling different near by voxels ( Performance ).