LogoLogo
HomeDiscordVideo TutorialsBuilder Opportunities
  • Welcome to MONA
    • What is a Space?
    • Unity Overview
  • ⬛Create
    • Getting Started Building
    • MONA Crash Course
      • Setting up MONA in Unity
      • Introduction to Unity
      • Setting up Simple Assets
      • Metaverse / WebGL Limitations
      • Creating 3D Assets
      • Applying Materials & Unwrapping UVs
      • Importing Assets into Unity
      • Adding Colliders
      • Adding Lighting
      • Adding a Custom Skybox
      • Setting up Canvases
      • Uploading to your Wallet
    • Building Spaces
      • Space Limitations
      • Create your Space
        • Space Overview
        • Colliders
        • Materials
        • Portals
        • Canvases
        • Artifacts
        • Add a Custom Skybox
        • Test Your Space
        • Troubleshooting
      • Improve your Space
        • Lightmaps (Unity Lightmapper)
        • Light Probes
        • Reflection Probes
        • Animation in Unity
        • Importing Animation
        • Player Property Volumes (PPV's)
        • Warp Volumes
        • Adding Audio
        • VRM Switcher
        • Custom Canvases
        • Embedded Video
        • User Interface (UI)
        • Creating Custom Shaders
        • Imported Assets
        • Lightmaps (Bakery Asset)
      • Optimise your Space
        • Prefabs
        • 3D Asset Specs
        • Optimizing your Space
      • Adding Interactivity
        • Visual Scripting
          • Web Request Node
        • Mona Reactor
          • Creating Animation
          • Using Animator
          • The Reactor Component
          • Reactor Overview
      • MONA Tools
        • Template Utility
        • MONA Capture
        • Light Probe Generator
        • VOX Importer
      • Submit Your Space
        • Submitting your Space
        • Creating an Image & Video Preview
        • QA Process
        • Mint Your Space
      • Update your Space
      • Frequently Asked Questions
      • Troubleshooting
    • Creating Assets
      • Asset Requirements
      • 3D Asset Types
      • Asset Creation Approaches
      • Optimizing your Mesh
      • GLB Considerations
      • Example - Cyberpunk Car
    • Creating Avatars
      • Getting Started with VRM
      • VRM Requirements
      • VRM Creation
        • Using Mixamo for Rigging
        • Adding Custom Bones to the Rig (Optional)
      • Creating your Avatar using UniVRM
        • Importing UniVRM into Unity
        • Creating the VRM using UniVRM
        • Adding Spring Bones in UniVRM (Optional)
      • Creating your Avatar using 'VRM for Blender'
        • Adding 'VRM for Blender' into Blender
        • Using 'VRM for Blender' for Rigging
        • Adding a Material
        • Assigning VRM Details
        • Exporting the Avatar
      • Uploading your VRM
      • Using Avatars in WebAR
      • Submitting your VRM to the Mona Marketplace
      • Mint Your Avatar
      • Troubleshooting
    • Resources
      • MONA Claim Asset Requirements
      • Unity Wallet SDK (Alpha)
      • MONA Playground
      • MONA Tutorials
        • Retrowave Modules
      • Asset Resources
        • 3rd Party Assets
        • Textures
        • Shaders
        • 3D Assets
        • Audio
        • Tools
        • Tutorials
      • MONA Library
        • MONA Library Submission
      • Useful Unity Packages
      • Updating the Template SDK
      • Importing Mozilla Hubs Spaces to MONA
      • Importing AltspaceVR spaces to MONA
    • MONA Marketplace
  • ⬛Explore
    • How to Use MONA
    • Using VRM Avatars
    • Audio Settings
    • Explorer's Frequently Asked Questions
  • ⬛Collect
    • Setting up a wallet
      • Delegating a Wallet
    • Own a Space
      • Host an Event
      • Uploading your Images
      • Add Images to a Canvas
      • Live Music Feed
      • Token Gated Access
      • Minted 3rd Party Assets
    • MONA Create
      • Create FAQ
    • Live Streaming in MONA
      • Setting up OBS Studio
      • Livestream using OBS Studio
      • Livestream using a Mobile Device
      • How to Stream Using Twitch or YouTube
      • Add a Livestream to a Canvas
    • Collector's Frequently Asked Questions
  • General Resources
    • Web3 Introduction
    • How to sell Art in Web3
    • Game Dev Glossary
    • Buildathons / Challenges
      • 3D Asset Buildathon (Current)
        • Frequently Asked Questions
      • Emote/Emoji Challenge (Completed)
      • Stream Challenge (Completed)
      • Custom Avatars (Completed)
      • Build : NY Challenge (Completed)
      • Sculpture Challenge (Completed)
      • Portal Hub (Completed)
      • Interact (Completed)
      • The Renaissance (Completed)
Powered by GitBook
On this page
  • Polygon Count
  • Material count
  • Texture Size
  • Summary

Was this helpful?

  1. Create
  2. MONA Crash Course

Metaverse / WebGL Limitations

Considerations to have when making a space using WebGL.

PreviousSetting up Simple AssetsNextCreating 3D Assets

Last updated 1 year ago

Was this helpful?

As Mona runs in WebGL in a browser, we have limited resources to use in our space, and if we use complicated assets such as too many polygons, materials, or textures, it will affect the quality of the space.

A WebGL browser space that uses Unity has a hard limit of 2Gb of memory to use. And this can get used up very quickly when you add the space, audio, textures, canvases, avatars, among many other elements.

Polygon Count

One of the most important elements of an asset is how many polygons it has. This may not be considered if you are coming from Architecture using applications like Revit or Rhino, or perhaps sculpting in Zbrush or VR. But in Mona, you will need to pay attention to how many polygons an asset has, as this will affect how well the space runs in the browser and how big the files are to import.

A polygon is basically two triangles of a mesh. You will see both polygons, or poly, and triangles, or tris, used a lot, but the numbers are different. Triangles are generally twice the amount of polygons. You may also see Ngons as well, this is more than two triangles together to create a 5 or more-sided polygon.

It is difficult to say the maximum polycount for a space as each element affects each other. You could have a higher polycount space if you have less materials for example. That said, there are some simple guidelines to get you started.

In this example, the polycount on the left is too high for a WebGL experience and should be avoided.

A ‘Hero’ asset can have more polygons, such as an important sculpture, a character, or a key element of a Mona Space. This is not recommended for most assets however.

A medium-level asset is the most common such as props around the space. Most assets should be this or below.

Items in the background or far away should be significantly less polygons.

Straight edged objects should have very few polygons. Curved objects should have less than you probably want, similar to the examples given.

There are many ways to create these assets, from manually creating the assets from scratch in a 3D Creation tool like Blender to creating high polygon assets made in sculpting tools like ZBrush and reducing the polycounts afterwards.

Reducing the polycount of assets can be done in several ways as well, from manually ‘tracing’ the high polygon asset to making a low polygon asset, also known as retopology. This is slower but can achieve significantly fewer polygons.

There are also ‘faster’ approaches to reducing polycount, such as decimation and re-meshing, which result in better polycounts than the original mesh, but perhaps not as low as if you created it manually. Decimation is not recommended for assets that require animation, such as VRM Avatars.

Material count

The other element that plays a large part in how well your space runs is what we call draw calls. A draw call is when the GPU is asked to draw something new on the screen. The more things it needs to draw, the slower it will go.

One aspect of this, that is easily described, is how many Materials are in your space. Each material has the potential to be a draw call.

There are many techniques to reduce material count as well, both the builder and the engine itself can help with this.

Don’t worry so much about this at the moment, but it is just something to keep in the back of your mind as you improve your skills.

Texture Size

Another key element to making a Mona space is that there is a 250Mb maximum file size allowed for your space, also called the Playground Files once exported. All assets take up file size, but one of the main ones is your textures.

Textures allow you to give your assets more color and detail. It could be something like a wood grain, up to a whole assets color, metallic and smoothness, and emissive (or light information). A normal map, which is an approach to bump detail, can also be added.

In game engines, textures must be a power of 2, so 4x4 pixels up to 2048x2048. But the latter file size is quite large in file size, so keeping the number of these as few as possible or using that file size optimally is part of the process. You could use a 4096x4096 texture for the skybox, or the image surrounding your space, but this would be the only one we’d recommend using at that size.

There are many ways to reduce the size of your texture, both inside and outside Unity. And we will look at some of those in the following tutorials.

Summary

Once again, these examples are less a how-to tutorial and more about recommendations on creating a space that runs well. We recommend jumping in and making your assets with these in mind but don’t worry about it too much for now if you are just starting. Your ability to create optimized assets will improve the more practice you have.

⬛
WebGL Metaverse Limitations Video
Polycount examples