Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 35

Thread: Instances with different shapes by deform/displace technology

  1. #16
    RETROGRADER prometheus's Avatar
    Join Date
    Aug 2003
    Location
    sweden stockholm
    Posts
    16,751

    Red face

    Quote Originally Posted by Ztreem View Post
    It’s not a clone. Changes to the mesh in edit mode and shapekeys from the original( or on any instance) get reflected to ALL instances but not in edit mode, only when you exit edit mode the changes get updated to the rest of the instances that has modifiers. You can add different bones, displacement, lattices to every instance if you want.
    jwiede and ztreem..
    we cant have two versions of the truth here can we..we are not working with tachyons here.

    how can this be ellaborated to a more certain verification
    on whats going on?

    scene setups to check memory usage?
    looking forward to more input..if you guys are
    up for it?

  2. #17
    Member
    Join Date
    May 2006
    Location
    France
    Posts
    4,172
    I can't see an instancing system in Blender,
    but a duplication or linked duplication system,
    or another way to manage clones or instances,
    the difference here seems to be possibility
    to change the status from not linked (clone) to not linked (instance)
    but as said several times here, internally raytracing rules are the same everywhere,
    new geometry/deformation needing more memory for rendering,
    while historically, the term instance describes
    a bulk copy with no geometry memory cost while rendering,
    except a few transformation matrices per instance.

    Following what I said about offset time or different speed
    with animated deformed reference for instancing,
    a ratio references/instances or clones/instances should be exposed to the user,
    because he could optimize memory, varying the animation cycle length,
    offset or speed (integers or floating values).




    Denis.
    Last edited by dpont; 04-05-2020 at 01:49 AM.

  3. #18
    Quote Originally Posted by Ztreem View Post
    It’s not a clone. Changes to the mesh in edit mode and shapekeys from the original( or on any instance) get reflected to ALL instances but not in edit mode, only when you exit edit mode the changes get updated to the rest of the instances that has modifiers. You can add different bones, displacement, lattices to every instance if you want.
    HI,
    that is basically the same as for LW clones. Changes in Modeler get reflected to all clones, modifications (displacement, adding bones, animation, modifiers...) in layout can be done to each individual clone.

    ciao
    Thomas
    Web: www.dieleinwandhelden.com

    I use two pieces of the three-piece application with mocap module.

  4. #19
    Dreamer Ztreem's Avatar
    Join Date
    Jun 2003
    Location
    Sweden
    Posts
    4,194
    Quote Originally Posted by Thomas Leitner View Post
    HI,
    that is basically the same as for LW clones. Changes in Modeler get reflected to all clones, modifications (displacement, adding bones, animation, modifiers...) in layout can be done to each individual clone.

    ciao
    Thomas
    If it is using the same mesh for all clones and don’t need to load it to memory more then once then it is an instance, isn’t it?
    Last edited by Ztreem; 04-05-2020 at 02:46 AM.

  5. #20
    Quote Originally Posted by Ztreem View Post
    If it is using the same mesh for all clones and don’t need to load it to memory more then once then it is an instance, isn’t it?
    Jarno explained it for Lightwave (clones save memory, too):

    Quote Originally Posted by Jarno View Post
    ...First you have object clones. These are items that have the same LWO file, and therefore will share the same base mesh information. If any deformation is applied to a clone, then the clone will have its own set of vertex positions (but still share the same polygon data). If there is any subdivision then the clone will have its own subd mesh. So overall this is not as heavy as having individual LWO files, but there is still a fair bit of unique mesh data needed per clone.

    Second, instancing references the mesh data of an object. There is no per-instance mesh data; only a pos/rot/scale transform. That makes them very light-weight. In the renderer they are treated like holograms. There is no per-instance deformation possible because they are all views of the same mesh pretending to be in different positions...
    For Blender we only can speculed or ask a developer. So we do not know how it works under the hood.
    Just so much: if there are different deformations for each instance, more memory is needed.

    For Lightwave (until 2015) there are two thirth party tools for instancing that use a volumetric rendering aproach and can deform the mesh of each instance individual (via motion data cache format): free DP Instance by Denis Pontonnier and HD Instance form Happy Digital. Both aproaches causes higher render times than Lightwaves naitve instancing.

    ciao
    Thomas
    Last edited by Thomas Leitner; 04-05-2020 at 03:55 AM.
    Web: www.dieleinwandhelden.com

    I use two pieces of the three-piece application with mocap module.

  6. #21
    Dreamer Ztreem's Avatar
    Join Date
    Jun 2003
    Location
    Sweden
    Posts
    4,194
    Quote Originally Posted by Thomas Leitner View Post
    Jarno explained it for Lightwave (clones save memory, too):



    For Blender we only can speculed or ask a developer. So we do not know how it works under the hood.
    Just so much: if there are different deformations for each instance, more memory is needed.

    For Lightwave (until 2015) there are two thirth party tools for instancing that use a volumetric rendering aproach and can deform the mesh of each instance individual (via motion data cache format): free DP Instance by Denis Pontonnier and HD Instance form Happy Digital. Both aproaches causes higher render times than Lightwaves naitve instancing.

    ciao
    Thomas
    This is from wikipedia.

    geometry instancing is the practice of rendering multiple copies of the same mesh in a scene at once. This technique is primarily used for objects such as trees, grass, or buildings which can be represented as repeated geometry without appearing unduly repetitive, but may also be used for characters. Although vertex data is duplicated across all instanced meshes, each instance may have other differentiating parameters (such as color, or skeletal animation pose) changed in order to reduce the appearance of repetition.

  7. #22
    RETROGRADER prometheus's Avatar
    Join Date
    Aug 2003
    Location
    sweden stockholm
    Posts
    16,751
    Quote Originally Posted by Ztreem View Post
    This is from wikipedia.

    geometry instancing is the practice of rendering multiple copies of the same mesh in a scene at once. This technique is primarily used for objects such as trees, grass, or buildings which can be represented as repeated geometry without appearing unduly repetitive, but may also be used for characters. Although vertex data is duplicated across all instanced meshes, each instance may have other differentiating parameters (such as color, or skeletal animation pose) changed in order to reduce the appearance of repetition.
    Ztreem, would it be too much work for you...if we ask for you to set up a couple of thousands of instances? with some variation in displacement, and render and check the times, vs if you set up another scene witout the variations and just renders them as "instances" as we perceive them over here with lightwave.

    Also to take note of, if you orbit around them and how slow/fast that would be with the displacements VS without, and also checking scene size between these two setups.

    I think that could give us an idea, if the stats overall is the same or not...rather than comparing agains Lightwave in the first place that is...later a comparison could be made generally to see how effective the instancing is, if using the same objects and orbiting around them, rendering comparison between cycles and lw wouldnīt be that comparable considering itīs is well known as quite different ..at leas for GPU.

  8. #23
    Dreamer Ztreem's Avatar
    Join Date
    Jun 2003
    Location
    Sweden
    Posts
    4,194
    Quote Originally Posted by prometheus View Post
    Ztreem, would it be too much work for you...if we ask for you to set up a couple of thousands of instances? with some variation in displacement, and render and check the times, vs if you set up another scene witout the variations and just renders them as "instances" as we perceive them over here with lightwave.

    Also to take note of, if you orbit around them and how slow/fast that would be with the displacements VS without, and also checking scene size between these two setups.

    I think that could give us an idea, if the stats overall is the same or not...rather than comparing agains Lightwave in the first place that is...later a comparison could be made generally to see how effective the instancing is, if using the same objects and orbiting around them, rendering comparison between cycles and lw wouldnīt be that comparable considering itīs is well known as quite different ..at leas for GPU.
    I don’t know if I have time for any tests right now. I never said that instances with modifiers don’t take more memory than an instance without. It may be that clones in LW is the same as linked mesh (instance) in Blender. I think it could be a naming issue, if it use the same mesh as the original than it should be an instance but it could at the same time be called clone, reference, link or something else.

  9. #24
    RETROGRADER prometheus's Avatar
    Join Date
    Aug 2003
    Location
    sweden stockholm
    Posts
    16,751
    Quote Originally Posted by Ztreem View Post
    I don’t know if I have time for any tests right now. I never said that instances with modifiers don’t take more memory than an instance without. It may be that clones in LW is the same as linked mesh (instance) in Blender. I think it could be a naming issue, if it use the same mesh as the original than it should be an instance but it could at the same time be called clone, reference, link or something else.
    Itīs ok, if you donīt ..I will have to look at it later anyway.

    Itīs just odd to me that an instance clone with various deformation per vertex..should not need more data to store that difference in vertex displacement, than a standard simple instance with no deformation..it must be remembering more data somehow I would think than a simple instance, and especially so ever increasing per each instance that has different values for each vertex displacement to account for...and going up to several thousands..I donīt know?
    I suspect that it has more data..the question is how much more does it impact rendering or handling of the scene.

    Thanks for jumping in here as well and discussing it with us and Jarno and the others.

  10. #25
    Almost newbie Cageman's Avatar
    Join Date
    Apr 2003
    Location
    Malmö, SWEDEN
    Posts
    7,718
    Quote Originally Posted by Ztreem View Post
    If it is using the same mesh for all clones and don’t need to load it to memory more then once then it is an instance, isn’t it?
    It is a clone, not an instance.

    Make 100 identical spheres in LW and save them with separate names and load them into Layout... compared to... make one sphere, clone it 100 times in Layout... you will see a significant difference in memory usage, esp at rendertime.

    Anyways... if we go for the clones... Each of them in Layout can then have different deformers/skeletons etc.

    An instance in LW will follow whatever the instance source does, but you can randomize translation values without a huge cost. That is why they are called Instances.
    Random deformation values doesn't compute regarding instances, unless you bake them into a cache system that internaly makes offsets (based on a skeleton motion or poses, as an example)... HDInstance comes to my mind here.
    Last edited by Cageman; 04-05-2020 at 10:44 AM.
    Senior Technical Supervisor
    Cinematics Department
    Massive - A Ubisoft Studio
    -----
    Intel Core i7-4790K @ 4GHz
    16GB Ram
    GeForce GTX 1080 8GB
    Windows 10 Pro x64

  11. #26
    RETROGRADER prometheus's Avatar
    Join Date
    Aug 2003
    Location
    sweden stockholm
    Posts
    16,751
    Quote Originally Posted by Cageman View Post
    It is a clone, not an instance.

    Make 100 identical spheres in LW and save them with separate names and load them into Layout... compared to... make one sphere, clone it 100 times in Layout... you will see a significant difference in memory usage, esp at rendertime.

    Anyways... if we go for the clones... Each of them in Layout can then have different deformers/skeletons etc.

    An instance in LW will follow whatever the instance source does, but you can randomize translation values without a huge cost. That is why they are called Instances.
    Random deformation values doesn't compute regarding instances, unless you bake them into a cache system that internaly makes offsets (based on a skeleton motion or poses, as an example)... HDInstance comes to my mind here.

    Check test images...
    when I use alt-D to clone (instance link) and do that 100 times, the memory at rendertime seem the same as just using one sphere, and memory for the scene seems to be the same
    Using shift-D wich is a clone, memory at rendertime increased drasticly, and memory for scene as well.

    now..I need to see if different deformations on it would break it as an instance and turn it in to a regular clone, I know that when I alt-d clone (instanced) I could get different displacement on them anyway.
    Check memory stats on rendering and scene..








    Click image for larger version. 

