Unity3D开发MR实现模型遮挡与透明地面接收阴影

一、实现现实场景遮挡模型

原理:构建面片放置对应位置遮挡虚拟模型再将面片透明不显示

构建Shader代码,将改shader赋予给材质,将材质赋予给需要挡住别人的面片。以下办法不适用烘焙。

效果:

 

 

代码如下:

Shader "Custom/mask"
{

    SubShader
    {
        Tags{ "RenderType" = "Opaque" "Queue" = "Geometry-3" }

        ColorMask 0
        ZWrite on

        CGINCLUDE
#include "UnityCG.cginc"

        struct appdata
    {
        float4 vertex : POSITION;
    };

    struct v2f
    {
        float4 pos : SV_POSITION;
    };

    v2f vert(appdata v)
    {
        v2f o;
        o.pos = UnityObjectToClipPos(v.vertex);

你可能感兴趣的:(Unity3D,BUG解决,mr)