Loading...
Loading...
Use when lighting or rendering a Godot 4.7 3D scene: pick a renderer (Forward+, Mobile, Compatibility), choose GI (SDFGI, VoxelGI, LightmapGI, reflection probes), bake lightmaps without a mouse, tune WorldEnvironment, tonemapper (AgX, ACES, Filmic), glow, fog, volumetric fog and god rays, shadows and shadow acne, quality presets for PC and phones, Compositor post effects, or when 'my scene looks flat', 'too dark indoors', 'light leaks', 'lightmap is black', 'looks different on mobile'.
npx skill4agent add scenario-labs/skills scenario-godot-rendering-lightingnpx skills add scenario-labs/skills --skill <name>gd_runlookdev.gdfallback_to_opengl3.gdshader| Input | Default if not given |
|---|---|
| Target platforms and renderer per platform | Forward+ desktop. Project default |
| Frame budget and reference GPU | 60 fps (16.6 ms) on PC; measure on Vulkan (Metal reports 0 GPU ms) |
| Static or dynamic world: moving sun, destructible geometry, size | static interior: lightmaps; open day/night: SDFGI; mid-size dynamic: VoxelGI |
| Mood references and time of day | one image or three words ("cold dawn, foggy, hopeful") |
| Hero subject and camera(s) | a Camera3D path, else the scene's current camera |
| Asset source | glTF from blender-expert or scenario-* skills: check UV2 and stray emission |
sys.pathskills/scenario-godot-expert/scriptsskills/scenario-godot-rendering-lighting/scriptsimport gd_lighting as glgl.install(P)references/procedures.mdrendering_methodgl.capture_renderers(P, scene)gl.build_lookdev(P)look_checksgi_bake.gd:preparegi_bake.gd:lightmapgi_bake.gd:voxelgigl.audit(P, scene, ["forward_plus", "mobile"])squint(img)focal_contrastgl.sweeptonemap_variantsshadow_normal_biasshadow_biasgraphics_tiers.gdcallmeasure=60--rendering-driver vulkancompositor_tools.gd:attachpost_effect.gdmeshes/light_baking=2meshes/lightmap_texel_size*.unwrap_cache.lmbakerendering/lightmapping/denoising/denoiserLightmapGI.shadowmask_modessao_light_affectimporter="3d_texture"slices/horizontal| Value | What it is relative to | Source |
|---|---|---|
| default 0.1 | SeasonalAsh frames 4:13; P1 |
| shadow blur 2 to 3 | default 1.0 | SeasonalAsh 5:13 |
| directional max distance 100 | default; Picster 400 outdoors | P1; Picster 54:08 |
| volumetric fog volume size | 64 default, 256 good, 512 best; +0.2 to 1.1 (64), +1.5 to 2.7 (256), +3.9 (512) ms at 1080p | Four Games 2:44; P9 |
| fog anisotropy 0.7 for god rays | default 0.2 | Four Games 0:32; P1 |
| SDFGI convergence | about 30 frames (enum index 5); capture after 40 | P1, P8 |
| SDFGI bounce feedback | default 0.5; above 0.5 risks runaway | P1; Omogonix 28:10 |
| SDFGI max distance | 204.8 default, camera far 4000 | P15 |
| lights per mesh | Mobile 8 omni + 8 spot; Forward+ 512 clustered elements per view | docs |
| spot shadow angle | fails above 89° | docs |
| LightmapGI quality order | supersampling, then texel size, then quality | Brackeys 34:34 |
| LightmapGI Low bake, lookdev room | 3.6 to 15 s bake (M5 Max, under load) | P7 |
| effect GPU ms at 1080p, tiny scene | SSIL +1.4 to 1.7, SSR +0.9 to 1.3, SDFGI +0.7 to 1.1; SSAO, glow, TAA, SMAA, MSAA 2x each under 0.8 (under 0.5 is noise) | P9, Vulkan |
| tier GPU ms (Forward+ / Mobile) | low 1.5 / 0.62, high 2.9 to 4.3 / 1.73, ultra 3.6 to 4.85 / 1.64 | P11, tiny scene |
gl.auditgd_run.check_alllook_checksfocal_contrastlightmap_textures.gitignoreunwrap_cachereferences/critique.md| Mistake | What it looks like | Fix |
|---|---|---|
| Leaving Linear tonemap | blown highlights, flat sky | AgX or ACES, then exposure |
| Lighting in the editor preview sun | game is gray | WorldEnvironment and sun in the scene (SeasonalAsh 1:40) |
| SDFGI plus VoxelGI | double bounce, cost | one GI per area |
| Lightmap meshes without UV2 | black or garbage bake | |
| Hidden light still baked | ghost light | Bake Mode Disabled ( |
| Expecting FSR1 on Mobile | identical to bilinear, warning "FSR1 3D scaling is only available when using the Forward+ renderer" | MetalFX spatial on Apple, else bilinear (P13) |
| docs CompositorEffect on Mobile | 170+ errors per run | storage-bit guard ( |
| Stray emission on imported glTF | glowing props | audit |
| Writing "30" into frames_to_converge | wrong enum index | |
| SSAO on, nothing changes | AO invisible in direct light | raise |
| LUT as a plain PNG | color correction ignored | reimport as Texture3D with slices |
graphics_tiers.gd.tres.agent_out/references/expert-notes.mdLightmapGI.bakeVoxelGI.bakeGeometryInstance3D.lightmap_scalegi_lightmap_texel_scale--rendering-driver vulkanreferences/procedures.mdreferences/expert-notes.mdreferences/critique.mdreferences/gui-paths.mdreferences/sources.mdscripts/gd_lighting.pyscripts/agentkit/rendering/