OmniLight3D projectors are upside down compared to PanoramaSkyMaterial's default orientation. We should change this to make it more user-friendly to set up projector textures, and ensure that they always appear the right way up by default.
On the screenshot below, each of the inverted spheres contains an OmniLight3D with a projector texture that is the same as the background sky.
Left: Default OmniLight3D rotation (incorrect), right: Corrected OmniLight3D rotation (0, 0, -180°) in the inspector
Steps to reproduce
Download an HDRI panorama from Poly Haven. Import it in a project.
Set the HDRI panorama as the background sky in the Environment resource by creating a PanoramaSkyMaterial and assigning the texture there.
Add a CSGSphere3D node and check Invert Faces in the inspector.
Add an OmniLight3D node and check Shadow > Enabled in the inspector. Set the HDRI panorama as the projector texture on the OmniLight3D.
Increase the OmniLight3D's Range and Energy properties to make sure the projector texture is easily visible.
Compare the projector texture orientation (which does not depend on the lit surface's UV maps) with the background sky.
Godot version
4.0.alpha (9d1626b4d)
System information
Fedora 34, GeForce GTX 1080 (NVIDIA 495.46)
Issue description
OmniLight3D projectors are upside down compared to PanoramaSkyMaterial's default orientation. We should change this to make it more user-friendly to set up projector textures, and ensure that they always appear the right way up by default.
On the screenshot below, each of the inverted spheres contains an OmniLight3D with a projector texture that is the same as the background sky.
Left: Default OmniLight3D rotation (incorrect), right: Corrected OmniLight3D rotation
(0, 0, -180°)
in the inspectorSteps to reproduce
Minimal reproduction project
test_projector_sky_comparison.zip