Improvements to volume stepping/alternate systems?

I’ve been looking around for a few days now, but I haven’t been able to find any information on improvements to volume stepping mentioned in the 2019 blender conference in november. I understand that the mention was more a call for devs to help, but this is a rather omnipresent bug for those doing lots of simulations. I’m still getting very noticeable artifacts from stepping, and a system that removes the need to increase the step rate to silly levels would be very much appreciated across the board. As noted in the conference, the technology is essentially standard now, and the methods to do it (even if it’s hard to code for) are rather well known. I remember back when I came across it, I wondered why stepping distances weren’t “jittered” a bit for each ray. Now I know that would probably darken volumes a bit, in total.

I’m still getting these artifacts since 2.72a, and now in 2.9, but I’ve noticed it’s not considered a known bug. Should I try to add it to the known bug list, or how does that kind of thing work?

4 Likes

alright- sorry to necro, but I made some attempts, and has anyone else attempted just to offset or jitter the start point of stepping back or forth, or is that even doable with the current state of cycles? imagine, if the first (and therefore every subsequent) step was moved forward somewhere between a step and a full step, then I’d imagine this issue would disappear… though it would come at the cost of under-sampling the area from 0-1 steps in front of the camera. perhaps if it started one step behind the camera, and was culled based on a negative depth value.

I’d love to hear what others think about this probably naive idea, but humor me- I really do want to know what’s been tried and not- I know just diving into the code is a little dangerous, but I’ve been messing with various bits and bobs around the step rate and other volume sampling code. Attempting to implement the above made shadows more accurate!..but also seemed to let light completely through as well. So it goes when you’re letting a path choose if it wants to skip a voxel or not. it could also have been randomizing each step’s size- I’m not totally sure what I’m doing here- just throwing wrenches to see what breaks I guess.