Announcement

Collapse
No announcement yet.

I_VRAYGEOMETRY never queried

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

  • I_VRAYGEOMETRY never queried

    With the latest build of VRay NEXT 1.2 GPU, my SimpleObject2 plugin is never asked for its I_VRAYGEOMETRY interface, so instances never render.

    When rendering in normal mode (not GPU), it is ....and so instances render fine.

    Any ideas why?

  • #2
    V-Ray GPU handles all translation of 3rd party plugins on its own (Forest Pack, RailClone, MultiScatter, Ornatrix, HairFarm etc) and does not rely on the I_VRAYGEOMETRY interface. We will have to teach it to recognize TyFlow instances and extract the instancing information in some way; most plugins allow this by providing some simple API to query the properties of the instances (their count, transformations, velocity information etc).

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

    Comment


    • #3
      Thanks vlado, tyFlow geometry has 2 parts...the particles themselves (which can be queried with IParticleObjExt interface), and its internal meshes (cloth, actor skin, etc)....which have no direct interface (although I guess with some cheating I could treat them all like a single particle with a giant mesh). What do you think would be the best way to have tyFlow communicate with V-Ray GPU? Do you have a generic interface you send to those devs that they implement? Or they each provide you with their own?

      Comment


      • #4
        Hey, just bumping this thread...would love to get NEXT GPU support in tyFlow...

        Comment


        • #5
          We currently don't have any generic interface for that. The different instancing plugins provide their interface and we use it.
          Most of them boil down to something like the following:
          1. Some way to identify that the Max object is a special one. Here we can use the object's ClassID.
          2. Some way to get the special interface - for example Max's Object::GetInterface
          3. Optionally - we can call some initialization method - to tell the plugin to generate the instances at the current time
          4. A method to query the number of instances
          5. A method to get data for i-th instance
            1. The Max node that is being instanced or some way to get the geometry - Mesh object or something
            2. Transformation
            3. Material
          6. If needed - some method to deinitialize

          Yavor Rubenov
          V-Ray for 3ds Max developer

          Comment


          • #6
            Thank you yavor, I'll try to put something together in the coming weeks.

            Comment


            • #7
              Few things I forgot:
              • It would be good if there is some way we can query the version of the currently installed tyFlow to enable/disable features at runtime
              • If possible - it would be good if each instance has some unique ID. We can use that ID to get proper motion blur across frames with different total number of instances

              Yavor Rubenov
              V-Ray for 3ds Max developer

              Comment


              • #8
                Hey Yavor/Vlado,

                I now have an API for you to use to get tyFlow instancing working with VRay NEXT GPU. I've re-written my internal VRay 3.x and 4.x CPU implementations to use this interface, so in that sense I know the relevant parts are working and tested.

                Attached is the interface. Really the only relevant function for you to call is CollectInstances. That will return arrays of particle transforms grouped by shared mesh, so the process of converting the data to actual instances on your end should be really straight-forward. You will also see there is a function to get the mesh's map channel which contains per-frame vertex velocities, allowing deforming meshes to have motion blur computed on their verts.

                If you need clarification on anything, I don't mind answering here in the forum publicly or you can also email me at support@tyflow.com. I've also attached a labeled benchmark scene that includes examples of all features in tyFlow that will need to be supported in the renderer. Each example is labeled...once the rendered result matches the labels, you know your implementation is working properly. Included is also an example image (rendered w/VRay 3.x) which you can use as a reference for how the result of VR GPU should look.

                Thanks!
                Attached Files
                Last edited by tysonibele; 15-01-2020, 11:10 PM.

                Comment


                • #9
                  Thanks for the API - it looks good. I hope we get to it soon.
                  The benchmark scene will be very helpful.
                  Yavor Rubenov
                  V-Ray for 3ds Max developer

                  Comment


                  • #10
                    Hey Yavor, just curious if any progress was made on this? Especially with VR5 on the horizon

                    Comment


                    • #11
                      Hey Tyson,

                      Sorry unfortunately we haven't got to this yet but it is in the list.

                      Best regards,
                      Yavor
                      Yavor Rubenov
                      V-Ray for 3ds Max developer

                      Comment


                      • #12
                        I am sure you guys are super busy, especially with vray 5 etc... but (no offence to vray or chaos ;o) tyflow is the most exciting thing to happen to max in..well.. possibly forever.. So if this could be quite high on the list.. tyflow +vray gpu is a very exciting combination .

                        Comment


                        • #13
                          We will get to it.

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

                          Comment

                          Working...
                          X