美文网首页
Unity_遮挡物体透视效果(一 )

Unity_遮挡物体透视效果(一 )

作者: 西章momo | 来源:发表于2019-10-09 20:00 被阅读0次

前言


暂时不太方便上截图,有时间会补上。效果是被遮挡的部分会以设定的颜色亮起,且边缘高亮.

shader


直接看shader怎么写的。

Shader "Exercise/TransparentShader-1" {
    Properties {
        _MainTex("Texture", 2D) = "white" {}
        _Color("Color", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "RenderType"="Opaque" "IgnoreProjector"="True" "Queue"="Geometry"}
        Pass {
             ZWrite Off
             Blend SrcAlpha One
             ZTest Greater
             CGPROGRAM
            
             #pragma vertex vert
             #pragma fragment frag
             fixed4 _Color;
             struct v2f {
                 float4 vertex : SV_POSITION;
                 float3 normal: normal;
                 float3 viewDir: TEXCOORD0;
              }
              
             v2f vert(appdata_base v) {
                  v2f o;
                  o.vertex = UnityObjectToClipPos(v.vertex);
                  o.normal = v.normal;
                  o.viewDir = ObjSpaceViewDir(v.vertex);
                  return o;
             }
             fixed4 frag(v2f i) : SV_Target {
                 fixed3 normal = normalize(i.normal);
                 fixed3 viewDir = normalize(i.viewDir);
                 float rim = 1 - dot(normal, viewDir);
                 return _Color * rim;
             }
             ENDCG
        }
        Pass {
            ZWrite On
            CGPROGRAM 
            #pragma vertex vert
            #pragma fragment frag
            sampler2D _MainTex;
            float4 _MainTex_ST;
            struct v2f {
                float4 vextex : POSITION;
                float2 uv: TEXCOORD0;
            }
            v2f vert(appdata_base v) {
                v2f o;
                o.vertex = v.vertex;
                o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
            }
            fixed4 frag(v2f i) : SV_Target {
                 return tex2D(_MainTex, i.uv);
            }
            ENDCG
        }
    }
    FallBack "Diffuse"
}  

结语

后续还会继续更新对于半透明情况处理的shader。如果以上有错误之处,还请指正

相关文章

  • Unity_遮挡物体透视效果(一 )

    前言 暂时不太方便上截图,有时间会补上。效果是被遮挡的部分会以设定的颜色亮起,且边缘高亮. shader 直接看s...

  • Unity Shader深度测试-透视xray(转)

    Unity Shader深度测试-透视xray 透视XRay效果常常用来显示被墙体及其它物体遮挡的物体的轮廓,下面...

  • 鲁美

    不要从正中 角 破形 遮挡 大 黑白运用 透视 层次 背景:勾线 颜色对比 用色 通过影子做层次 立体 明度 物体...

  • 物体设置专题

    物品设置 遮挡效果 添加 box collider 2d 有碰撞效果 要想一个物体有物理效果需要添加Rigidbo...

  • ShadersRoom - 遮挡透明

    先上一张效果图: 物体在被遮挡后,被遮挡的部分边缘高亮显示,实现这效果大致思路是:  使用2个pass块来渲染这个...

  • GLSL in Unity 系列文章(七):遮挡X光透视效果

    今天使用GLSL在Unity3D中实现一个遮挡X光透视效果,老规矩,先上效果: 这个效果的原理也比较简单,首先使用...

  • Shader笔记——遮挡半透效果

    在游戏中经常会出现这样的效果,当角色跑到其他物体(如建筑,墙)背后的时候,被物体遮挡的部分会出现半透高亮效果(X-...

  • Occlusion Culling(遮挡剔除)

    什么是Occlusion Culling(遮挡剔除)?遮挡剔除, 当一个物体被其他物体遮挡住而不在摄像机的可视范围...

  • 11. 3D转换&透视

    1. 3D透视 「3D的特点」近大远小,物体和面遮挡不可见 「三维坐标系」 x 轴:水平向右 -- 注意:x 轴...

  • 一、透视法:人体透视法与物体透视 二、 遥视法

    一、透视法:人体透视法与物体透视 二、 遥视法 (2013-01-07 10:11:37) 一、透视法:人体透视法...

网友评论

      本文标题:Unity_遮挡物体透视效果(一 )

      本文链接:https://www.haomeiwen.com/subject/xvxnpctx.html