具有曲线和透明度的轮廓着色器

问题描述 投票:2回答:1

我试图创建一个轮廓着色器,他有一个编辑过的轮廓,目前它看起来像这样。enter image description here

Shader "test/SimpleOutline" {

 Properties {
  _MainTex ("Texture", 2D) = "white" {}
  _OutlineColor ("Outline Color", Color) = (0,0,0,1)
  _Outline ("Outline Width", Range (.002, 1.1)) = .005
}



 SubShader {
      Tags { "Queue"="Transparent" }
      ZWrite off
      CGPROGRAM
          #pragma surface surf Lambert vertex:vert
          struct Input {
          float3 viewDir;
          float2 uv_MainTex;
      };
      float _Outline;
      float4 _OutlineColor;
      void vert (inout appdata_full v) {

          v.vertex.xyz += v.normal * _Outline;

      }
      sampler2D _MainTex;

      void surf (Input IN, inout SurfaceOutput o) 
      {
        o.Emission = float4(0, 1, 0,0);
      }
  ENDCG

  ZWrite on

  CGPROGRAM
      #pragma surface surf Lambert
      struct Input {
          float2 uv_MainTex;
      };

      sampler2D _MainTex;
      void surf (Input IN, inout SurfaceOutput o) {
          o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
      }
  ENDCG

} 
Fallback "Diffuse"

}

我希望它像这样。

enter image description here

它应该与实际对象保持一定的距离Transparent,这样你就可以看到背景.完全环绕每个对象并呈弧形.就像这个喇叭?

enter image description here

有没有人有一个建议,如何最好地实现这一点?

unity3d shader outline-view
1个回答
0
投票

嗯,有趣的问题。1. 如何在离对象的距离上实现轮廓效果?我建议用钢网 Pass1:在没有钢网的情况下画出你的网格 Pass2:在MaskColor 0的情况下画出网格,并在钢网上写上一些值 Pass3:在启用钢网的情况下画出纯色的轮廓网格,并在钢网上写上比前一关更大的 "比例"

类似的东西。

  1. 曲线图像。感觉应该用像这个视频中的技术来做。https:/www.youtube.comwatch?v=xH5uUfeB2Go 尝试在Pass3中应用。

P.S.如果有时间的话,我准备过两天自己试试这个效果。

© www.soinside.com 2019 - 2024. All rights reserved.