- Home /
How do I get objects to render against the skybox?
I've tried to modify the Diffuse shader to render the object behind everything else by setting the Queue=Background, RenderMode=Background, Set the Cull and ZWrite to different settings and a few other things as well. Changed the camera.renderingPath = RenderingPath.Forward as was suggested this thread, but nothing seems to work. The object always seems to render normally as if I was just using the regular Diffuse shader.
Here's the current shader:
Shader "Background/Diffuse" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "Queue"="Background" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert
sampler2D _MainTex;
fixed4 _Color;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
Fallback "VertexLit"
}
Any ideas?
FWIW, using Unity 4.0.1f2
Answer by Teeleton · Feb 23, 2013 at 09:26 AM
In the end, I just created a skybox layer, set up a skybox camera with a skybox component that can only see that layer and set the depth on it to zero. Then anything that I want to be painted on the skybox just gets put in the skybox layer. The camera never moves relative to the objects in that layer, so they appear to be infinitely far away. All that was left then was to add a simple script to do a LateUpdate() that matches the rotation on the skybox camera with the main camera's rotation.
Best part about this method is that I can use the same shaders on the skybox stuff as everything else.
Answer by nullstar · Feb 22, 2013 at 02:04 PM
You probably need to turn 'ZTest' to 'Awlays' and 'ZWrite' to 'Off'
That seems to work well until I enable the skybox component, and then the object disappears. The only way I can seem to make it work correctly is if I put the skybox on a different camera, and tweak the depth on the skybox camera to 0, and the main camera to 1. Seems like I shouldn't have to resort to that, but I may have to.
Your answer
Follow this Question
Related Questions
Simple shader works in Editor-view but not in game-view. 0 Answers
Procedural Skybox Color 1 Answer
Understanding the Procedural Skybox 0 Answers
Scene Background 2 Answers
Skyboxes in Unity 2018 1 Answer