I am away from my regular desktop machine, using a 5 years old laptop with a dual mobile i7 (Arrandale) CPU + HT.
I tested Frost 2.0.5 vs 2.0.7 using VRay 3.40.02 and your example scene.
So if you want to distribute objects using Frost/Krakatoa and render in Vray, turn Instancing off and it’ll be about 35-41% faster than using instancing in Vray and placing the objects some other way (like Pflow)? That’s some good performance gains.
Do other renderers detect Frost instancing automatically or is this Vray specific implementation?
Would also be interesting to see how it stacks up against Multiscatter with its Vray support.
Btw, love the Region of interest feature although it would be nice if you could move the bounding box around using a sub-object mode rather than moving the icon. Even FieldMagma like handles would be nice.
Frost with V-Ray Instancing OFF is as fast as Frost has always been, and it does not do any render-time instancing in that case. It makes a single huge TriMesh combining all the custom object meshes, and sends that to the renderer, whatever it might be. Other than PFlow, there is NO artificial limit to the number of polygons it can send to the renderer, but you can easily run out of memory.
When the V-Ray Instancing mode is ON, then Frost will send the individual custom objects as Dynamic V-Ray Instances (an animated mesh with time offset will create a unique instance for each unique time sample). The instance will be loaded once, and can be instantiated millions of times in the scene with a very low memory overhead. This allowed us to show the demo case where a one million faces Sequoia mesh of a car was instantiated one million times in the scene, while using just around a GB of RAM (so it works on my laptop and could even render on my Surface Pro tablet, if I were crazy enough to install Max on it).
This is slightly different from the way the V-Ray Instancer object sets up its instances, as it seems to be pre-processing them a lot more before rendering, which seems to result in faster raytracing after the fact. But it also uses significantly more memory. The very first version of Frost with V-Ray Instancing support used the same approach and I could barely render more than a million instances of anything, even a simple plane. With the current dynamic instancing, the memory usage is very low, and V-Ray can unload or reload data as needed, but you pay for this in some raytracing performance loss.
V-Ray Instancing only works (surprise!) with V-Ray. We might look into supporting other renderers in the future, but we have other things on our To Do list, so we will see.
We have not benchmarked Frost against MultiScatter or Forest Pack Pro. We are not trying to compete against them, we are just giving Frost customers an option to use Frost as a general-purpose scatter tool in V-Ray. Together with Krakatoa, it can be rather powerful
Not sure what you are talking about, Frost has the SAME (even better) manipulator handles as Field Magma. In fact, I started with the Stoke Manipulator code and made it better. Just enable Manipulate mode and have fun!
The ROI performance could be improved further, but we have postponed the optimization for a future point release…
Ok, so what we are getting is essentially the ability to render more instances/polygons with Frost2 at the expense of rendering time. I’ve used Frost with Krakatoa combo in the past to place objects, and I do like that workflow but often falling back on Multiscatter in my case for speed. I’m glad that you were able to get it down from 500% to ~35-40%, but can’t help but to be a bit disappointed. Don’t get me wrong, the ability to render billions and billions of instanced geometry in that little memory is impressive but it’s definitely going to be weighing the options on a case per case scenario and doing some comparisons with other scattering/instancing methods. Maybe my expectations were too high as I was hoping it would replace my scattering workflow and give me better memory management AND speed.
With Field Magma, the manipulate mode is activated automatically, so when I quickly fired up Frost 2 today for the first time and saw the new feature I didn’t realize that the handles would appear by manually going into Manipulate mode. Good to know.
As for other main updates, meshing is greatly sped up correct? Does that go for all methods (from Spheres to Zhu-Bridson and Anstropic)?
V-Ray Instancing is ALMOST ALWAYS a bit slower than rendering a huge TriMesh. There is one exception I have found - in the case where the cloud of mesh particles is so dense that the raytracer does not see 90% of the instances because they are hidden behind other instances, V-Ray instances can render faster than a big-ass TriMesh. For example, creating a PRT Volume from a cube and replacing each particle with a multi-segmented teapot, V-Ray Instacing can render several times faster because each instance’s bbox can be tested before raytracing the mesh, while a huge TriMesh is constantly being hit by every ray while most of its faces are occluded.
In the scene Gavin provided, the number of particles was only about 30K, and the meshes were just simple planes. In this case, the PFlow rendered in 29 seconds on my laptop, Frost in V-Ray mode in 35 seconds, V-Ray Instancer in 39 seconds. This is NOT a typical usage case of Frost instancing, in this case I would use the old TriMesh approach without V-Ray Instancing and also render in 29 seconds.
If you use real-world objects like trees, grass, buildings etc., rendering them with PFlow or Frost as a single TriMesh would be impossible. So V-Ray Instancing becomes necessary. You pay for the ability to render those huge amounts of similar objects in a bit of performance decrease.
Go and benchmark such a case in all available tools (Frost 2, V-Ray Instancer, MultiScatter), and if you feel that Frost 2 is too slow to use in production, please let us know. I have never SEEN MultiScatter (except in a YT video), so I have no idea which method they use, but I would assume they do dynamic V-Ray Instancing just like Frost. If they render faster than Frost, we will gladly look into why and try to improve.
But this is the second time a customer is “disappointed” by Frost 2 without having tested the final version in production, so I would like to see numbers before we speculate about how bad it is…
Anisotropic is still slower than the rest, and that’s because of the search for neighbors that costs time. One of our developers had an idea for a better algorithm, but we have not tested that idea yet, and we have no plan whether/when it might become a reality.
However, we hope that Frost blob meshing might become even faster in future versions as we keep on optimizing it.
That’s because all Stoke UIs are scripted, while Frost is a C++ plugin. So turning on the Manipulate mode was trivial in Stoke, and while it would be possible to add to the Frost plugin, it is not something I can do
Also, Frost ROI is something you only use sometimes, thus turning Manipulate mode on by default to show a gizmo you probably don’t need would be a bad idea. We would need to add a checkbox “Show Manipulators” to the ROI rollout if we were to expose this to the UI.
This would probably be the way to go. Most people I see using Max isn’t used to turning on Manipulate mode and wouldn’t know that’s what they would have to do to get a user friendly way of resizing it.
Not sure I am. I didn’t mean to offend when I said I was disappointed. Like I did say, I need to compare doing it with Frost with doing it with other tools before coming to a proper conclusion. Perhaps saying I was disappointed was a bit premature as you correctly pointed out that proper testing in production type environments and comparing to other methods needs to be done first.
The spark that ignited the “disappointment” comment was when you said that Frost 2 was not meant to compete with other instancing tools but rather a bonus feature. If I raise my expectations too high and get disappointed, it’s not your fault, I was hoping to use Frost 2 and Krakatoa as a replacement for Multiscatter (I don’t have much experience with Forest Pack Pro) as I enjoy the magma workflow because of how versatile it is with the rules I can set-up. If the end result is that there are pros and cons to using Frost 2 for this scenario versus using other options, I’ll have to use it on a per case scenario.
With the GPU renderer Redshift coming out strong with its out-of-core rendering, and if Vray does not follow suit, I might switch renderers so for me personally this might become moot unless you can get support added to more renderers other than Vray. Redshift was used on that beautiful Overwatch short released at gamescom a few weeks back (that’s just a side note, not a reason for me looking into changing rendering workflows – anything that can speed up my renders and provide me with the features I need is worth looking into). Right now I am doing mostly real-time, so pre-rendered is mainly for concepting and hobby projects, but that can change in a few months so I want to stay on top of things.
Either way, I’ll be testing this stuff and hopefully uploading some videos soon (are we allowed to while it’s in beta?).
Frost is still awesome, you know I love your tools, even if my expectations were set too high in this aspect but I won’t know that until I’ve properly tested it for this use. I have a perfect scene (personal artwork) that I’ve been waiting to finish that I’ll test this on.
VRay Instancing is definitely not just a bonus, I pushed hard to get this feature added because I think it is a great thing to have. However, MultiScatter and Forest Pack Pro have been specifically designed to make scattering easy for everyone, and feature things like huge asset libraries and automatic collision detection that is harder to do with Magma.
For me and you, Frost+KMX+Stoke will be a dream, for the majority of users it might be an overkill. Hence my comment that Frost 2 is not a replacement of the idiot-proof tools that have been out there for ages and have been doing V-Ray Instancing for as long as it has been possible to.
If we go out and say “Frost 2 is better than MultiScatter”, we would be lying because most users would find it harder to use. If I come to you or another existing user of our tools and say “here you go, Magma-controlled V-Ray Instance scattering, with nearly unlimited rendering of trillions of polygons with a GB of RAM”, you will probably think it is the best thing since sliced bread.
But once again, we decided to add the feature because it is a good idea, not because we have any experience with MultiScatter and want to replace it or something. In fact, I did not look into MultiScatter videos until after the first Frost 2 build with V-Ray Instancing. And since I don’t have it, I have not benchmarked it. Please do!
We knew that we had a performance problem, and Gavin posted a very good illustration which spawned this thread. We made improvements, now we need people to actually test it and let us know how it behaves with real world data.
We are in Release Candidate mode, and even if we were in early Beta, we would have encouraged you to post tests. It has been a long-standing policy since early Krakatoa days.
Thank you for your feedback! I added this to our wish list.
I’m very interested to hear how Frost compares to other tools. Please let us know where it falls short, and we’ll see what we can do to improve it!
So far, people have only asked for V-Ray support. I’m open to supporting other renderers too, so please let us know if you’d like us to support something else.
Thanks for the responses and encouragement, it’s really refreshing that you guys are so on top of communicating with your user base. I’ll do my best to test, and share, my results in the coming week(s).