---
title: "Renderer Visual Profiles"
description: "Sources: `packages/renderer-visual-profiles/src/index.ts`."
engineVersion: v1.0.234
date: 2026-09-28
license: "(c) Gessa, proprietary. Cite with attribution to https://gessa.ai/docs/. Terms: https://gessa.ai/terms/."
canonical: https://gessa.ai/docs/creator/components/renderer-visual-profiles/
---
<!-- GENERATED FILE: do not edit by hand. -->
<!-- Regenerate with `npm run gen-docs`. -->

Sources: `packages/renderer-visual-profiles/src/index.ts`.

# Renderer Visual Profiles

Renderer visual profiles are cataloged data. Applying one mutates `project.world.environment` through the backend `renderer.visual_profile.apply` path; `SceneSnapshot.environment` remains the only renderer input.

Catalog version: `renderer-visual-profile-catalog.v1`.
Catalog hash: `sha256:9b2ffece70116a7575d5f65915b96348e79bcbaa1ab84d9357ec6dcbb394e345`.

## Authoring Rules

- Profiles do not create terrain, navmesh, scatter, gameplay entities, scripts, water systems, Nanite/Lumen equivalents, hardware ray tracing, custom shader source, or custom render passes.
- Frontend controls consume the catalog and call the backend profile apply action; they do not carry profile defaults.
- WebGL fallback and WebGPU expectation receipts are part of the profile metadata and must appear in renderer QA/profiler proof.
- The Post, Effects, and Budget columns are each profile's REQUESTED target, not a guarantee of delivered pixels. The runtime resolves every request against live backend capability and the per-tier frame budget and emits a typed RenderPlan degradation receipt for anything it downgrades. On WebGL, effects-on advanced/cinematic profiles commonly resolve down: the live `outdoor_day_clear` fixture resolves post to basic/smaa/warm (RenderPlan degradationCount 27, reasons such as `physical_sky_hardware_required`, `screenSpaceGlobalIllumination_requires_standard_pass`, `colorGrading_requires_standard_pass`), and `screenSpaceReflections` clamps to the probe/environment fallback. Read the profiler's effective quality and clamp reasons for what actually rendered.

## Profile Matrix

| Profile | Title | Category/Intent | Preset | Post | Effects | Reflection | WebGL fallback/clamps | WebGPU expectation | QA scenarios | Budget |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `studio_softbox.v1` | Studio Softbox | studio/soft | `studio` | `standard` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `vignette` | environment | WebGL uses the environment map and authored probes when present. | WebGPU uses environment PMREM and authored probes. | `visual-profile-studio-softbox` | 1920x1080 DPR 1, ultra, WebGL p95 12 ms, WebGPU p95 12 ms |
| `outdoor_day_clear.v1` | Outdoor Day Clear | outdoor/natural | `outdoor_day` | `advanced` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` | environment | WebGL uses the environment map and authored probes when present. | WebGPU uses environment PMREM and authored probes. | `visual-profile-outdoor-day-clear` | 1920x1080 DPR 1, ultra, WebGL p95 12 ms, WebGPU p95 12 ms |
| `outdoor_sunset_haze.v1` | Outdoor Sunset Haze | cinematic/dramatic | `outdoor_sunset` | `cinematic` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `screenSpaceReflections`, `vignette` | probes_plus_ssr | WebGL clamps SSR to reflection probe/environment-map fallback.<br>webgl_ssr_reflection_probe_env_map_fallback | WebGPU may resolve selective SSR when scene hints and MRT inputs are available. | `visual-profile-outdoor-sunset-haze` | 1920x1080 DPR 1, ultra, WebGL p95 16 ms, WebGPU p95 16 ms |
| `forest_morning_haze.v1` | Forest Morning Haze | outdoor/natural | `outdoor_day` | `advanced` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` | probes | WebGL falls back to environment map if a probe cubemap is unavailable. | WebGPU binds authored probes and environment PMREM. | `visual-profile-forest-morning-haze` | 1920x1080 DPR 1, ultra, WebGL p95 16 ms, WebGPU p95 16 ms |
| `desert_noon_glare.v1` | Desert Noon Glare | outdoor/dramatic | `outdoor_day` | `advanced` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` | environment | WebGL uses the environment map and authored probes when present. | WebGPU uses environment PMREM and authored probes. | `visual-profile-desert-noon-glare` | 1920x1080 DPR 1, ultra, WebGL p95 16 ms, WebGPU p95 16 ms |
| `jungle_canopy_mist.v1` | Jungle Canopy Mist | cinematic/dramatic | `outdoor_day` | `cinematic` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` | probes | WebGL falls back to environment map if a probe cubemap is unavailable. | WebGPU binds authored probes and environment PMREM. | `visual-profile-jungle-canopy-mist` | 1920x1080 DPR 1, ultra, WebGL p95 16 ms, WebGPU p95 16 ms |
| `interior_soft_bounce.v1` | Interior Soft Bounce | indoor/soft | `indoor` | `advanced` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `screenSpaceGlobalIllumination`, `vignette` | probes | WebGL falls back to environment map if a probe cubemap is unavailable. | WebGPU binds authored probes and environment PMREM. | `visual-profile-interior-soft-bounce` | 1920x1080 DPR 1, ultra, WebGL p95 14 ms, WebGPU p95 14 ms |
| `city_sunset_aerial.v1` | City Sunset Aerial | cinematic/showcase | `outdoor_sunset` | `cinematic` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `screenSpaceReflections`, `vignette` | probes_plus_ssr | WebGL clamps SSR to reflection probe/environment-map fallback.<br>webgl_ssr_reflection_probe_env_map_fallback | WebGPU may resolve selective SSR when scene hints and MRT inputs are available. | `visual-profile-city-sunset-aerial` | 1920x1080 DPR 1, ultra, WebGL p95 16 ms, WebGPU p95 16 ms |
| `night_moonlit_fog.v1` | Night Moonlit Fog | cinematic/night | `night` | `cinematic` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `screenSpaceGlobalIllumination`, `vignette` | probes | WebGL falls back to environment map if a probe cubemap is unavailable.<br>webgl_depth_of_field_not_available_uses_camera_focus_fallback | WebGPU binds authored probes and environment PMREM. | `visual-profile-night-moonlit-fog` | 1920x1080 DPR 1, ultra, WebGL p95 16 ms, WebGPU p95 16 ms |
| `renderer_moat_cinematic.v1` | Renderer Moat Cinematic | cinematic/showcase | `outdoor_sunset` | `cinematic` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `screenSpaceReflections`, `vignette` | planar_when_authored | WebGL uses authored planar water/probe fallback only.<br>webgl_ssr_reflection_probe_env_map_fallback | WebGPU uses authored planar/probe paths and selective SSR where policy allows. | `visual-profile-renderer-moat-cinematic`<br>`renderer-moat-demo` | 2560x1440 DPR 2, ultra, WebGL p95 16 ms, WebGPU p95 16 ms |
| `stylized_pop.v1` | Stylized Pop | stylized/showcase | `stylized` | `advanced` | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `screenSpaceGlobalIllumination`, `vignette` | environment | WebGL uses the environment map and authored probes when present. | WebGPU uses environment PMREM and authored probes. | `visual-profile-stylized-pop` | 1920x1080 DPR 1, ultra, WebGL p95 14 ms, WebGPU p95 14 ms |