Name:	1 sphere.jpg 
Views:	39 
Size:	70.1 KB 
ID:	147212

    Click image for larger version. 

Name:	ctrl d instance.jpg 
Views:	38 
Size:	82.2 KB 
ID:	147213

    Click image for larger version. 

Name:	shift d clones.jpg 
Views:	40 
Size:	105.3 KB 
ID:	147214

  12. #27
    RETROGRADER prometheus's Avatar
    Join Date
    Aug 2003
    Location
    sweden stockholm
    Posts
    16,751
    Yep..just tested that...just a few alt-d clone (instances) as before ..whith added displacement and so called instance new ones from that, will add more memory per instance unlike non displaced (true instances)
    So what I suspect and conclude to, once you start adding displacement on the instances, they break as true instances and becomes clones.

    Unless Ztreem can show otherwise?...if he has the time to do so.

    So in essential ..I suspect, blender doesnīt provide anything enhanced in the instancing department, if it infact becomes broken as instances and becomes clones, then itīs no different from just cloning in lightwave with different deformations.

  13. #28
    Dreamer Ztreem's Avatar
    Join Date
    Jun 2003
    Location
    Sweden
    Posts
    4,194
    Quote Originally Posted by prometheus View Post
    Yep..just tested that...just a few alt-d clone (instances) as before ..whith added displacement and so called instance new ones from that, will add more memory per instance unlike non displaced (true instances)
    So what I suspect and conclude to, once you start adding displacement on the instances, they brake as true instances and becomes clones.

    Unless Ztreem can show otherwise?...if he has the time to do so.

    So in essential ..I suspect, blender doesnīt provide anything enhanced in the instancing department, if it infact becomes broken as instances and becomes clones, then itīs no different from just cloning in lightwave with different deformations.
    Let us call it clones then. In Blender we call it linked meshes.

  14. #29
    RETROGRADER prometheus's Avatar
    Join Date
    Aug 2003
    Location
    sweden stockholm
    Posts
    16,751
    Quote Originally Posted by Ztreem View Post
    Let us call it clones then. In Blender we call it linked meshes.
    Thatīs not much to talk of for terms, the crucial thing is what it actually is...and not the naming conventions, and crucial on how it performs.
    I am not sure, when I did the deformations, the modifier is on it..so I would need to apply the modifier and remove it from the stack, the al-d duplicate it and see if the memory would stay the same or not.

    But you are more of an expert in blender than me...so if you could find a way to make the displaced "instances" to be cloned without increasing memory from the origin sphere when rendering..that would of course be awesome

    Here we got one swede saying one thing, and second one saying something else, and a third confused swede (hi there) ..not sure about anything, so the three swedish stooges

  15. #30
    RETROGRADER prometheus's Avatar
    Join Date
    Aug 2003
    Location
    sweden stockholm
    Posts
    16,751
    Nope...can not apply modifier displacement on those linked meshes, can not be applied to multiuser data.

Page 2 of 3 FirstFirst 123 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •