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.

Verge3D 4.7 pre1 available!

Home Forums Official Announcements Verge3D 4.7 pre1 available!

Tagged: 

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #72877

    We are beginning a new release cycle! The first preview of Verge3D 4.7 includes:

    ☞ Service Tools to quickly review and debug a live application
    ☞ new primitives with the create object puzzle
    ☞ new puzzle to trigger events for HTML elements
    ☞ drag-scaling in all 3 directions at the same time
    ☞ glTF and USDZ export can now handle node-based materials
    ☞ exposed Puzzles API for plugin developers
    ☞ massive cleanup of obsolete code
    ☞ support for ARM64 processors under Linux (Raspberry Pi)
    ☞ fixed bugs

    More details below:

    Chief 3D Verger | LinkedIn | Twitter

    #72878

    Service Tools

    A new utility called Service Tools can now be invoked in any application by pressing the tilde ~ key 3 times. This reveals a menu to run the FPS counter or performance profile, to halt/resume rendering, and, which is new, to run the scene in debug mode: show geometry wireframes, lights, skeletons, or normals.

    You can use these new tools to unravel, tweak and optimize your apps more easily.

    Puzzles

    The puzzle create object extended with a few new primitives, namely capsule, icosahedron and ring. We changed the default params for some primitives for more even distribution of polygons, a task for which the wireframe view provided a great feedback. Also the teapot primitive was scaled down by half to match the size of other meshes. By the way, the material for all created primitives is now node-based and fully integrated in the rendering pipeline.

    More on create object: when adding a new camera, you can now set the control type right away, that is make it Orbit, Flying, First Person, or without any controls. We also fixed a window resizing issue for the created camera.

    We added a new puzzle to the HTML category named trigger event. It allows you to call corresponding methods for clicks, taking focus, or leaving focus (aka blur). For example, if your app is working inside an iframe, you can simulate a click on some button outside the iframe (such as clicking the order button in a shop).

    On the other hand, with focus, you can make the 3D canvas active and ready for user input. We added this puzzle to the iframe-based demos (Scooter, Teapot Heater, Recliner etc) to make it possible to easily enter the debug mode with the Service Tools.

    The puzzle drag scale obtained a handy option for proportional scaling denoted as XYZ in its drop-down.

    The puzzles simple refraction and screen-space refraction can now work in the same scene. The resulting effect will be shown in a new coming demo.

    Features specific to Blender

    Cascade shadows settings are now supported in the Eevee Next renderer that will appear in the upcoming Blender 4.2.

    We fixed export crash when the target for the Follow Path constraint is not specified.

    We fixed the add-on crash when running on top of Python 3.12. This issue manifests itself on recent Linux distros such as Fedora 39/40 or Ubuntu 24.04 if you install Blender via the package manager. This also fixes a potentially existing similar issue in the Maya plug-in.

    We fixed the Specular BSDF node that rendered in black in the latest Blender version.

    We fixed the Principled BSDF node crashing in the engine when exported from Blender 4.2.

    Features specific to 3ds Max or Maya

    Cascaded shadows are now available not only to 3ds Max but also to Maya users.

    Maya shaders are now compiled for the engine faster.

    The puzzles get/set material color now correctly work for Standard Surface materials in Maya.

    We fixed the export crash in the latest 3ds Max 2025 caused by JPEG textures inserted in a glTF-compatible material.

    The diffuse shading of clipping planes is made consistent with color settings in Maya.

    Please note that with this version, we drop support for 3ds Max 2021 since this older software can no longer be downloaded from Autodesk.

    glTF and USDZ exporters

    Both glTF and USDZ exporter puzzles have been upgraded to support native node-based materials. This means that you no longer need to enable the glTF 2.0 Compatible checkbox for your materials in the modeling tool for these export puzzles to work properly, which was a very non-obvious thing. In addition, you can now use texture wrapping modes, compressed textures, and vertex colors when exporting to both glTF and USDZ.

    This was achieved by enabling both glTF and USDZ exporters heuristically analyze the node material and accurately retrieve colors, AO, roughness, metalness, and other parameters (over-complicated materials will be simplified though). Overall, we obtained a better compliance to the glTF and USDZ formats, with the latter especially important since USDZ is currently the only way to have AR on iOS.

    In Blender, you can now use not only Principled BSDF but also Diffuse, Glossy, Specular, and Emission shaders with these exporters. In 3ds Max, you can now use not only Physical material, but also Arnold’s Lambert, Standard Surface, and Map to Material materials with these exporters. In Maya, you can now use not only Standard Surface, but also Lambert, Arnold’s Lambert, and Surface Shader nodes with these exporters.

    On a final note, NOT using the glTF 2.0 Compatible checkbox starting from this version would give you a more consistent result with Verge3D’s native material pipeline. This way you can leverage important material settings such as render side, depth write, depth test, dithering, shadow settings, blend modes, etc, which are not available for glTF 2.0-compatible materials. As such, we recommend avoiding glTF 2.0 Compatible since you can now achieve everything without it, and we’ll likely deprecate this setting in the future.

    New Puzzles API for Plugin developers

    With this release, we introduce a new application programming interface to help extend Verge3D which we called PzLib. It is a set of helper classes, functions and variables used in the code generated by the Puzzles Editor, and you can now use them in custom puzzles loaded as plugins!

    For example, here’s how you can obtain the actual 3D object from its name provided by a puzzle:

    // importing method from PzLib
    Plug.pzlib('getObjectByName');
    
    // using it
    let myObj = PzLib.getObjectByName(objName);
    

    Using this new API will make it easier to develop plugins and help avoid reinventing the wheel. Moreover, it makes the code more compact by reusing the core functionality from the built-in puzzles.

    If you are a plugin developer, check out the reference for the Puzzles API that contains detailed information on its usage.

    New API methods for JS coders

    New method App.disableControls() basically makes the camera static. Call App.enableControls() to return the controls back.

    New methods v3d.MaterialUtils.createDiffuseMaterial() and v3d.MaterialUtils.createStandardPBRMaterial() create node-based diffuse and PBR materials respectively. The former is just the same as MeshLambertMaterial and the latter is a full analog of MeshStandardMaterial, only differentiating from those by both being node-based. What for? Method createDiffuseMaterial is now used for creating the diffuse material of clipping plane intersections, while the other method is used by the puzzles create object, create text object and make from, instead of the original Three.js API. As a result, these procedurally created materials are now consistent with the modeling software and follow Verge3D’s native material pipeline.

    You can now disable the system hot keys for the FPS counter (F-F-F), performance profile (P-P-P), pause (H-H-H), and the newly introduced Service Tools (~ ~ ~) by either of the two following ways:

    // do it right after creating an app
    app.registerServiceKeys = false;

    or

    // this one can be called from Puzzles (not from Init tab)
    v3d.AppUtils.unregisterServiceKeys(app); 
    

    API deprecation

    We initiated a thorough review of features inherited from Three.js long ago, dropping those apparently not useful for the Verge3D pipeline. We are going to do it in an incremental manner, by removing some features right away and marking others as deprecated. In any case, these changes may only affect the JavaScript coders who are using the programming API. The standard Verge3D pipeline with all its materials, puzzles, exported assets, etc won’t be affected anyhow.

    With this decision we hope to redirect time and resources from features that we cannot properly maintain anyway and focus our efforts on what is really important for most of our users. See below the APIs that are removed for this version:

    • WebGLMultisampleRenderTarget (it was replaced by WebGLRenderTarget.samples)
    • WebGL1Renderer (not really usable, moreover WebGL 1.0 is in fact supported as fallback to WebGL 2.0)
    • FontLoader (replaced by TTFLoader long time ago)
    • BoxBufferGeometry and co. (replaced by BoxGeometry and co.)
    • BlenderTextGeometry/BlenderTextBufferGeometry (replaced by generic TextGeometry)
    • AnimationLoader, BufferGeometryLoader, MaterialLoader, ObjectLoader, .toJSON(), .fromJSON() (these de/serialization APIs never actually worked in Verge3D–you should always use glTF for loading to and exporting from the engine)
    • MeshPhongMaterial, MeshToonMaterial, MeshMatcapMaterial (old unused non-PBR materials perfectly replaceable by Verge3D’s native materials)
    • WebGLRenderer.physicallyCorrectLights (it is not needed because Verge3D has always been using physically correct lighting)
    • sheen and iridescence props of MeshPhysicalMaterial (again, perfectly replaceable by Verge3D’s native materials)
    • wireframeLinecap and wireframeLinejoin material props (were only used by SVGRenderer never supported by Verge3D)
    • GLTFLoader and GLTFExporter extensions (unused or replaceable by Verge3D exporters for Blender, 3ds Max and Maya. Here is the list of dropped extensions:
      EXT_meshopt_compression, EXT_mesh_gpu_instancing, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_emissive_strength, KHR_materials_ior, KHR_materials_sheen, KHR_materials_specular, KHR_materials_transmission,
      KHR_materials_iridescence, KHR_materials_volume, KHR_mesh_quantization and KHR_texture_transform
      )

    We also no longer mention the following classes in the Developer Reference: MeshPhysicalMaterial, StereoCamera, InterleavedBuffer, InterleavedBufferAttribute, InstancedInterleavedBuffer, DodecahedronGeometry, LatheGeometry, OctahedronGeometry, TetrahedronGeometry, TorusKnotGeometry, HemisphereLight, HemisphereLightHelper, HemisphereLightProbe, and AmbientLightProbe. If there will be no special request regarding these features from Verge3D users, they might be removed in the future.

    Various other features

    We increased the default strafing speed for the Flying camera.

    The FPS counter is now better positioned in the preview viewport of the Puzzles editor.

    The JavaScript file generated by the Puzzles editor was stripped of most comments which made it smaller.

    We supplemented docs on ChromeOS installation to cover possible issues with setting up the App Manager.

    The Verge3D tool chain can now work on ARM64 processors under Linux, for example on Raspberry Pi or some low-spec Chromebooks.

    We reworked our internal processes for making Verge3D releases, including preview builds. Particularly, before every update we run the engine through 1000+ test applications and scenes to ensure software quality.

    Fixed issues

    We fixed the bug with the puzzle set style for CSS rule which reset to default values after saving the Puzzles. Thanks for bringing this up on the forums.

    We fixed the bug with non-unity screen scale in AR or VR mode, which could mess with camera-parented objects. This issue was reported via the Enterprise support channel.

    We fixed the crash of the App Manager if the name of the application folder ends with .html. Thanks for reporting this on the forums.

    We fixed the issue with App Manager settings when non-UTF-8 characters are present somewhere, for example, if the application’s title or description contains Chinese characters. Thanks for reporting this issue on the forums.

    We fixed keyboard not working in the 3D viewport of the Puzzles editor. Examples are WASD keys used to navigate with the First Person camera, or custom event listeners created using HTML puzzles.

    The feature available puzzle now correctly detects that the Microsoft Surface tablet is indeed equipped with a touch screen. This issue was reported via the Enterprise support channel.

    We fixed a bug with emission incorrectly exported to USDZ.

    We cured the engine from crashing when loading text objects which could happen in some unlucky circumstances. This issue was reported via the Enterprise support channel.

    The API method App.setCamera() now properly works when switching to a static camera.

    We adjusted shadow settings in the Global Illumination demo to fix rendering issues after implementing cascaded shadows.

    Chief 3D Verger | LinkedIn | Twitter

    #72879

    As usual, you can get the preview bundle from the downloads page! Let us know how it works for you!

    Chief 3D Verger | LinkedIn | Twitter

    #72940
    NaxosCG
    Customer

    Question : What is the “trigger / click” puzzle regardless of the old “event / mouseclick” ? Better ? faster ? stronger ? harder ?

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

    #72949
    kdv
    Participant

    I suppose, that is an auto-click. You can choose some element and click on if some condition is met (provided you added an event listener for this element before).

    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.

    #72950
    NaxosCG
    Customer

    Does that mean that we no longer need to convert all shaders to USDZ for iOS AR ?

    Damn ! that would be a great news !
    Also, damn ! i’ve just finished converting 25 billard tables, and 11 mini soccer tables…

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

    #73027
    visualizer
    Customer

    Hey
    I have a little suggestion in service tools section.
    Along with all the parameters listed on left side can there be a facility to somehow add a object’s name ( in 3d scene of blender or similar ) on mouse hover with some key pressed combination.
    Idea is in the inspection mode between 100s of objects
    Objects name + mesh count of specific object. On the fly

    Example – Ctrl + RMB or something

    #73030
    masj
    Participant

    Plug.pzlib

    Thank you for this!!
    Though referencing puzzle code from the visual_logic files and messing around with callbacks helped me learn a lot about the underlying set-up and API, I LOVE this new feature! :yahoo:
    Time to version up.

    #73097
    xeon
    Customer

    AppUtils.unregisterServiceKeys(app);

    not working on OSX 14.4.1

    added javascript puzzle, inserted string: AppUtils.unregisterServiceKeys(app);

    result – does not prevent services keys from functioning and locks out all interaction to the canvas. Not able to rotate camera or click on any hot spots.

    Default scene.

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

    #73235

    Hi Claudio,

    What is the “trigger / click” puzzle regardless of the old “event / mouseclick” ?

    trigger click “programmatically” simulates clicking on some element, possibly in a parent html page. mouseclick on the other hand, awaits for user clicks and then performs some actions :-)

    Does that mean that we no longer need to convert all shaders to USDZ for iOS AR ?

    Yes, the USDZ exporter puzzle will now do conversion automatically, even if you did not make your materials glTF/USDZ-compatible. Still beware to not over-complicate your materials. Physical material with various bitmaps connected to it should work out of the box. :good:

    Chief 3D Verger | LinkedIn | Twitter

    #73237

    @visualizer nice suggestion! will think think about it! :yes:

    @masj
    you’re welcome! :good:

    Chief 3D Verger | LinkedIn | Twitter

    #73241

    AppUtils.unregisterServiceKeys(app); not working on OSX 14.4.1

    Sorry I messed up. It should be

    v3d.AppUtils.unregisterServiceKeys(app);

    Corrected my post accordingly. :whistle:

    Chief 3D Verger | LinkedIn | Twitter

    #73520
    NaxosCG
    Customer

    Hi Claudio,

    What is the “trigger / click” puzzle regardless of the old “event / mouseclick” ?

    trigger click “programmatically” simulates clicking on some element, possibly in a parent html page. mouseclick on the other hand, awaits for user clicks and then performs some actions :-)

    Ok, so that means that V3D appli can act as if user was doing a click : not only a test to start some actions, but an action in itself ?

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

    #73521
    NaxosCG
    Customer

    Hi Claudio,

    Yes, the USDZ exporter puzzle will now do conversion automatically, even if you did not make your materials glTF/USDZ-compatible. Still beware to not over-complicate your materials. Physical material with various bitmaps connected to it should work out of the box. :good:

    Great too…
    I wish it came out 2 months ago ;-)
    Anyway, it is good also because SSreflexion is only available with PHY shaders, not USD, so i always have to manage shader switch when entering / outgoing to AR

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

    #73522
    NaxosCG
    Customer

    Also, about “Trigger’ puzzle,
    We could create some DB (Dic puzzle ?) with all choices made in a configurator, then save / export some config text file, then load config file and re-trigger buttons to get the same choices on another session.
    Or if we change a model, then re-apply choices…

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

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