I have spawned the object in Unity AR foundation and as expected, the object is always in front of the actual world objects.

So if I spawn cube under the table and look from above, the cube is going to be visibly on the table.

I know that I should use occlusion but not sure how or at least can not find video explaining it very well.

I have created a Shader and have added a script from bottom of text to it , then I have created a new material and assigned that shader to it, then put that material to the plane and added that plane as an object in plaint detection manager ....

This is the tutorial I have been following regarding my issue

Shader "Custom/oculsion"
        _Color("Color", Color) = (1,1,1,1)
        _MainTex("Albedo (RGB)", 2D) = "white" {}
        _Glossiness("Smoothness", Range(0,1)) = 0.5
        _Metallic("Metallic", Range(0,1)) = 0.0
        Tags { "RenderType" = "Opaque" }
        LOD 200

        // Physically based Standard lighting model, and enable shadows on all light types
        #pragma surface surf Standard fullforwardshadows

        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0

        sampler2D _MainTex;

        struct Input
            float2 uv_MainTex;

        half _Glossiness;
        half _Metallic;
        fixed4 _Color;

        // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
        // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
        // #pragma instancing_options assumeuniformscaling
            // put more per-instance properties here

        void surf(Input IN, inout SurfaceOutputStandard o)
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
            o.Albedo = c.rgb;
            // Metallic and smoothness come from slider variables
            o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
            o.Alpha = c.a;
        FallBack "Diffuse"
  • \$\begingroup\$ The shader you've shown looks like the default surface shader template. It is unclear to me how you intend or are attempting to use this to support your occlusion effect. It bears no resemblance to the shader given in the tutorial you've linked. Can you please explain why you are deviating from the tutorial's steps here? \$\endgroup\$
    – DMGregory
    Jul 6, 2021 at 11:03
  • \$\begingroup\$ Thank you for the answer , i was not aware that i have deviated from the tutorial , i will redo every step again . \$\endgroup\$ Jul 6, 2021 at 11:08
  • \$\begingroup\$ Now it works , i will delete the Q later because i don't think it can be of any use for others . \$\endgroup\$ Jul 6, 2021 at 11:35


You must log in to answer this question.

Browse other questions tagged .