Optimization
The page outlines the general optimization and design recommendations for all creators publishing on VIVERSE, regardless of which platform they are publishing from.
Last updated
The page outlines the general optimization and design recommendations for all creators publishing on VIVERSE, regardless of which platform they are publishing from.
Last updated
© 2024 HTC CORPORATION
Playanvas is a visual development platform for creating interactive 3D web content. Both the tools and web apps you create with them PlayCanvas is a visual development platform for creating interactive 3D web content. Both the tools and web apps you create with them are powered by HTML5. The platform is entirely cloud-based, thus no install are further required- you are able to access your work on any device from a supported web browser.
We strongly recommend taking a look at the PlayCanvas User Manual before getting started so you’ll have an idea about how to use PlayCanvas when you decide to jump in and start making games. Playcanvas Manual
VIVERSE Create uses PlayCanvas editor to create all the virtual worlds and environments you see in VIVERSE Create. This guide describes how to create a project and configure settings so you can start constructing your first scene.
Models need to contain two sets of UVs: UV1 for textures, and UV2 for lightmaps. Most 3D modeling software can make decent lightmaps. You can also use the PlayCanvas editor to generate lightmaps. See the Lightmapping topic in the PlayCanvas User Manual for details.
PlayCanvas uses the PBR with advanced shading to make sure rendering is as realistic as possible. Single objects can contain multiple materials, but performance should be prioritized (for example, by reducing draw calls). *See the Physical Material topic in the PlayCanvas User Manual for details.
High texture counts can overload the GPU. Try and keep the texture resolution at a reasonable size. Image resolution can’t be higher than 2048x2048, for the best texture quality, use JPGs, PNGs, or TGAs. Try storing RMA textures in different channels to reduce texture count (for example, RGB: R – Ambient Occlusion; G – Roughness; B – Metallic).
Real-time lighting drastically reduces performance (each new real-time light source results in two draw calls). Try using just one real-time light source to produce shadows for characters and dynamic objects. Use lightmaps for static objects. *Additional HDRI cubemaps are required for reflective objects.
The assets you create directly influence the look and the performance of your project. Recommended performance and asset resource parameters are listed below.
Draw Call
Below 150
VRAM
Less than 400mb
System RAM
less than 500mb
Texture format
PNG/JPG/TGA
Texture resolution
Up to 1024 x 1024
Materials
PBR shading; maximum material count: 50
Rig bone count
Below 60 (including leaf bones and non-weighted bones)
Bones per vertex
4 bones maximum
Size of each file
60mb maximum
Configure collision settings. Add your low-poly collision models to the scene, click ADD COMPONENT, and then add two physics components: Collision and Rigid Body. For the Collision component, set Type to Mesh, add the intended low-poly model to Render Asset, and then turn off RENDER. Built-in non-mesh type collisions can also be used for models with simple shapes.
Built-in non-mesh type collisions can also be used for models with simple shapes.
If the model is a static object in the scene, select Static for the Render component. If the models share the same material and mesh, use Batch Group to reduce the number of draw calls. *See the Batching topic in the PlayCanvas User Manual for details.
See the Batching topic in the PlayCanvas User Manual for details.
Add a directional light for characters and dynamic objects, and then in the light properties window, select Static and Cast Shadows. If you bake lightmaps in Playcanvas, remember to disable all baked light, except directional light. If you don’t disable baked light, the scene may crash.
Turn on the performance monitoring tools (Profiler, Debug, Mini stats, etc.) under the Launch button to check things like draw-calls, VRAM, and FPS. This way, can check whether the scene is overloaded or what’s causing a scene to crash. Make sure all performance data is aligned with the suggested stats.