Vulkan: clouds are not rendered (cloud layer missing) #156

Closed
opened 2026-09-29 03:10:57 +00:00 by sky_line · 0 comments
Owner

Reported as "not sure clouds are drawing". A code check confirms it: the Vulkan renderer has no cloud layer at all.

  • indra/vkclean/shaders/ has no cloud shader. clean_sky.frag draws the atmosphere, sun, moon, stars, aurora and meteors, but no clouds.
  • The only cloud parameter the VK path reads is cloud_shadow (atmos[2].w, in clean_atmos_common.glsl). It darkens the sky haze and dims sunlight, but doesn't draw anything.
  • llcleanrenderervk.cpp / the LLVKWorldFrame atmos block carry none of the EEP cloud settings (cloud colour, density, scale, scroll/position, variance, texture).

In GL, LL draws clouds as a separate dome pass (cloudsV/F.glsl, LLDrawPoolWLSky::renderSkyClouds). It uses the sky's cloud noise texture (getCloudNoiseTextureId) and the EEP parameters cloud_color, cloud_pos_density1/2, cloud_scale, cloud_scroll_rate, cloud_variance and cloud_shadow.

Work

  • Carry the cloud parameters and the cloud noise texture ID into the VK world frame (extend atmos or add a clouds block), with the scroll offset advanced per frame.
  • Draw clouds in the sky pass, per pixel in clean_sky.frag (ray to the dome, sample the noise the way LL's cloudsF does), composited over the atmosphere and under the sun/moon discs the way LL orders them.
  • Probe captures: include clouds in reflection-probe sky captures (clean_probe_sky.frag) so reflections match.
  • HDR: match LL's cloud brightness with sky HDR scale / auto-adjust, so clouds don't blow out (see #150).
  • Check RenderCloudsEnable-style settings and the EEP editor's cloud tab drive it live.

Compare against the GL viewer on the same sky (Midday, plus a heavy-cloud EEP preset).

Reported as "not sure clouds are drawing". A code check confirms it: **the Vulkan renderer has no cloud layer at all.** - `indra/vkclean/shaders/` has no cloud shader. `clean_sky.frag` draws the atmosphere, sun, moon, stars, aurora and meteors, but no clouds. - The only cloud parameter the VK path reads is `cloud_shadow` (`atmos[2].w`, in `clean_atmos_common.glsl`). It darkens the sky haze and dims sunlight, but doesn't draw anything. - `llcleanrenderervk.cpp` / the `LLVKWorldFrame` atmos block carry none of the EEP cloud settings (cloud colour, density, scale, scroll/position, variance, texture). In GL, LL draws clouds as a separate dome pass (`cloudsV/F.glsl`, `LLDrawPoolWLSky::renderSkyClouds`). It uses the sky's cloud noise texture (`getCloudNoiseTextureId`) and the EEP parameters `cloud_color`, `cloud_pos_density1/2`, `cloud_scale`, `cloud_scroll_rate`, `cloud_variance` and `cloud_shadow`. ## Work - [ ] Carry the cloud parameters and the cloud noise texture ID into the VK world frame (extend `atmos` or add a `clouds` block), with the scroll offset advanced per frame. - [ ] Draw clouds in the sky pass, per pixel in `clean_sky.frag` (ray to the dome, sample the noise the way LL's `cloudsF` does), composited over the atmosphere and under the sun/moon discs the way LL orders them. - [ ] Probe captures: include clouds in reflection-probe sky captures (`clean_probe_sky.frag`) so reflections match. - [ ] HDR: match LL's cloud brightness with sky HDR scale / auto-adjust, so clouds don't blow out (see #150). - [ ] Check `RenderCloudsEnable`-style settings and the EEP editor's cloud tab drive it live. Compare against the GL viewer on the same sky (Midday, plus a heavy-cloud EEP preset).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#156
No description provided.