3D World Building for Virtual Environments
This skill covers the principles and workflows for constructing immersive 3D environments in metaverse and VR contexts. It addresses terrain creation, architectural modeling, lighting design, asset pipelines, and optimization techniques specific to real-time virtual worlds that must support multi-user presence and interaction. ## Key Points 1. Heightmap generation 2. Texturing 3. Vegetation 4. Erosion and detail passes 1. Wayfinding — Users must intuitively know where to go 2. Acoustic design — Spaces should feel like they sound right 3. Social zones — Areas that encourage groups of 2-6 people 4. Sight lines — Can users see other avatars from key positions? 5. Personal space — Provide alcoves and edges, not just open fields 6. Spectacle — At least one awe-inspiring vista or feature - All modules share the same texel density (pixels per meter) - UV islands align at module edges for seamless tiling
skilldb get metaverse-skills/3d-world-buildingFull skill: 344 lines3D World Building for Virtual Environments
Purpose
This skill covers the principles and workflows for constructing immersive 3D environments in metaverse and VR contexts. It addresses terrain creation, architectural modeling, lighting design, asset pipelines, and optimization techniques specific to real-time virtual worlds that must support multi-user presence and interaction.
Core Principles
Scale and Proportion
Virtual worlds feel wrong when scale is off. Human perception is extraordinarily sensitive to spatial proportions, especially in VR where 1:1 scale mapping is expected.
Human-Scale Reference Points:
├── Door height: 2.1m (7 ft)
├── Ceiling height: 2.7m (9 ft) residential, 3.5-5m commercial
├── Table height: 0.75m (30 in)
├── Chair seat height: 0.45m (18 in)
├── Step height: 0.18m (7 in)
├── Corridor width: 1.2m minimum, 2.4m comfortable
├── Eye height standing: 1.6m average
└── Arm reach: 0.7m forward from shoulder
Validation technique: Place a reference mannequin (capsule collider at human height) in every space during construction. Walk through in VR regularly during development.
Spatial Hierarchy
Organize worlds in nested scales for both design clarity and technical optimization:
World Structure:
├── Region (km-scale, streamed)
│ ├── Zone (100m-scale, loaded chunks)
│ │ ├── Area (10m-scale, rooms/plazas)
│ │ │ ├── Prop Group (furniture, foliage clusters)
│ │ │ │ └── Individual Prop (chair, tree, lamp)
│ │ │ └── Interactive Element
│ │ └── Transition Space (corridors, paths)
│ └── Boundary (terrain, skybox, distant geometry)
└── Global Systems (sky, weather, time of day)
Visual Density and Negative Space
A common mistake in virtual world building is filling every surface with detail. The eye needs resting points.
Visual Density Guidelines:
├── Hero elements: 10-15% of visible space (draw the eye)
├── Supporting detail: 30-40% (texture, smaller props)
├── Negative space: 40-50% (walls, floors, sky, open area)
└── Transition zones: Use gradients between dense and sparse areas
Rule of thumb: If you screenshot any camera angle and the image
feels "noisy" or hard to parse in 1 second, reduce detail density.
Terrain and Landscape
Terrain Creation Workflow
Pipeline:
1. Heightmap generation
├── Procedural (noise-based: Perlin, Worley, ridged)
├── Sculpted (brush tools in engine)
└── Real-world data (DEM/SRTM elevation data)
2. Texturing
├── Splat maps (4-8 layers blended by weight)
├── Triplanar mapping (prevents stretching on slopes)
└── Detail textures (tiling micro-detail at close range)
3. Vegetation
├── Grass system (billboards or mesh cards)
├── Tree placement (density maps + jitter)
└── Ground cover (decals, small meshes)
4. Erosion and detail passes
├── Hydraulic erosion simulation
├── Cliff face detail
└── Path/road carving
Performance Budgets for Terrain
Mobile VR (Quest-class):
├── Terrain mesh: 50K-100K triangles visible
├── Texture layers: 4 splat layers maximum
├── Grass density: Low (billboard quads, 10m draw distance)
├── Tree LOD levels: 3 (full mesh, billboard, imposter)
└── Draw distance: 200-500m with fog falloff
PC VR:
├── Terrain mesh: 200K-500K triangles visible
├── Texture layers: 8-16 splat layers
├── Grass density: Medium-high (mesh cards, 30m draw distance)
├── Tree LOD levels: 4+ with smooth transitions
└── Draw distance: 1-5km with atmospheric scattering
Architectural Design for Virtual Spaces
Designing for Presence
Architecture in VR serves different purposes than in games. Users occupy these spaces as social environments, so design for presence and comfort:
Design Priorities (VR social spaces):
1. Wayfinding — Users must intuitively know where to go
2. Acoustic design — Spaces should feel like they sound right
3. Social zones — Areas that encourage groups of 2-6 people
4. Sight lines — Can users see other avatars from key positions?
5. Personal space — Provide alcoves and edges, not just open fields
6. Spectacle — At least one awe-inspiring vista or feature
Modular Architecture
Build environments from reusable, snapping modules:
Module Kit Example (Sci-fi Interior):
├── Floor tiles (1m x 1m, 2m x 2m, 4m x 4m)
├── Wall panels (1m wide x 3m tall, door-width variant)
├── Corner pieces (90-degree, 45-degree)
├── Ceiling tiles (matching floor grid)
├── Door frames (standard, wide, airlock)
├── Window frames (small, panoramic)
├── Trim pieces (horizontal rail, vertical pillar)
├── Transition ramps (floor height changes)
└── Special pieces (elevator shaft, stairwell, balcony)
Snapping grid: 0.25m increments
Wall thickness: 0.2m minimum (prevents z-fighting and see-through)
Module creation rules:
- All modules share the same texel density (pixels per meter)
- UV islands align at module edges for seamless tiling
- Pivot points at consistent positions (bottom-center or corner)
- Lightmap UVs (UV2) with padding for baked lighting
Interior Lighting
Lighting transforms a mediocre space into an immersive one:
Lighting Strategy:
1. Establish key light (sun, main overhead, dramatic source)
2. Fill shadows with ambient/bounce light
3. Add accent lights for mood and wayfinding
4. Use emissive surfaces for sci-fi/modern aesthetics
5. Apply post-processing (bloom for lights, color grading for mood)
VR-Specific Lighting Rules:
├── Avoid pure black shadows (causes depth perception issues)
├── Avoid extreme contrast (pupil adjustment is uncomfortable)
├── Bake lighting whenever possible (huge performance saving)
├── Light probes for dynamic objects in baked environments
├── Reflection probes placed at eye height for natural reflections
└── Avoid flickering lights (can trigger photosensitive conditions)
Asset Pipeline
From DCC to Engine
Asset Pipeline:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ DCC Tool │ → │ Export │ → │ Engine │
│ (Blender, │ │ (FBX/glTF) │ │ Import & │
│ Maya, etc) │ │ │ │ Configure │
└──────────────┘ └──────────────┘ └──────────────┘
Export Checklist:
□ Apply all transforms (location, rotation, scale)
□ Triangulate mesh (or let engine do it consistently)
□ Check normals direction (no flipped faces)
□ UV unwrap with proper texel density
□ Remove unused vertices/edges
□ Name objects descriptively
□ Set correct units (1 unit = 1 meter)
□ Export materials as PBR (basecolor, normal, roughness, metallic)
Texture Standards
Texture Specifications:
├── Format: PNG for authoring, compress to platform format on import
│ ├── Mobile VR: ASTC 4x4 (high quality) or 6x6 (smaller)
│ ├── PC: BC7 (high quality) or BC3 (with alpha)
│ └── Web: Basis Universal / KTX2
├── Resolution tiers:
│ ├── Hero props: 2048x2048
│ ├── Standard props: 1024x1024
│ ├── Small props: 512x512
│ ├── Trim sheets: 2048x512 or 2048x256
│ └── Terrain layers: 1024x1024 (tiling)
├── Texel density target:
│ ├── Mobile VR: 256-512 pixels/meter
│ └── PC VR: 512-1024 pixels/meter
└── Always power-of-two dimensions for mipmapping
LOD (Level of Detail) Strategy
LOD Chain Example (Medium Complexity Prop):
├── LOD0: 5,000 tris (0-5m distance) — Full detail
├── LOD1: 2,500 tris (5-15m distance) — Simplified silhouette
├── LOD2: 1,000 tris (15-30m distance) — Major shapes only
├── LOD3: 250 tris (30-60m distance) — Rough approximation
└── Cull: (>60m distance) — Not rendered
LOD Generation Methods:
1. Manual retopology (best quality, most work)
2. Automatic decimation (fast, may need cleanup)
3. Imposters/billboards for final LOD (trees, distant buildings)
Optimization Techniques
Occlusion and Culling
Culling Hierarchy:
1. Frustum culling — Automatic, skip off-screen objects
2. Distance culling — Set per-object max draw distance
3. Occlusion culling — Skip objects hidden behind walls
4. Portal culling — For interior environments with rooms
5. Sector/zone loading — Only load nearby areas of large worlds
Interior Optimization Pattern:
┌────────┐ portal ┌────────┐ portal ┌────────┐
│ Room A │←────────→│ Room B │←────────→│ Room C │
│ (loaded)│ │(loaded) │ │(loaded) │
└────────┘ └────────┘ └────────┘
↑
Player here
Only rooms visible through portals are rendered.
Room D (no portal connection visible) is culled entirely.
Draw Call Optimization
Strategies (ordered by typical impact):
1. Material batching — Fewer unique materials = fewer state changes
2. Mesh combining — Merge static geometry per zone
3. Texture atlasing — Multiple props share one material
4. GPU instancing — Same mesh rendered many times efficiently
5. Indirect rendering — GPU-driven rendering for massive scenes
Target draw calls:
├── Mobile VR: < 100-200 draw calls
├── PC VR: < 500-1000 draw calls
└── Monitor: < 2000-3000 draw calls
Streaming and Level of Detail for Large Worlds
World Streaming Architecture:
┌─────┬─────┬─────┬─────┬─────┐
│ │ │ │ │ │
│ │ Load│ Load│ Load│ │
│ │ │ │ │ │
├─────┼─────┼─────┼─────┼─────┤
│ │ Load│ HERE│ Load│ │
│ │ │ │ │ │
├─────┼─────┼─────┼─────┼─────┤
│ │ Load│ Load│ Load│ │
│ │ │ │ │ │
└─────┴─────┴─────┴─────┴─────┘
Player at "HERE" — surrounding chunks loaded.
Distant chunks unloaded or replaced with imposters.
Loading happens on background threads to prevent hitches.
Multi-User Considerations
Network-Aware World Design
Synchronization Tiers:
├── Tier 1: Always synced (avatar positions, critical state)
├── Tier 2: Event-synced (door open/close, object pickup)
├── Tier 3: Owner-synced (physics objects held by a user)
└── Tier 4: Local-only (particles, ambient animation, grass)
Network Optimization:
- Make environments mostly static (no sync cost)
- Limit moveable objects per area (each costs bandwidth)
- Use deterministic systems where possible (same seed = same result)
- Separate physics zones to limit interaction complexity
Instancing for Concurrent Users
User Capacity Planning:
├── Social hub: 20-50 concurrent users
│ └── Design: Open space, low geometry, simple lighting
├── Event space: 100-1000 concurrent users
│ └── Design: Stage + audience, extreme optimization, LOD avatars
├── Private room: 2-8 concurrent users
│ └── Design: Detailed, interactive, full lighting
└── Open world: Sharded, 30-50 per shard
└── Design: Interest management, dynamic LOD, streaming
Workflow Recommendations
- Greybox first: Build the entire space with primitive shapes before adding detail
- Walk through in VR at every stage: Flat-screen previews are misleading
- Establish art style bible early: Consistent texel density, color palette, material complexity
- Profile performance with target content density: Don't optimize an empty scene
- Test with multiple avatars: Performance with 20 avatars is very different from 1
- Plan for updates: Modular design allows swapping sections without full rebuilds
- Version control large assets: Use Git LFS or Perforce for binary files
When to Apply This Skill
Use this skill when:
- Designing a new virtual environment from scratch
- Optimizing an existing 3D world for VR performance targets
- Setting up an asset pipeline for a metaverse project
- Planning the architecture of a multi-user virtual space
- Troubleshooting visual quality or performance issues in a virtual world
Install this skill directly: skilldb add metaverse-skills