I had a fairly high-poly object that I was placing in the scene and because I merged it from another scene it came in very large. I picked it in Ember and it immediately started maximizing my memory. This doesn’t happen if the object is much smaller and within the container so it seems that the physical size of the object, even if most of it is outside the container, has a huge impact on Ember because of it’s relative grid size to the huge object? Should this be considered a bug? Ideally you’d want Ember to disregard the volume outside the container even if it is one single object so it only fills the container and once it’s filled the container it stops computing the levelset of the rest of the object.
Currently LevelSet nodes are calculated with aligned origins and spacing, but independent grid boundaries which leads to the scenario you have found. Ideally we would clamp it to the boundary of the SimEmber at some point. That being said, it may not be possible to correctly determine the “inside or outside”-ness of a given sample position if the entire object is not considered.
You’ve discovered the limitations of both representations used by the InVolume and LevelSet nodes respectively. The KD-Tree approach used in InVolume is generally slower but is never in danger of using ridiculous amounts of memory when a poor sample spacing to object size ratio used with a level set.
I’ll add it to the bug list so we can later determine if bounds clamping is feasible.
Right, well it’s not really a big deal as long as you are aware of it. I guess the problems I foresee is if you have an animated scene and you have objects coming in and going out of the ember container. In that case maybe there’s a “test” function you can run to first see if the object is near or in the container and then run the levelset?
While I am mostly dealing with the Ember Map because that’s my interest right now, I know you guys are putting out a lot of advecting velocities examples which I’ll hopefully get to at some point when duty calls. I just wanted to say that what guys are doing with Magma and its function in Ember, Krakatoa and Genome is pretty awesome even if I am not all that deep into it yet. And personally I am loving the Ember Map and I foresee using it a lot more to grab different channels from various sources and turning them into color maps for many reasons.
I suppose its fairly trivial if the object is completely outside the simulation bounds. I was thinking more of the case where a really big object partially overlaps the grid. Like a box that completely encloses the sim grid.
Yes, and I understand why since my example was bringing in a huge object from another scene and adding it to Ember before scaling it. But just being aware to scale it first is sufficient in those cases. I think the animation scenarios are a lot more important. Is there a way I could test if the object is completely outside the grid already or did you mean that it’s trivial to add?
I meant its trivial to add. Its not currently possible.