PC → VR Optimization

Immersive Sci-Fi Wildlife Experience (Quest 3) 

A narrative, sci-fi wildlife experience originally built for PC, redesigned for comfortable standalone VR on Meta Quest 3. The goal was to keep the sense of scale and mood while bringing geometry, materials, lighting, and post-processing within mobile VR budgets—reaching a stable 72 FP¨S in hero scenes.

My Role & Scope

Role: Technical Artist (PC → VR art-side optimization)
Scope: geometry/LODs, material & texture atlases, light baking & lightmap UVs, batching & instancing, culling strategy, background conversion (skybox/sprites), shader simplification, post trims, and metrics validation.

Targets & Constraints

  • Performance: Stable 72 fps (≤13.9 ms GPU) on Quest 3

  • Budgets: triangles, draw calls/SetPass, lightmap size, texture memory, shader complexity

  • Constraints: Preserve atmosphere, silhouettes, and key interactions; minimize visible pop-in

Before

After


At the start, the PC scene exceeded mobile VR budgets: high triangle count, heavy overdraw from foliage/translucency, many unique materials, dynamic shadow chains, and distant geometry contributing unnecessary cost. We profiled the scene and identified hotspots using shaded, wireframe, overdraw/complexity, and lightmap-density views.

Before / 2.3 M Tris

After / 271.6 K Tris

What We Changed (Optimization Workstreams) 

1) Geometry & LODs/HLODs

Reduced triangles via decimate/remesh where appropriate, created consistent LOD ladders, merged static clusters, and used impostors/HLODs for distant sets. Enabled back-face culling on enclosed/one-sided meshes and simplified collisions.

2) Materials & Textures

Merged materials and built texture atlases for small props, baked micro-details to normal/occlusion, set streaming budgets, and trimmed shader variants—prioritizing opaque materials and cheap falloffs.

3) Lighting (Baked/Mixed)

Converted dynamic lighting to baked/mixed, generated lightmap UVs, tuned lightmap density, and used precomputed visibility to keep shadows and GI believable with minimal runtime cost.

4) Batching, Instancing & Culling

Applied GPU instancing for repeated meshes, static batching for immovable sets, and tuned cull distances per category to reduce off-screen cost while avoiding noticeable pop-in.

5) Background Conversion — Sprite Impostors

Rendered hero background models into sprite sheets (8–16 angles) and placed them as billboards/HISM. This retained silhouettes while removing expensive distant meshes.

6) Skybox Conversion — Distant Geometry

Baked large far-distance structures into a skybox (panorama/cubemap), then removed the source meshes. Exposure and fog were matched to maintain depth.

7) Back-Face Culling Example

On a large enclosed asset, enabling back-face culling (with normals audit) cut fragment shading significantly.

Before

After

Before

After

© 2025 Juan Esteban Ramírez García
All rights reserved
Creado con Webnode Cookies
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar