LogoLogo
VIVERSESupportBlogDiscord
  • Creator Tools
  • Polygon Streaming
  • Introduction to Creator Tools
  • Publishing with Your VIVERSE Account
  • Optimization
  • World Decoration
    • Edit Mode
    • Supported Media & Settings
    • Creating From Templates
      • Pet Rescue Template Project
  • PlayCanvas SDK
    • PlayCanvas Extension Setup
    • Publishing to VIVERSE
    • Scene Settings
    • No Code Tools
      • Sample Project
      • Quests
      • Trigger & Action
        • Event Listeners
        • Entity Enabling & Disabling
        • Entity Collision Enabling & Disabling
        • Entity Physics
        • Avatar Teleport & Checkpoint
        • Animation & Sound
        • Asset Management
      • Media
        • Polygon Streaming
        • Images
        • Video
        • Audio
      • Pick and Throw
      • Networked
      • Seat
      • GPU Mesh Instancing
    • Custom Code
      • Connecting No-Code Events to Custom Scripts
      • Introduction to MJS
      • Camera Management: Settings and Switching
    • Examples
      • Create Your First PlayCanvas Project
      • SHADEART | Custom Shader
      • WITHIN | A Generative Audiovisual Maze
      • First Person Shooter with Destruction
  • Unity SDK
    • Porting from Unity to PlayCanvas
Powered by GitBook
LogoLogo

Important Links

  • COOKIE POLICY
  • TERMS OF SERVICE
  • PRIVACY POLICY
  • VIVERSE PARTNERS

Socials

  • X / Twitter
  • LinkedIn
  • Instagram

© 2025 HTC CORPORATION

On this page

Was this helpful?

Edit on GitHub
Export as PDF
  1. PlayCanvas SDK
  2. No Code Tools

GPU Mesh Instancing

The document provides a guide for setting up a 3D model for GPU Mesh Instancing.

PreviousSeatNextCustom Code

Last updated 22 days ago

Was this helpful?


GPU Mesh Instancing is a method of leveraging a GPU to render duplicated instances of a mesh with the same material in a single draw call. This is useful for optimizing draw calls when populating a scene with multiple trees, bushes, grass or other duplicated objects.

In this example, a 3D model of grass is created in Blender and then exported into PlayCanvas where it's used for GPU Mesh Instancing. You can download the Grass_Grp.glb file below for testing. The model has already been exported from Blender and is ready for importing into PlayCanvas.

1

Prepare the model

A. In a 3D modeling application, such as Blender, create an Empty. Give the Empty a name. In this example, the Empty has been given the name Grass_Grp.

B. Duplicate the instances of the object so that every object uses the same mesh and material. All of the instances need to parented under the Empty.

2

Export the model

A. Export the model as a GLTF (.glft/.glb) file. Give the file the same name as the name given to the Empty. In this example, the file is named Grass_grp.glb.

B. Expand Scene Graph and place checkmark by GPU Instances.

3

Confirm exported model is configured correctly

B. Drag the 3d model file into the browser and click on the magnifying glass icon to view the data.

C. Confirm the EXT_mesh_gpu_instancing extension was added. If EXT_mesh_gpu_instancing is not visible, then the model was not configured properly in the 3D modeling application. Retry steps 1-2.

4

Import the model into PlayCanvas

A. Add the model to PlayCanvas by dragging the Grass_grp.glb file to the Assets window. The model will unpackage itself, producing multiple files.

B. Drag the Grass_grp Template file to the Hierarchy.

C. Click the Edit Viverse Extension button.

5

Add the GPUMeshInstancing module

A. In the VIVERSE extension, select the GPUMeshInstancing plugin for the Select plugins dropdown.

B. Add the Grass_Grp.glb Container to the GLB container asset id field.

6

Test project in VIVERSE

A. Publish the project to VIVERSE to see the GPU mesh instancing results.

A. Visit the site

https://modelviewer.dev/editor/
2MB
Grass_Grp.glb