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.

gtaoVisible

Home Forums Graphics / Blender gtaoVisible

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #75050
    David Duperron
    Customer

    Hi!
    I’ve been running into some strange issues with some of my materials, which have unexpected and unpredictible behaviours.
    After a lot of testing I think it might be linked to the use of Ambient Occlusion, and the material option “gtaoVisible”.
    Where is this parameter controlled in the Blender materials definition??
    Has anyone experienced issues using the real time Ambient Occlusion??
    Thanks for the help!

    David

    #75078

    Hi David,
    This property is used to disable GTAO on materials with blend transparency… because of the artifacts it causes. The regular materials should work just fine.

    Soft8Soft Tech Chief
    X | FB | LinkedIn

    #75082
    David Duperron
    Customer

    Hi Alexander!
    Thanks for the info.
    I am completely lost right now… I’ve got a material which sometimes shows up properly, and sometimes does nos show at all. I do nothing in between these cases except refreshing my web page, with exactly the same steps…
    Here is a capture of the material:

    I use this material for a grab/rotate gizmo which is supposed to show when I select an object. the color is driven by the vertex color of the mesh, and I use the Object Index to drive the intensity of the emission (when the object is dragged, it is highlighted). Everything was working fine until now, and I cannot identify what can cause such an unpredictable behaviour.
    Same gltf file, same binary file, same js files, and after initial loading, sometimes the material shows, sometimes it is not! No error message in the console. No clue… I’m lost.

    #75083
    David Duperron
    Customer

    I think I may have found something, which is perhaps a bug. It seems that it has something to do with the “HiDPI compositing” option for the objects that has this material.
    When this option is active, an object with this material which shows up properly at the initial loading of the 3D scene can disappear after a few orbiting and change of point of view! Absolutely no other interaction with the object itself, and no puzzle related to it.
    Disabling the HiDPI option seems to solve the issue…

    #75084
    David Duperron
    Customer

    Yes. That’s it! :scratch:
    If I try to activate the HiDPI option on some of my gizmo objects (e.g. xy plane move and Z-rotate), these two objects have the issue = not showing, whereas all the other objects with the same material and no HiDPI option are showing properly.
    And the issue is not systematic as I mentionned earlier. It can show properly from time to time, without any reason.

    #75085
    David Duperron
    Customer

    Also Alexander: is there a way to control or change this parameter, either in Blender before the gltf export, or programmatically with some javascript? I don’t see any reference to this parameter in the developper reference…

    #75089

    I see, could you please provide a minimal scene which reproduces this behavior so we can check ourselves?

    Also Alexander: is there a way to control or change this parameter, either in Blender before the gltf export, or programmatically with some javascript? I don’t see any reference to this parameter in the developper reference…

    The option is assigned on all materials which have “Alpha Blend” mode. This is done during glTF export.

    Soft8Soft Tech Chief
    X | FB | LinkedIn

    #75090
    David Duperron
    Customer

    Thanks Alex!
    I’ll try to pack something that reproduces this behaviour…
    And lastly, is it possible to change this gtaoVisible parameter after the scene loading? (from false to true) and to update the material in order to display with Ambient Occlusion?
    Thanks!

    David

    #75091

    Thanks, could you please provide the Blend file as well?

    As for gtaoVisible you can try to enable it manually with the code:

    app.scene.traverse(function(obj) {
        if (obj.material)
            obj.material.gtaoVisible = true;
    });

    Just use the “exec script” puzzle to run it.

    Soft8Soft Tech Chief
    X | FB | LinkedIn

    #75092
    David Duperron
    Customer

    The easiest way would be to publish the App on the Verge3D network, but I have a 500:Internal server Error when I try to publish it. The Application folder is located outside the “normal” verge3D application folder and i use a symbolic link… any way to get it to upload properly??

    #75093
    David Duperron
    Customer

    I’ve tried to enable it manually with js code. I managed to retrieve the correct material, and write the gtaoVisible parameter to “true” but I see no effect on the viewport… I used the following code:

    const material = v3d.SceneUtils.getMaterialByName(app, "NI_paint_vertex_color")
    material.needsUpdate = true;
    material.gtaoVisible = true;
    console.log(material)
    

    I can see in the console that the parameter has been set to true, but no visual change…

    #75095
    kdv
    Participant

    I can see in the console that the parameter has been set to true, but no visual change

    Emission shader is ignored by the GTAO generator. PBR materials are also ignored (they have no nodes).

    	    canUseGTAO() {
    	        const canUse =
    	                // GTAO only (diffuse occlusion)
    	                this.hasNode('BSDF_DIFFUSE_BL')
    	                || this.hasNode('SUBSURFACE_SCATTERING_BL')
    	                || this.hasNode('PHYSICAL_MX')
    	                || this.hasNode('STANDARD_SURFACE_AR')
    
    	                // GTSO only (specular occlusion)
    	                || this.hasNode('BSDF_GLASS_BL')
    	                || this.hasNode('BSDF_GLOSSY_BL')
    
    	                // GTAO + GTSO
    	                || this.hasNode('BSDF_PRINCIPLED_BL')
    	                || this.hasNode('EEVEE_SPECULAR_BL');
    
    	        return canUse && this.gtaoVisible;
    	    }

    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.

    #75109
    David Duperron
    Customer

    Thanks @kdv!
    The material on which I would like to activate gtao is not an emission shader.
    GTAO can actually be activated on it as I can do it manually by changing the gtaoVisible parameter in the .gltf file before loading the application.
    In fact this parameter is false by default because the material has a transparency (alpha blend) which can be controlled by the user. Most of the time the material is opaque, and then it looks much better with GTAO, and in some rare cases the transparency is used, and in those cases, the problems related to GTAO in use with transparency are not really an issue for me… so I would like to be able to change this gtaoVisible parameter for this material after loading of the gltf file, and be avle to see the result in the viewport.

Viewing 13 posts - 1 through 13 (of 13 total)
  • You must be logged in to reply to this topic.