## Lighting Rigs

| Rig | Title | Preset | Shadow tier | Contact shadows |
| --- | --- | --- | --- | --- |
| `studio.softbox` | Studio Softbox | studio | standard | auto |
| `outdoor.clear_sun` | Outdoor Clear Sun | outdoor | csm | auto |
| `outdoor.sunset_haze` | Outdoor Sunset Haze | outdoor | cinematic_csm | on |
| `outdoor.forest_morning` | Forest Morning | outdoor | csm | on |
| `outdoor.desert_noon` | Desert Noon | outdoor | csm | auto |
| `outdoor.jungle_canopy` | Jungle Canopy | outdoor | cinematic_csm | on |
| `interior.soft_bounce` | Interior Soft Bounce | indoor | standard | on |
| `city.sunset_aerial` | City Sunset Aerial | outdoor | cinematic_csm | auto |
| `night.moonlit_fog` | Night Moonlit Fog | night | cinematic_csm | on |
| `stylized.pop` | Stylized Pop | stylized | csm | auto |

## Post Profiles

| Post profile | Title | Preset | Color grade | Effects |
| --- | --- | --- | --- | --- |
| `post.studio_softbox` | Studio Softbox Post | standard | neutral | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `vignette` |
| `post.outdoor_day_clear` | Outdoor Day Clear Post | advanced | neutral | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` |
| `post.sunset_haze` | Sunset Haze Post | cinematic | warm | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `screenSpaceReflections`, `vignette` |
| `post.forest_morning_haze` | Forest Morning Haze Post | advanced | cool | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` |
| `post.desert_noon_glare` | Desert Noon Glare Post | advanced | warm | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` |
| `post.jungle_canopy_mist` | Jungle Canopy Mist Post | cinematic | cool | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `vignette` |
| `post.interior_soft_bounce` | Interior Soft Bounce Post | advanced | neutral | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `screenSpaceGlobalIllumination`, `vignette` |
| `post.city_sunset_aerial` | City Sunset Aerial Post | cinematic | cinematic | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `lightShafts`, `screenSpaceGlobalIllumination`, `screenSpaceReflections`, `vignette` |
| `post.night_moonlit_fog` | Night Moonlit Fog Post | cinematic | cool | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `screenSpaceGlobalIllumination`, `vignette` |
| `post.stylized_pop` | Stylized Pop Post | advanced | vibrant | `ambientOcclusion`, `bloom`, `colorGrading`, `contactShadows`, `screenSpaceGlobalIllumination`, `vignette` |

## Reflection Profiles

| Reflection profile | Mode | WebGL fallback | WebGPU expectation |
| --- | --- | --- | --- |
| `reflection.environment` | environment | WebGL uses the environment map and authored probes when present. | WebGPU uses environment PMREM and authored probes. |
| `reflection.probes` | probes | WebGL falls back to environment map if a probe cubemap is unavailable. | WebGPU binds authored probes and environment PMREM. |
| `reflection.probes_plus_ssr` | probes_plus_ssr | WebGL clamps SSR to reflection probe/environment-map fallback. | WebGPU may resolve selective SSR when scene hints and MRT inputs are available. |
| `reflection.planar_when_authored` | planar_when_authored | WebGL uses authored planar water/probe fallback only. | WebGPU uses authored planar/probe paths and selective SSR where policy allows. |
