MSMesher

Hi Mohamed,
Great work, on a such needed issue!
Given the (so far) efficiency of the implementation, what i’d like is this feature being in a modifier, so that the user can avoid to mesh everything and have tons of mesh-data in the file.
Being the meshing process made by a modifier, the simulation could be changed/tweaked without the need to recalculate all the meshes for each frame. Also a few second for the mesh compute (at render time) are good trade off IMO.
Maybe (to avoid lag) a “recalculate” button would be necessary, to prevent the modifier to make its job every time you change frame (or play the animation)

this will be done once i settle some issues, now i need TESTERS with good GPUs :smiley:
calling for testers with Nvidia GTX 580,680 , AMD 7970, or any fast GPU as my GPU is slow and the code didn’t run on my Nvidia 240 gt

I have a GTX 560 Ti at job if you want I test it a bit ( soon we suppose to have Tesla card ). Where I can download it ?

@PyroEvil check messages

Wow! This is great! I’ve always wanted to make more complex fluid simulations in Blender. Do you have an estimated time on when this will be available?

I’m trying to make it run with OpenCL (which is extremely fast) , the whole thing may work or not!!
if it didn’t work with OpenCL,i will implement the CPU solution (0.1x speed of OpenCL solution)

I think OpenCL tests will take like 5 days from now (after that it may fail or success)
so depends,if success it will take like 10 days,if not I will do it on CPU and takes like 2 weeks (all estimations depends on my time schedule)

Hi,

non coder/developer here, i might say nonsense :slight_smile:

While looking at upcoming Siggraph 2013 papers list, i stumbled on this one - Highly Adaptive Liquid Simulations on Tetrahedral Meshes

It’s fresh new, appeared few days ago, i was wondering if it might come in handy for you, since there is also a downloadable code, it’s Open Source.

Video of the paper

Thank you

thanks a lot for the link :smiley:
this new technique “mainly” for particles fluid simulation,not for meshing
currently I’ve found a good way to mesh,it should work on all platforms on CPU,still very fast and accurate and consumes very low memory

called “OpenVDB”

Eh, sorry, looking at the video I thought they had the particle mesher part in their code. So maybe what I linked could be nice for “pyroevil part”, or neither?
OpenVDB, I know about it, but I don’t understand, are you going to implement it, fully? Did you read about the SoC student who are going to work on it? You can find the conversation on Cycles mailing list.

no i didn’t read about SoC :frowning:
but I will just implement the mesher for now (they may implement more things).this may take 3 days to implement and understand how it is going (don’t think they will make SoC for 3 days project :D)

about the adaptive simulation,this is kinda “hard” to implement without particle nodes !! as current particles doesn’t support per particle size control (may be there somewhere in the data of particles) but still,blender needs a new particles “Viewing” system as this system is terribly slow!!

hope Blender OpenGL developers HEAR!! and make OpenGL 3.2 support so people can use more than 2 million particles smoothly in viewport

Oh well yeah, they spoke about Voxel data texture from OpenVDB, to setup first part of volume rendering in Cycles, next summer probably. here is the message

Thanks for clarifying and keep the good job :slight_smile: Cheers

good news!!
I implemented OpenVDB for meshing,and it worked very well and fast,multi threaded through Python and C++ :smiley: :smiley: :smiley:
it should work on all platforms,right now I’m working on windows 8 64bit (should work on 7 too,don’t know if it will work on vista,xp)

will upload some previews soon,the mesher is pretty fast too :smiley:

wow, can’t wait!!

are you using pyopenCL? I just got it installed and working with blender windows 64 bit. I would love to see how you are implementing. Or are you using openCL (in c++) and then using ctypes or cython?

-Patrick

well I was gonna implement OpenCL with C++ and Ctypes,but somehow it won’t work on apple and old GPUs with OpenCL 1.0
so I decided to use only CPU for now

and PyOpenCL is pretty easy to use too,for good OpenCL examples check Nvidia SDK (C++)

with open CL, shouldn’t it be pretty easy to pick which compute device right? Mybe I’m naive because pyopenCL looks like it makes it very easy. PyopenCL allows to just set an environment variable for compute device when generating a context. Pretty neat. I was benchmarking element wise array multiplication on CPU (i7 2.3ghx), builtin graphics (intel 4000), discrete (Nvidia 640m LE…a puny 96 cuda cores at 760mhz) simply by setting an environment variable in a for loop. numpy won the race though ha ha.

the problem with GPU is copying data!! most of the time copying data takes a lot of time, another problem is GPU memory CAP
for example if I did mesher with grid 64 cubic,it is fine,larger than that it depends on the GPU

so If I want something like 1024 cubic will do like simulation of 64 cubic * 8 * 8 * 8 * 8 !!!
assume 64 Cubic takes 0.2 sec on a good GPU,this will take forever still to make a good grid

while on the approach of OpenVDB I can make the same 1024 cubic grid with way much less time,no bottle neck of memory

sorry for being late in development but I’m kinda very busy these days
but as a progress of the mesher,the best idea I got to write the data is making it obj sequence (don’t know if there is a better option,tell me if there’s)

obj sequence or learning how blender caches works.
The problems with obj sequence is you probably don’t have motionblur at rendertime. The only way to correct taht is probably by advect particles velocity on vertex of the geometry. I see thinking particles use a mutiples objects animated in “hide/unhide” for each frame with a shapekey to each of them to make motionblur ( by extrapolate the movement ).

the problem is that the object container always changes,like in the first frame assume you have 10k vertices,in the next frame they will change to another number
any suggestions :smiley: