PBR for VR and AR uses the same metalness maps as a flat-screen game, but the headset doubles the pixel cost and puts the user’s eyes centimeters from surfaces. Shimmer, crawling mips, and 4K overdraw hurt more than a slightly simpler albedo. This guide is a material budget for stereo and passthrough, using free CC0 textures from Locker3d.

Stereo makes every texture error louder

Each eye is a separate view. Specular sparkle that is a one-pixel flicker on a monitor becomes nausea in a headset. Large glossy floors and raw metal plates are the usual offenders. Keep roughness in a realistic range: unfinished wood and concrete should not sit at 0.05. Albedo stays sRGB and lighting-free; roughness, normal, and metalness stay linear. Basics: what PBR textures are.

Resolution, mips, and mobile AR

PC VR can afford more than Quest-class AR, but both hate unused 4Ks.

  • PC VR — 2K tileables, 2K unique props, 4K only on a weapon or tool the user inspects.
  • Standalone VR / mobile AR — 1K default, 2K for the few hero surfaces, ASTC compression.
  • Passthrough AR — match real-world albedo brightness so virtual stone or metal does not glow against the room.

Always generate mipmaps. Anisotropic filtering (4× or 8×) helps floors. Do not disable mips to “keep VR sharp”; that causes shimmer. Preview materials in Blender at the same texel density with this PBR setup, then cook for the device.

Packing and shader cost

Pack AO, roughness, and metalness into one linear ORM texture. One sample is cheaper than three, which matters at 72–120 Hz × two eyes. Avoid heavy clearcoat, 16-sample parallax, and stacked triplanar on every wall. A single tileable CC0 concrete plus a decal atlas is cheaper than six unique 2K walls. Normal maps: 8-bit cooked, OpenGL or DirectX as the engine requires; flip green once, not per material.

Scale, comfort, and lighting

VR users judge scale with their body. A wood plank that is 2× too large feels like a toy set. Set real-world size on every Locker3d tile (most scans document a physical size; if not, calibrate against a 1 m cube). Keep contrast in albedo moderate; high-contrast repeats cause pattern sickness. Prefer image-based lighting with a stable exposure; flickering GI is worse in stereo than a slightly flatter look.

CC0 for shipped experiences

Locker3d textures are CC0: commercial VR training apps, AR catalogs, and games can include them without credit. Compress and stream them like any other game texture. Do not claim you authored the scans. License: CC0 textures: what you can and cannot do. Grab bases from the catalog; more real-time notes are on the blog.

Frequently asked questions

What texture resolution works in VR and AR?

Cap most unique maps at 2K. Use 1K for trim and anything beyond arm’s reach. Tileable CC0 floors and walls at 2K with correct world scale beat a single 4K that never streams. Mobile AR should prefer 1K.

Why do PBR materials shimmer in a headset?

Missing mipmaps, roughness near 0 on large floors, and aliased normals. Enable mips, raise roughness slightly, use specular AA if the engine has it, and keep data maps in linear/non-color.

Can I use Locker3d CC0 textures in a shipped VR app?

Yes. CC0 allows commercial VR and AR apps without attribution. Compress to ASTC or BCn, pack ORM, and do not claim you created the original maps.