This article is dedicated to 3D artists and designers who would like to create and customise a 3D Room optimised for Wonda VR Spaces in third party programs like Blender or Unity.
(For a general overview of the process of importing a room in Wonda VR Spaces, please read this article)
About Rendering and glTF format
We mostly support glTF that allow storing 3D scenes and models using the JSON standard.
Max Poly count: 50k (decimate the model if needed. See how to do with Blender)
Max different Texture count: 25
Max Texture Resolution: 4K. For a better global Room resolution, split the Room mesh in multiple parts, each of them can have one distinct material with one 4K texture.
Material number: Each exported material will create a draw call in the runtime renderer. We want to reduce the number of material as much as possible
Material in glTF
glTF defines materials using a common set of parameters that are based on widely used material representations from Physically-Based Rendering (PBR). More info: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#materials
glTF define a material extension KHR_materials_unlit which is used for shadeless material (not affected by light). More info: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit
glTF shader in Wonda VR Spaces
In all quality, KHR_materials_unlit are parsed as basic material. To check supported map: https://threejs.org/docs/#api/en/materials/MeshBasicMaterial
In desktop, standard materials are parsed as standard material. To check supported map: https://threejs.org/docs/#api/en/materials/MeshStandardMaterial
In VR/mobile, standard materials are parsed as mobile material. Supported maps are the ambient occlusion map, the emissive map and the diffuse map.
The core material system in glTF supports a metal/rough PBR workflow with the following channels of information:
Baked Ambient Occlusion
Constraints related to three.js
Lightmaps and ambient occlusion require a second set of UVs (uv1) to be correctly interpreted by three.js.
To have the best rendering quality in Wonda VR Spaces, materials should be defined with KHR_materials_unlit extension which ensures the best performance and quality (lots of map supports)
If baking lightmap/ambient occlusion map is in a different map than the diffuse, you need to make them use a second set of UVs (a different than the diffuse)
Useful information about gltf/glb in Blender documentation: https://docs.blender.org/manual/en/2.80/addons/io_scene_gltf2.html