Announcement

Collapse
No announcement yet.

Proxy Vs Native Maya geometry - Render Speeds

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Proxy Vs Native Maya geometry - Render Speeds

    Hi guys.
    Splitting this issue out from my other topic(sample differences between proxy and maya model in certain setups.... which Im still investigating) in order to have a more specific discussion.

    It seems that there is quite a large difference in speeds between rendering with Native Maya geometry and then using a VrayProxy loading an Alembic file.
    On our production assets and production scenes the differences are significant at least.

    In order to debug it myself and to give something clear to you guys, I've tried to construct a simple scene that illustrates what we see.
    Ive created a simple scene which is attached to this post.
    Two polygon spheres (one with a 100/100 subdivions and one with standard 20/20, all in all 20560 triangles)
    Exported to alembic using maya defaults (UV write, Write Creases on)
    Alembic is then loaded though a VrayProxy node using standard settings
    An ALshader(no inputs, and barely any changes to default settings) is then assigned to the maya geometry and into both spheres in the proxy though the VrayMtl node ( and this time Im sure its assigned because I was smart to change the colors )
    A Vray Dome light is created
    Ive increased the sampling quality(low threshold) to get get render times that are high enough to not be affected by momentary CPU changes on the machine, and also to not be affected by general overheads in starting the renderer.
    The scene is attached to this post.

    These are the stats I get from rendering this scene, toggling visibility between proxy and maya geo.
    Ive done multiple tests over the last few days and its the same behavior im getting, so this should not be a random fluke.

    439 Seconds Maya Geometry - ( using default behavior loaded into Embree Static Tree )
    507 Seconds Maya Geometry - ( forced into the Embree Dynamic Tree )
    525/550 Seconds Vray Proxy - ( using default behavior loaded into Embree Dynamic Tree )

    The images produced are identical with the two tests of maya geometry, but with the Vray proxy you can see a small variation on the edge probably caused by reflections (Variations that we visually would not object to when using one or the other method out of context to each other).
    That there is a difference visually hints that the geometries within the rendere are not exactly the same perhaps.
    Sample counts are pretty much the same in all 3 renders (though not exactly identical, not enough for it to affect render times)

    From what we see(I think) the differences gets larger the more complicated and heavy the scene is (so increased raycasts gives larger differences, which hints that its perhaps a an embree tree speed difference thus my test cases).
    Looking at the times for our production scenes(thousands of objects in a proxy and millions of polygons), the relative difference increases, and in some of our scenes I almost see a 2x difference in rendertime between proxy and maya models (though I have to admit that other factors could be in play here in comparison to this specific test scene as often happens with complicated scenes)

    My questions are then.
    • Am I treating my alembic exports correctly (any settings I should be focused on that could have a clear effect)
    • Am I treating my Vray proxy correctly ( any subdivision settings in play in my test scene which Ive overlooked )
    • Is there a difference in how Vray treats (subdivides, tessellates) my proxy geometry (like trying to render it as subdiv?, but with no smoothing it seems)
    • Is there any debugging flags I can turn on that will give me more insight into the amount of geometry loaded/handled (and how its perhaps subdivided or treated)
    • Are there any debugging flags in general I can turn on to give me more insight into what could be different in my tests
    • Is the difference in speed between Dynamic and Static Embree trees expected ( so the maya geometry shows a difference which can be directly compared which is wierd )
    • Assuming that I have done everything correctly and its the same geometry, then why is there a difference between a "proxy" node using the Dynamic trees, and then maya geometry using the same tree.
      • Are there other differences in how Proxy nodes have their geometry submitted/handled besides getting pushed into static or dynamic embree trees.
    Hope you can make me wiser on this.
    (and I really hope I didn't mess up in my tests this time around)

    Thanks for your help in advance,
    Jimmi

    The full outputs from the renders are in the next post

    Attached Files

  • #2
    Had to strip a few things to make it fit (and they were less important anyway)

    Maya Geometry - Dynamic Geometry Forced

    [2018/Apr/12|14:09:05] V-Ray: Compiling geometry...
    [2018/Apr/12|14:09:05] V-Ray: Using embree ray tracing.
    [2018/Apr/12|14:09:05] V-Ray: Building embree dynamic geometry tree...
    [2018/Apr/12|14:09:05] V-Ray: Embree dynamic geometry tree contains 2 primitives.
    [2018/Apr/12|14:09:05] V-Ray: Embree dynamic geometry tree built in 47.41 ms.
    [2018/Apr/12|14:09:05] V-Ray: Embree dynamic geometry tree takes 0.01 MB.
    [2018/Apr/12|14:09:05] V-Ray: Using 0.69 MB for adaptive lights buffer
    [2018/Apr/12|14:09:05] V-Ray: Tracing 1000000 image samples for light cache in 64 passes.
    [2018/Apr/12|14:09:05] V-Ray: Using 35.16 MB for light cache preview buffer
    [2018/Apr/12|14:09:05] V-Ray: Building light cache...
    [2018/Apr/12|14:09:07] V-Ray: Merging light cache passes...
    [2018/Apr/12|14:09:07] V-Ray: Light cache contains 2430 samples.
    [2018/Apr/12|14:09:07] V-Ray: Light cache base memory usage is 7.3 MB.
    [2018/Apr/12|14:09:07] V-Ray: Prefiltering light cache...
    [2018/Apr/12|14:09:07] V-Ray: Average rays per light cache sample: 203.07 (min 1, max 545)
    [2018/Apr/12|14:09:07] V-Ray: Using premultiplied light cache.
    [2018/Apr/12|14:09:07] V-Ray: Rendering image...
    [2018/Apr/12|14:17:28] V-Ray: Number of raycasts: 2195900639 (2382.70 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: Camera rays: 222528223 (241.46 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: Shadow rays: 657496141 (713.43 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: GI rays: 704969305 (764.94 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: Reflection rays: 233992306 (253.90 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: Refraction rays: 0 (0.00 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: Unshaded rays: 377042769 (409.12 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: Light cache utilization: 98.52%
    [2018/Apr/12|14:17:28] V-Ray: Premultiplied light cache utilization: 99.50%
    [2018/Apr/12|14:17:28] V-Ray: Number of light evaluations: 371719447 (403.34 per pixel)
    [2018/Apr/12|14:17:28] V-Ray: Maximum memory usage for resman: 1.73 MB
    [2018/Apr/12|14:17:28] V-Ray: Number of intersectable primitives: 3
    [2018/Apr/12|14:17:28] V-Ray: SD triangles: 0
    [2018/Apr/12|14:17:28] V-Ray: MB triangles: 0
    [2018/Apr/12|14:17:28] V-Ray: Static primitives: 2
    [2018/Apr/12|14:17:28] V-Ray: Moving primitives: 0
    [2018/Apr/12|14:17:28] V-Ray: Infinite primitives: 1
    [2018/Apr/12|14:17:28] V-Ray: Static hair segments: 0
    [2018/Apr/12|14:17:28] V-Ray: Moving hair segments: 0
    [2018/Apr/12|14:17:31] V-Ray: Successfully written image file "proxy_issue.png"
    [2018/Apr/12|14:17:31] V-Ray: Total frame time 0h 8m 27.5s (507.5 s)

    Maya Geometry - Static Geometry
    [2018/Apr/12|14:31:48] V-Ray: Compiling geometry...
    [2018/Apr/12|14:31:48] V-Ray: Using embree ray tracing.
    [2018/Apr/12|14:31:48] V-Ray: Building embree static accelerator ...
    [2018/Apr/12|14:31:48] V-Ray: Building embree static trees took 82 milliseconds
    [2018/Apr/12|14:31:48] V-Ray: Building embree dynamic geometry tree...
    [2018/Apr/12|14:31:48] V-Ray: Embree dynamic geometry tree contains 0 primitives.
    [2018/Apr/12|14:31:48] V-Ray: Embree dynamic geometry tree built in 39.82 ms.
    [2018/Apr/12|14:31:48] V-Ray: Embree dynamic geometry tree takes 0.00 MB.
    [2018/Apr/12|14:31:48] V-Ray: Using 0.69 MB for adaptive lights buffer
    [2018/Apr/12|14:31:48] V-Ray: Tracing 1000000 image samples for light cache in 64 passes.
    [2018/Apr/12|14:31:48] V-Ray: Using 35.16 MB for light cache preview buffer
    [2018/Apr/12|14:31:48] V-Ray: Building light cache...
    [2018/Apr/12|14:31:50] V-Ray: Merging light cache passes...
    [2018/Apr/12|14:31:50] V-Ray: Light cache contains 2435 samples.
    [2018/Apr/12|14:31:50] V-Ray: Light cache base memory usage is 7.3 MB.
    [2018/Apr/12|14:31:50] V-Ray: Prefiltering light cache...
    [2018/Apr/12|14:31:50] V-Ray: Average rays per light cache sample: 202.65 (min 1, max 545)
    [2018/Apr/12|14:31:50] V-Ray: Using premultiplied light cache.
    [2018/Apr/12|14:31:50] V-Ray: Rendering image...
    [2018/Apr/12|14:39:05] V-Ray: Number of raycasts: 2195880864 (2382.68 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: Camera rays: 222527301 (241.46 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: Shadow rays: 657491846 (713.42 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: GI rays: 704962087 (764.93 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: Reflection rays: 233989568 (253.89 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: Refraction rays: 0 (0.00 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: Unshaded rays: 377037661 (409.11 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: Light cache utilization: 98.52%
    [2018/Apr/12|14:39:05] V-Ray: Premultiplied light cache utilization: 99.50%
    [2018/Apr/12|14:39:05] V-Ray: Number of light evaluations: 371713225 (403.33 per pixel)
    [2018/Apr/12|14:39:05] V-Ray: Maximum memory usage for resman: 0.00 MB
    [2018/Apr/12|14:39:05] V-Ray: Number of intersectable primitives: 20561
    [2018/Apr/12|14:39:05] V-Ray: SD triangles: 20560
    [2018/Apr/12|14:39:05] V-Ray: MB triangles: 0
    [2018/Apr/12|14:39:05] V-Ray: Static primitives: 0
    [2018/Apr/12|14:39:05] V-Ray: Moving primitives: 0
    [2018/Apr/12|14:39:05] V-Ray: Infinite primitives: 1
    [2018/Apr/12|14:39:05] V-Ray: Static hair segments: 0
    [2018/Apr/12|14:39:05] V-Ray: Moving hair segments: 0
    [2018/Apr/12|14:39:07] V-Ray: Successfully written image file "proxy_issue.png"
    [2018/Apr/12|14:39:07] V-Ray: Total frame time 0h 7m 19.1s (439.1 s)

    Proxy(alembic) - Dynamic Geometry
    [2018/Apr/12|14:43:55] V-Ray: Mesh file "....../geo.abc" linked successfully.
    [2018/Apr/12|14:43:55] V-Ray: Compiling geometry...
    [2018/Apr/12|14:43:55] V-Ray: Using embree ray tracing.
    [2018/Apr/12|14:43:55] V-Ray: Building embree dynamic geometry tree...
    [2018/Apr/12|14:43:55] V-Ray: Embree dynamic geometry tree contains 2 primitives.
    [2018/Apr/12|14:43:55] V-Ray: Embree dynamic geometry tree built in 48.47 ms.
    [2018/Apr/12|14:43:55] V-Ray: Embree dynamic geometry tree takes 0.01 MB.
    [2018/Apr/12|14:43:55] V-Ray: Using 0.69 MB for adaptive lights buffer
    [2018/Apr/12|14:43:55] V-Ray: Tracing 1000000 image samples for light cache in 64 passes.
    [2018/Apr/12|14:43:55] V-Ray: Using 35.16 MB for light cache preview buffer
    [2018/Apr/12|14:43:55] V-Ray: Building light cache...
    [2018/Apr/12|14:43:57] V-Ray: Merging light cache passes...
    [2018/Apr/12|14:43:57] V-Ray: Light cache contains 2433 samples.
    [2018/Apr/12|14:43:57] V-Ray: Light cache base memory usage is 7.3 MB.
    [2018/Apr/12|14:43:57] V-Ray: Prefiltering light cache...
    [2018/Apr/12|14:43:57] V-Ray: Average rays per light cache sample: 202.61 (min 1, max 609)
    [2018/Apr/12|14:43:57] V-Ray: Using premultiplied light cache.
    [2018/Apr/12|14:43:57] V-Ray: Rendering image...
    [2018/Apr/12|14:52:38] V-Ray: Number of raycasts: 2194347249 (2381.02 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: Camera rays: 222521488 (241.45 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: Shadow rays: 657387764 (713.31 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: GI rays: 704991272 (764.96 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: Reflection rays: 233263250 (253.11 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: Refraction rays: 0 (0.00 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: Unshaded rays: 376312352 (408.33 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: Light cache utilization: 98.45%
    [2018/Apr/12|14:52:38] V-Ray: Premultiplied light cache utilization: 99.49%
    [2018/Apr/12|14:52:38] V-Ray: Number of light evaluations: 371369710 (402.96 per pixel)
    [2018/Apr/12|14:52:38] V-Ray: Maximum memory usage for resman: 3.03 MB
    [2018/Apr/12|14:52:38] V-Ray: Number of intersectable primitives: 3
    [2018/Apr/12|14:52:38] V-Ray: SD triangles: 0
    [2018/Apr/12|14:52:38] V-Ray: MB triangles: 0
    [2018/Apr/12|14:52:38] V-Ray: Static primitives: 2
    [2018/Apr/12|14:52:38] V-Ray: Moving primitives: 0
    [2018/Apr/12|14:52:38] V-Ray: Infinite primitives: 1
    [2018/Apr/12|14:52:38] V-Ray: Static hair segments: 0
    [2018/Apr/12|14:52:38] V-Ray: Moving hair segments: 0
    [2018/Apr/12|14:52:40] V-Ray: Successfully written image file "proxy_issue.png"
    [2018/Apr/12|14:52:40] V-Ray: Total frame time 0h 8m 45.8s (525.8 s)

    Comment


    • #3
      Thanks for the scene, let me run some profiles and see what's going on. My recent tests with V-Ray Next show quite a small difference between proxies and dynamic geometry. Btw is this on Windows or Linux? Which V-Ray version?

      Best regards,
      Vlado
      I only act like I know everything, Rogers.

      Comment


      • #4
        Ahh damnit. Keept on repeating in my head before doing the ticket that I should remember those details.. and then before I finished writing it up I had forgotten. Typical.

        Maya 2018, Vray 3.6004, Windows 7

        Thanks for having a look,
        Jimmi

        Comment


        • #5
          We are experiencing the same issues, but are on 2018.2. Heavy proxies seem to make matters worse, but I think that has been said.

          Comment


          • #6
            Ello there Vlado.

            Did your profiling uncover anything interesting?

            Comment


            • #7
              Hi, sorry for the late reply; things seem to be more or less normal. On one side, V-Ray Next is quite a bit faster than V-Ray 3.x in all cases. On the other side, proxies are just as fast as regular dynamic geometry. There are more things that can be optimized for sure and we will be looking into that.

              Best regards,
              Vlado
              I only act like I know everything, Rogers.

              Comment


              • #8
                Originally posted by vlado View Post
                Hi, sorry for the late reply; things seem to be more or less normal. On one side, V-Ray Next is quite a bit faster than V-Ray 3.x in all cases. On the other side, proxies are just as fast as regular dynamic geometry. There are more things that can be optimized for sure and we will be looking into that.

                Best regards,
                Vlado
                Well, at least I know its normal now and its not necessarily something that we are doing wrong on our end.
                The difference between the two are quite significant once the proxys contents get large and the scenes more complex, so any optimizations would off course be welcome on that front

                Looking forward to trying out NEXT. Is it "just" faster in the general sense, or is it also specifically better at sampling the dynamic tree, compared to the current Vray version?

                I know this somewhat defies the point of the vrayProxy setup, but would it be possible to have force the proxy to expand already at init/setup/whatever of vray, getting it to push the geometry into the static tree.?
                Just a tickbox on the node/plugin telling vray to expand the proxy when it construct the scene in its initialization fase.

                In that way, we can keep our pipeline clean using the proxy nodes, and then if memory allows, we could, on selected proxys, force early expansion so that it gets into the static trees and thereby gain the speed improvements?
                Also it could hopefully(still really hoping for proxy support in general) potentially allow us to use Cryptomatte on those proxys in that mode?

                Its defying the deffered rendering we attempt though the proxy, but at least it will still keep our scenes clean and our pipeline setups simple.
                As previously mentioned in forum threads, our crew is toggling assets into "maya mode" just to get cryptomatte and faster rendering, which just hurts me each time.
                Its really not the direction we would like to go, but anything small to help ease the pain a bit for now would be great ( an expansion/replacement of the proxy setup to get fully deffered rendering support is still very much being hoped for ).

                Jimmi

                Comment

                Working...
                X