What is the best approach to make a custom shader skybox in Godot 3.x?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Garbaz

Currently there is no “official” way to write a custom skybox shader (A planed feature for 4.0).

How would I go about doing it anyway? My current approach is creating a huge sphere MeshInstance and drawing on it with a ShaderMaterial. The problem is that I have to crank up the draw distance for the sphere to be shown, which only works as long as I don’t have much in my level.

I found this suggestion, which seems overly complicated for my use case, since I don’t want to draw anything 3D as the background, just some custom animated 2D shader.

Using the background mode “Canvas” does kinda work, but It always draws the same, independent of my camera orientation. Of course I could try to somehow pass my camera orientation into my shader, but that seems pretty hacky to me.