We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.

Instancing

Home Forums General Questions Instancing

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #10815
    Avier3D
    Customer

    Hello peeps,
    I’m working on an architectural model that has hundreds of furniture assets, while there’s only ~8 original models, I have them all duplicated by instancing in Blender.

    Is there a way of forcing V3D to recognize the instancing, and hence save geometry load?

    although once rendered the total amount of tris is high, by instancing the saved data is much, much smaller.

    Any clues?

    Cheers.

    #10817

    Hi,

    This is a very good question! In Blender, make sure that geometry is shared by similar objects. Check the number of users for such objects in Object Data tab – it should not be equal to one if geometry is shared.

    In order to instantiate objects with their geometry shared, use the Duplicate Linked operator (Alt-D) rather than Duplicate Objects (Shift-D).

    If you already duplicated the geometry, you can make it shared by clicking on the small button near the mesh name and selecting the same mesh for all similar objects.

    As a result, the binary file of the exported scene will be much lighter!

    Attachments:
    You must be logged in to view attached files.

    Chief 3D Verger | LinkedIn | Twitter

    #10895
    Avier3D
    Customer

    Ah right! so does V3D recognize the instances (and GLTF does transport it)? I’m just wondering if using it does save data volume.

    #10896
    jem
    Customer

    I can confirm that this technique works. I use it in all of my scenes. The resulting .bin file is much smaller. You will save data.

    Jeremy Wernick

    #10897

    Yep! Scene graph nodes in the gltf file refer to the same geometry in the binary file, thus saving data.

    Chief 3D Verger | LinkedIn | Twitter

    #20901
    NaxosCG
    Customer

    Hello,

    What about 3dsmax’s instanced geometries ?
    Does the Verge3D exporter use them as instances ?

    Regards.

    "1+1=3... for large values of 1"

    #20906

    Well I’m not sure – but you can make an experiment and see if the size of the binary file .bin is decreased when using instances rather than copies.

    Chief 3D Verger | LinkedIn | Twitter

    #20908
    NaxosCG
    Customer

    Well I’m not sure – but you can make an experiment and see if the size of the binary file .bin is decreased when using instances rather than copies.

    Ok, i’ll do.

    "1+1=3... for large values of 1"

    #37956
    xeon
    Customer

    OK….I think something has changed since the last time this thread was discussed. I also use Duplicate Linked objects in blender and had success using them in Verge until recently. I am using Blender 2.91.2 and Verge3.5.

    Now my assumption is the instancing is no longer working in Verge with the update of how Collections work in Blender now, but I need someone to validate that I am right or wrong.

    To recreate start with a new Verge app and new blender scene with one UV sphere (or any object) with default lighting. In my cases yields 1932 triangles validated using Blenders stat overlay. To determine the number of triangles used by Verge I used the Print Performance Info puzzle by itself and tested the output of a single sphere… and received 1932 triangles. Then I added a Duplicate Linked sphere of the original and Blender reports back no additional triangles in the stat window. Then when I publish this in the same Verge3d settings….it generates 3852 triangles. Not what I was expecting.

    This is a simple example that can be repeated but I am wondering if I am missing a step or if there is some other setting I need to verify that is selected so Verge3d will interpret this correctly or is this a new bug?

    Attachments:
    You must be logged in to view attached files.

    Xeon
    Route 66 Digital
    Interactive Solutions - https://www.r66d.com
    Tutorials - https://www.xeons3dlab.com

    #64604
    huib
    Customer

    Hey, bumping this thread because there wasn’t a official reply and we are experiencing the same thing. Instances made in Blender don’ t get translated over properly.

    Saved a scene with a bunch of trees, all instanced. Resulting .gltf file 500 KB.
    Joined all the trees into one object, saved again, Resulting in a .gltf file of 300KB.
    With regards to loading times on phones for example this is huge.
    Can we get an update on this please :)?

    #64605
    kdv
    Participant

    You just compare wrong files. GLTF is a JSON-format file with objects’ properties (position/rotation/scale, material names, texture names etc.). The more separate objects in the scene the more size of GLTF. Geometry buffers are stored in BIN and loaded from there by index from object’s properties.

    Instanced meshes (.bin 0,63 Mb) vs individual meshes (.bin 1,23 Mb).

    It’s OK with instanced geometries in Blender/Verge3D.

    Puzzles and JS coding. Fast and expensive.

    If you don’t see the meaning in something it primarily means that you just don’t see it but not the absence of the meaning at all.

    #64611
    huib
    Customer

    Okey thanks for clearing that up. I should have known this haha!
    Did a test with a model of a tree, went from 24mb instanced version to 660mb unique meshes version, so that clearly works!

    #64614
    kdv
    Participant

    and received 1932 triangles. Then I added a Duplicate Linked sphere of the original and Blender reports back no additional triangles in the stat window. Then when I publish this in the same Verge3d settings….it generates 3852 triangles. Not what I was expecting.

    And what were you expecting? The count of used tris in the scene (in Blender) and the count of rendered tris (in Verge3D) are two big differencies as they say in Odessa. Look at the count of geometry buffers. In both cases it is 2 (used geometries). The count of rendered geometries is different (rendered geometries, render calls). Blender’s statistics doesn’t show the overall amount of tris rendered. Only the unique ones. Instanced geometries won’t make you app work faster, they will make the app’s .bin smaller decreasing loading time…

    Puzzles and JS coding. Fast and expensive.

    If you don’t see the meaning in something it primarily means that you just don’t see it but not the absence of the meaning at all.

    #76115
    jerenz
    Participant

    My scene has a lot of trees instances in blender, when I export as verge 3d gltf, the .bin is small.
    Then in verge 3d , i use the batch geometry puzzle for the tree collection, thus reducing thousands of render calls , but rendered geometry stays the same .
    However , when using the batch geometry puzzle, I lost the (object info ,random node) functionality to give my each trees slightly different tint.

    Is this the best way to do it? Or anyway I can do it better?

    Attachments:
    You must be logged in to view attached files.
Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.