【问题标题】:Create clear plane that will prevent render trough创建可防止渲染槽的清晰平面
【发布时间】:2014-08-06 17:18:57
【问题描述】:

在我的统一游戏中,我想在地板高度创建一个清晰的平面,并且我希望它隐藏下面的东西(而不是渲染槽)。

发生的事情是我在地面上放置了 2 扇门,在下面我有一条隧道,在门打开之前我不想被看到。 飞机应该放在两个打开的门下面,只要相机在门上方,这个飞机就会阻止下部被渲染。

我该怎么做?

【问题讨论】:

  • 究竟什么是“透明平面”?它是在你的图像上还是那扇门?
  • 我希望它刚好在 2 个方形门的下方(一个被选中),它应该足够大以防止相机看到它,但同时又要透明。我听说过与此任务相关的“面具”一词。

标签: unity3d


【解决方案1】:
Shader "Cover" {
Properties {
}

SubShader {
    Tags { "RenderType"="Opaque" "IgnoreProjector"="True" "LightMode"="ForwardBase" "Queue"="Geometry-1" }
    LOD 100
    ColorMask 0

    CGINCLUDE
    #include "UnityCG.cginc"

    struct v2f {
        float4 pos : SV_POSITION;
        float2 uv : TEXCOORD0;
    };

    v2f vert (appdata_full v)
    {
        v2f o;
        o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
        o.uv = v.texcoord;      
        return o;
    }
    ENDCG

    Pass {
        CGPROGRAM
        #pragma vertex vert
        #pragma fragment frag
        #pragma fragmentoption ARB_precision_hint_fastest       
        fixed4 frag (v2f i) : COLOR
        {
            return fixed4(1,1,1,0);
        }
        ENDCG 
    }
}

Fallback "Diffuse"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2020-04-24
    相关资源
    最近更新 更多