Announcement

Collapse
No announcement yet.

render instances vs multi instances

Collapse
This topic has been answered.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • render instances vs multi instances

    Originally posted by nunomatos View Post
    hello to all thanks for the update on my doubts
    deyan.hadzhiev thanks for clarifying all my doubts.
    Regarding your points:
    - about instances and render instances and multi instances, i understand but again and thinking on V-ray3.7 (because it was my render engine since about 2007(15 years)) they work super fast and starts always instantly I must say that was more or less the same as today's multi instances system... Again i know V-ray 5 is completely different from 3.xxx but maybe worth to speak with stefan or even Maxon to see if there is a way to "paint" manually clones ... Unfortunately Multi instances only works with Mograph or other scatter plugins and you can not control manually the position of the elements... and that's why we use a lot of render instances or instances to place manually where we want... :S Again, and I don't want to make this kind of comparisons but is the render engine more similar to V-ray and now that is a Chaos product, Corona dealing with instances and render instances very well


    pump for this..
    render instances are still much slower then multi instances. Why is that? And can it be fixed (same speed for both)
  • Answer selected by aleksandar.kasabov at 26-04-2023, 10:51 PM.

    Hi tomschmid, as I briefly explained in the original post - there is a reason there are three types of instancing in the Cloner object and Maxon still keep all three types.

    I'll try to give a little more in-depth details.

    Generally the "Instance" mode is most flexible and allows complex per-instance modification and customization. But its biggest downside is that it effectively creates a copy for each instance.
    The "multi-instance" mode is the fastest, because it stores the per-instance data (transformation, color, etc) in a compact layout in the memory, so accessing it is really fast. Its downside is that some per-instance customizations are not possible and having this in hierarchies is not robust.
    The "render-instance" mode is something in the middle of the two - it preserves memory by simply referencing an object, but it does not store its data in the compact layout of the multi-instance mode. So this makes it faster than the standard instance, but still slower to process than the multi-instance.

    So to answer your question whether it can be fixed - there will always be speed differences between the two, mostly because of the way the instances are represented internally in Cinema 4D (as I explained above). While we may try to improve our logic for processing this data, it is highly unlikely that equal speeds will ever be achieved.

    So as a general hint on instancing - use multi-instances whenever possible and when no complex per-instance modifications are necessary and the cloner is not part of a complex hierarchy.
    Last edited by deyan.hadzhiev; 26-04-2023, 07:17 AM.

    Comment


    • #2
      Hi tomschmid, as I briefly explained in the original post - there is a reason there are three types of instancing in the Cloner object and Maxon still keep all three types.

      I'll try to give a little more in-depth details.

      Generally the "Instance" mode is most flexible and allows complex per-instance modification and customization. But its biggest downside is that it effectively creates a copy for each instance.
      The "multi-instance" mode is the fastest, because it stores the per-instance data (transformation, color, etc) in a compact layout in the memory, so accessing it is really fast. Its downside is that some per-instance customizations are not possible and having this in hierarchies is not robust.
      The "render-instance" mode is something in the middle of the two - it preserves memory by simply referencing an object, but it does not store its data in the compact layout of the multi-instance mode. So this makes it faster than the standard instance, but still slower to process than the multi-instance.

      So to answer your question whether it can be fixed - there will always be speed differences between the two, mostly because of the way the instances are represented internally in Cinema 4D (as I explained above). While we may try to improve our logic for processing this data, it is highly unlikely that equal speeds will ever be achieved.

      So as a general hint on instancing - use multi-instances whenever possible and when no complex per-instance modifications are necessary and the cloner is not part of a complex hierarchy.
      Last edited by deyan.hadzhiev; 26-04-2023, 07:17 AM.
      Deyan Hadzhiev
      Developer
      chaos.com

      Comment


      • #3
        thanks for your detailed explanation. Unfortunately, as far as I know, there is no function to convert manually positioned render-instances into multi-instances. Only possible when automatic scattered.

        Comment


        • #4
          I'm not sure there is something for conversion of existing instances, but you can surely fine tune the scatter object (as shown in this Cinema 4D tutorial: https://www.youtube.com/watch?v=JyGfpnSgd8c ). And the scatter object is also generating objects equivalent to multi-instances from Cloner (meaning that it should have comparable performance).
          Edit: Just wanted to add that in order to actually use the Scatter object as multi-instances it should be kept as parametric object. If it is made editable, Cinema 4D converts the objects to single render instances, in order to allow per-instance modifications and the optimization from multi-instance usage is lost.
          Last edited by deyan.hadzhiev; 26-04-2023, 11:50 PM.
          Deyan Hadzhiev
          Developer
          chaos.com

          Comment

          Working...
          X