Real-time 3D collaboration on the Web

The new version of ATON 3.0 framework includes a completely renewed “VRoadcast” component – that allows multiple remote users to collaborate in real-time inside the same online 3D scene (no installation required).

The development of VRoadcast started 3 years ago, initially to experiment collaborative features (basic chat messages) and then visualize other users as basic avatars in the 3D space. In this demo (2018) a quick communication test using VRoadcast was made involving different web browsers and… a running instance of Unreal Engine 4 with a centralized chat panel:

VRoadcast already offered incredible opportunities in the previous ATON 2.0, enabling remote users to interact in the same scene and even perform collaborative tasks right inside a standard browser. For instance it was employed to study attentional synchrony in online, collaborative immersive VR environments (Chapter 6 in “Digital & Documentation, volume 2” – open access book). VRoadcast was also used for virtual classrooms during the pandemic, allowing remote students to collaboratively populate sample 3D scenes in online sessions:

The new VRoadcast in ATON 3.0 offers improved performances, scalability, out-of-the-box collaborative features targeting CH and a simple API to create custom replicable events within web-apps (mobile, desktop and immersive VR/AR). It is now fully integrated in the official ATON front-end, so remote users and general public can already access it. More details soon in upcoming demos and papers.

These features were also employed during ArcheoFOSS workshop on ATON 3.0 to collaboratively populate a sample 3D forest and annotate together a few 3D models. Check out what ArcheoFOSS participants annotated together on this sample Venus statue!

Stay tuned: we are planning a few open-access collaborative events!
You can join our public ATON open group on telegram for more information

Developer perspective

If you are a developer, here’s a quick example to easily create a completely custom event using the new API. In this case we fire a network event called “chatmessage” containing data “hi” to other users in the same scene:

ATON.VRoadcast.fireEvent("chatmessage", "hi");

In order to handle such events, we simply subscribe to the event using:

ATON.VRoadcast.on("chatmessage", (m)=>{ 
   alert("Received message: "+ m)
})

In this example, when one user fires the event, other remote users will handle the event by showing up an alert with the received “hi”. Notice the broadcasted data can be an arbirary object. Have a look also at ATON 3.0 examples on github, and start creating your own collaborative web-app.

(Re)Building Forum Augusti

This is a first update regarding progress (july-august) on game-oriented assets production for the new Forum Augusti employed to create reusable, flexible and modular 3D components. The FBX models target utilization mostly in Unreal Engine 4 and SONY PhyreEngine (Playstation VR) – within REVEAL Project. Overall process started out from basic props and components (e.g. column, doors, braziers, etc…) most of them re-optimized to fullfil proper guidelines, including PBR requirements within VR fruition.

assets-strip

Most of per-asset workflow focused on geometry optimizations, level of detail, uv-maps and other aspects, taking into account a few considerations regarding VR best practices and in-game fruition. At this stage, produced FBX were imported in Unreal Engine in order to verify modularization, parametrization and procedural generation, described in a previous post. Such approach guarantees great flexibility for level designers or, if different hypotheses are validated during the process.

The video shows a short overview of a few experimentations right before the summer break, using produced modular assets, their parametrization and a first draft for PBR-based materials. Such tasks were also carried out in order to verify performance scaling at macroscopic level. More technical updates to come… Stay tuned.

Building Procedural Instancing Tools for Unreal Engine

When dealing with repeating 3D elements, a meaningful approach is to procedurally describe and generate them through a template and a transformation-list. The new upcoming version of ATON 2.0 for instance (yes, pun intended) already provides built-in procedural methods in order to instantiate several 3D objects by streaming a template (e.g. a column) and a transformation-list, thus greatly reducing bandwidth. On the desktop side, a porting of such functionalities from OpenSceneGraph to Unreal Engine 4 (ver. 4.16.1) began a week ago.

A C++ ActorComponent has been developed in order to read common ASCII files representing TransformList (position, rotation and scale) and a StaticMesh representing the Template. Such functionality can be employed into a compact and very basic Blueprint node (see figure) offering a flexible and manageable tool for designers, while maintaining all parsing and processing routines at C++ level. A TransformList file can be externally updated (e.g. generated by another software) and the procedural generation automatically rebuilds right inside Unreal Editor.


ue4-cpp-instancer2
A second Instancer tool has been developed (this time, fully Blueprint) to offer a customizable tool to generate randomized instances (always in Editor) in a given radius with draping, overlapping options, scale variance and much more. The following shows an Instancer with trees (top left), another Instancer with boulders (bottom left), and a third Instancer (ferns) testing adaptive location on top of world geometries (right).

ue4-inst-draping2

Adding another Instancer for grass, and tweaking of scale variance inside Unreal Editor.

ue4-inst-bp-grass-c

There are more upcoming features… Stay tuned!

A new PBR Model

Another major update for Aton is about to be deployed. A lot of work has been carried out to provide a modern, efficient and real-time PBR model. A lot of inspiration comes from Unreal Engine 4 (UE4 for short) and its advanced PBR system. WebGL world of course faces several limitations that need to be addressed, sometimes in “smart” ways or using approximation techniques (special PRT and SH solutions and much more) to reduce GPU workload.

pbr-samples
A few samples using the new Aton PBR model.

Check out this demo, or this one.
The new, upcoming PBR system combined with RGBE model for Aton, supports now:

  • Base map (diffuse or albedo)
  • Ambient occlusion map
  • Normal map
  • Roughness map
  • Metallic map
  • Emissive map
  • Fresnel map

pbr-d3d-b
The new Aton PBR with the new real-time rendering engine. Textures modified from http://hrp.duke4.net/

pbr-d3d
Close-up on variable roughness, reflections and indirect light contribution (bottom cube faces)

The new PBR maps workflow also has the objective to be as close as possibile to a workflow involving UE4 (or other modern real-time PBR engines), to fully reuse such maps (e.g. “Roughness“, “Metallic” pins in material blueprint in UE4). Nevertheless, the new model is also compatible with “basic” workflow, such as the classic diffuse-only 3D modeling (or diffuse + separate AO, etc..). Screenshots below show sample workflow in UE4 using same identical PBR maps applied to cube datasets:

ue4-wf
Sample workflow in UE4 material BP using same maps.

Of course these improvements will also extend to multi-resolution datasets (e.g. ARIADNE Landscape Services) to produce aestetically pleasing 3D landscapes by providing additional maps in input section, still maintaining efficiency of underneath paged multi-resolution. Furthermore, the Aton PBR system is also VR-ready, providing a realistic and consistent rendering of layered materials also on HMDs, on WebVR enabled browsers.

pbr-vr

To import and ingest 3D assets generated using common 3D formats (.obj, .3ds, ….and much more) into Aton system and its PBR system, the Atonizer service will be soon available.

Stay tuned!

Useful Links