Skip to content
Back to skills

Light Scene

ASecurity

Use when lighting or rendering a PlayCanvas scene, covering lights, ambient and environment lighting, sky, shadows, tone mapping, exposure, fog, and post-processing.

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
ai-agents

Works with

  • cli

Security analysis

A100/100

Scanned October 1, 2026

npx -y skills add playcanvas/skills --skill light-scene --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Light Scene?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Light Scene
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/playcanvas-light-scene/badge)](https://www.skillsdirectory.com/skills/playcanvas-light-scene)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: light-scene
description: Use when lighting or rendering a PlayCanvas scene, covering lights, ambient and environment lighting, sky, shadows, tone mapping, exposure, fog, and post-processing.
---

# Light and render a scene

Engine defaults give a flat, dark image; change them deliberately. Tune against inspected
screenshots, one class of value at a time.

## Defaults to change

- `scene.ambientLight` is black, so unlit sides render pure black. Light ambient and reflections
  from an environment atlas or skybox, or set an ambient colour.
- Cameras default to `TONEMAP_LINEAR`. Choose `TONEMAP_NEUTRAL`, `TONEMAP_ACES2`, or
  `TONEMAP_FILMIC` (on `cameraFrame.rendering.toneMapping` when using `CameraFrame`), set exposure,
  then balance light intensities to it.
- Shadows are off. Enable `castShadows` on the key light. Directional `shadowDistance` is 40 m, so
  use cascades for large scenes, and `SHADOWUPDATE_THISFRAME` for static shadows. Size resolution to
  the framed subject.
- Lights shine along local -Y (`apply-conventions`).

## Use what ships

- `CameraFrame` handles tone mapping, bloom, SSAO, DOF, vignette, and grading. Call `update()` after
  changes and destroy it with the app. Keep bloom intensity within the documented 0 to 0.1.
- `scene.sky.type` (`SKYTYPE_DOME`, `SKYTYPE_BOX`, `SKYTYPE_INFINITE`) grounds an environment sky.
- The `ProceduralSky` script owns a linked sun light: set the light's base intensity, then tune
  elevation and azimuth on the sky, not the light.
- The `ShadowCatcher` script grounds subjects that have no lit floor.
- Clustered lighting is on by default, so many point and spot lights are cheap.
- Bake static lights with `bake-lighting`; stylize shading with `override-shader-chunks`.

Find each integration's example with `find-examples`.

## Warning signs

- Albedo washing toward white: reduce exposure, sky, and light intensity before darkening
  materials.
- Large areas clipped white or crushed black: rebalance exposure and lights before adding post.
- A fog colour that differs from the sky horizon breaks the horizon line.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.