forge-point-light-shadows

Render omnidirectional point light shadows using cube-map depth textures in SDL GPU projects.

36|6|Updated Mar 25, 2026
One-click install
npx skills add https://github.com/Nebulavenus/forge-gpu --skill forge-point-light-shadows-nebulavenus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: forge-point-light-shadows
Source: https://github.com/Nebulavenus/forge-gpu/tree/main/.claude/skills/forge-point-light-shadows
Command: npx skills add https://github.com/Nebulavenus/forge-gpu --skill forge-point-light-shadows-nebulavenus

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Add omnidirectional shadow mapping for point lights using cube map textures to render shadows in all directions around a light source.

Core Features & Use Cases

  • Omnidirectional shadow maps: six-face cube maps storing linear depth for each point light.
  • Deterministic rendering pipeline: per-face shadow passes with shared depth buffer and cube-map sampling in the scene shader.
  • Use cases include real-time scenes with multiple point lights requiring consistent shadows in all directions.

Quick Start

Integrate by creating six-face cube-map shadow textures for each active point light, render all six faces per frame, then render the scene with the cube-map shadows bound for sampling.

Frequently Asked Questions about forge-point-light-shadows

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement omnidirectional point-light shadows in an SDL_gpu project?

Omnidirectional point-light shadows in SDL_gpu are implemented by rendering depth from six directions into a TEXTURETYPE_CUBE shadow map, then sampling this cube map in your scene shading pipeline to determine real-time shadow occlusion.

What is cube-map shadow mapping for real-time point lights?

Cube-map shadow mapping for point lights stores linear depth across six faces of a cube texture, capturing depth in all directions around a light source to provide consistent omnidirectional real-time shadows.

How do I render six faces for a point-light shadow map using SDL_gpu?

You render six faces for a point-light shadow map by creating a TEXTURETYPE_CUBE texture with SDL_CreateGPUTexture, executing per-face render passes using a shared D32_FLOAT depth buffer, and binding the resulting cube map for scene shading.

Does SDL_gpu support cube-map depth textures for real-time shadow rendering?

Yes, SDL_gpu supports real-time shadow rendering by using SDL_CreateGPUTexture with TEXTURETYPE_CUBE to generate six-face depth textures, which are sampled with a NEAREST sampler during the scene shading pipeline passes.

Why use a shared D32_FLOAT depth buffer for point-light shadow passes?

A shared D32_FLOAT depth buffer is used for point-light shadow passes to efficiently render linear depth across all six cube-map faces, ensuring deterministic shadow mapping results while maintaining rendering pipeline performance.

What is the best way to handle multiple point lights requiring shadows in real-time scenes?

For multiple point lights requiring real-time shadows, the best approach is creating dedicated six-face cube-map shadow textures for each active light, rendering all faces per frame, and binding them for scene shader sampling.