JaydenDP Posted October 24, 2012 Share Posted October 24, 2012 Hi everyone! Any idea's kicking around to perform good stepped gridless advection at render-time for volume rendering? Just an open topic for no reason at the moment in particular. Was just thinking about it as at the moment we do use render-time advection on our volumes which does one noise displacement (no history for multiple steps). At least I think it does that, I didn't write it ;P Any thoughts and musings would be much appreciated anyway. Thanks Jay Quote Link to comment Share on other sites More sharing options...
Annon Posted October 24, 2012 Share Posted October 24, 2012 I took one look at gridless advection and shrunk away in fear. Deadline was far too tight to even contemplate it! Watching this closely... Quote Link to comment Share on other sites More sharing options...
SpencerL Posted October 24, 2012 Share Posted October 24, 2012 In your shader, you could use a For VOP. Inside it have your noise. Each iteration, increase/decrease the timestep of the noise offset (depends if you want forward or backward tracing). Make sure you add to the current location of P so that it creates the feedback. Quote Link to comment Share on other sites More sharing options...
Jordan Walsh Posted October 24, 2012 Share Posted October 24, 2012 I have been playing with some of the ideas mentioned in this thread: Especially Serge's awesome setup here: page__st__36#entry84164 Is this considered gridless advection? Quote Link to comment Share on other sites More sharing options...
nord3d Posted November 29, 2012 Share Posted November 29, 2012 This topic interested me since I first saw the Jerry Tessendorf's paper "Resolution Independent Volumes". Recently, I was able to get some results with houdini native resources. I has tested a few different methods, the simplest is just displace volume with velocity field to sharpen the resulted density. Later, I going to tell about this in more detail, now I only post some pictures (the method(s) is still under development). The simple displace method (before, after): More advanced method: 2 Quote Link to comment Share on other sites More sharing options...
Jordan Walsh Posted November 30, 2012 Share Posted November 30, 2012 nice one nord3D. Im very eager to see more!!! Quote Link to comment Share on other sites More sharing options...
nord3d Posted December 1, 2012 Share Posted December 1, 2012 Now, I placed the video of this experiment here: Quote Link to comment Share on other sites More sharing options...
ikarus Posted December 1, 2012 Share Posted December 1, 2012 Interesting, care to elaborate on the process? Are you just evolving the field a number of steps equal to the frame number? I would guess that the dissipation is coming from the fact the density output isn't coupled with the evolving vel field, so you lose the divergence-free projection. You see the same effect when advecting particles through a field over a long period of time. Quote Link to comment Share on other sites More sharing options...
nord3d Posted December 4, 2012 Share Posted December 4, 2012 (edited) Interesting, care to elaborate on the process? Are you just evolving the field a number of steps equal to the frame number? Yes, exactly. I would guess that the dissipation is coming from the fact the density output isn't coupled with the evolving vel field, so you lose the divergence-free projection. You see the same effect when advecting particles through a field over a long period of time. Thank you for the tip, I'll think about it.Another pictures, from another algorithm, not so good for now, but (I hope) can be improved... Edited December 4, 2012 by nord3d Quote Link to comment Share on other sites More sharing options...
nord3d Posted December 8, 2012 Share Posted December 8, 2012 My experimentation continues, so I have a few new pictures: #1 without / with #2 without / with #3 some frames from the sequence in analytical color The speed is greatly improved and the algorithm is greatly simplified, but still has some problems. I'll working on it. 1 Quote Link to comment Share on other sites More sharing options...
whodini Posted January 21, 2013 Share Posted January 21, 2013 Is there any chance you could perhaps share some of the approaches or hip file for the algorithm you are using in the above images? Quote Link to comment Share on other sites More sharing options...
johnLIC Posted May 8, 2013 Share Posted May 8, 2013 I too am quite curious. Nice stuff! Quote Link to comment Share on other sites More sharing options...
Jordan Walsh Posted May 8, 2013 Share Posted May 8, 2013 So Im still wondering what the definition of gridless advection is for someone who cant quite decipher the white papers yet... anyone got a good description in laymen's terms? Quote Link to comment Share on other sites More sharing options...
whodini Posted April 10, 2014 Share Posted April 10, 2014 wow, it's been over a year. Can anyone shed some more light on this topic? the tessendorf papers are pretty tough to digest. Has anyone made any attempts to make sense of it and willing to share? Quote Link to comment Share on other sites More sharing options...
jkunz07 Posted April 10, 2014 Share Posted April 10, 2014 (edited) Advect density field by velocity field in a for loop in cvex context (volume procedural). Here is some psuedo code for the rough idea: for i in $F @density += volumesamplev("/path/to/velocity/field_" i ".bgeo", "vel", @P)*@TimeInc; So you use the "i" variable to read in specific frames of your vel field Doing this in cvex at rendertime, density can be moved around resolution independant or "gridless advection" Edited April 10, 2014 by jkunz07 2 Quote Link to comment Share on other sites More sharing options...
Jordan Walsh Posted April 11, 2014 Share Posted April 11, 2014 So this you are kind of calculating the advection for every frame leading up to the frame you are rendering... that sounds pretty heavy computationally... Quote Link to comment Share on other sites More sharing options...
eetu Posted April 11, 2014 Share Posted April 11, 2014 Ok, I haven't done this, but I don't think you can "push" density around without storage. You would need to "walk backwards" in time, through each frames (negated) velocity field, and see if you end up somewhere that has density.. RIght? Quote Link to comment Share on other sites More sharing options...
ikarus Posted April 11, 2014 Share Posted April 11, 2014 Ok, I haven't done this, but I don't think you can "push" density around without storage. You would need to "walk backwards" in time, through each frames (negated) velocity field, and see if you end up somewhere that has density.. RIght? yeah basically you do a 'trace' advection setup, walking backwards in time to find where the fluid would be in the next step. This example's pretty basic, I would want to add some modifiers based on density and velocity magnitude to make the step size more adaptive. rendertime_advection.hip 6 Quote Link to comment Share on other sites More sharing options...
teratera Posted April 11, 2014 Share Posted April 11, 2014 Thanks, ikarus! It works really well. Render time seem reasonable too, for this image it was 0:08 / 0:22 at 8 steps, of course low-res, so probably not the best example to test. Technique is very cool, thanks again, so much abilities there. Quote Link to comment Share on other sites More sharing options...
whodini Posted April 14, 2014 Share Posted April 14, 2014 (edited) Thank you ikarus for generously sharing a hip file! that's incredible. I owe you a beer man. This is extremely valuable for learning volume shading and more. Edited April 14, 2014 by rhussain Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.