Goal: I have a skybox texture which I want mapped as a Latitude-Longitude Layout Cubemap (cylindrical). I want this skybox to be layered so I can scroll multiple layers of clouds independently of each other, giving a parallax effect like clouds spinning around the camera view.
What I have so far: I have a custom shader graph which blends the layers together the way I want, that works fine.
The probblem: When I apply this shader graph/material to Unity’s skybox, it’s not mapped correctly, and I can’t figure out how to fix it. The texture is applied to the skydome at a vertical offset of 0.5, and repeated horizontally four times, and there is also some stretching along the vertical running edges. Obviously my shader graph isn’t translating its blended layers into the cubemap format that Unity wants, but I don’t know how to represent blended cubemaps in a shader graph. I see that there are “Sample Cubemap” and “Sample Reflected Cubemap” nodes, but I don’t know how to scroll/offset their uv layouts.
More details:
This is what my cubemap texture looks like (merged into one layer): https://drive.google.com/file/d/1JmtnCyfCb_bBGjyngZ4-UvmiawZ5RSkt/view?usp=sharing
When I merge the layers together, and set it to the correct cubemap settings, it works fine. This is what it looks like as a single layered skybox: https://drive.google.com/file/d/18eaJULHr-_JCrrBdCRDeDzmLVkzz6TuN/view?usp=sharing
This is what my custom shadergraph looks like: https://drive.google.com/file/d/1OOPKQc9f9xfitddXC4DF91IE0aLvq3sA/view?usp=sharing
This is what that shadergraph looks like applied to the skybox (The texture should be stretched from the top of the sphere to the bottom of the sphere, but it’s stretched to the horizon instead, and repeated below the horizon.) https://drive.google.com/file/d/1_h-8AyoYPZbRHoeap-lYgw3halbdWJp-/view?usp=sharing
This is another angle showing there is also some stretching happening: https://drive.google.com/file/d/1SK_U6IYAS4JYhLi_xFaBjQ5qnV02fXfM/view?usp=sharing
Here I tried using a “Tiling and Offset” node (linked to all my Sample Texture 2d nodes) to make up for the offset, which kinda worked, but it doesn’t get rid of the stretching: https://drive.google.com/file/d/1aKDut4Qpv3dJJ9AwWeKiG1Hxdko43-Bi/view?usp=sharing
Other threads which didn’t quite help:
https://answers.unity.com/questions/1187071/method-for-layered-skybox.html
https://answers.unity.com/questions/986822/how-to-make-standard-shader-material-reflect-camer.html
No Answers
Makes the skybox a white void? I think this is for a different kind of blending.
Specific Questions:
-
Is there a way to remap the blended color output in my shader graph to a cylindrical cubemap layout? How do I do that?
-
If I approach this with cubemap nodes instead of Sample Texture 2d nodes, how do I scroll the layers? Some threads were saying that’s impossible. Is it?
-
Should I just abandon using Unity’s skybox feature and jerryrig my own system?