Unity Shader Learning

本文深入探讨了Toon渲染中斜坡图的应用,通过特定的光照处理实现均匀阴影效果,介绍如何利用viewDir与WorldNormal的夹角创建鲜明的Silhouette边缘,同时分享了Shader编程细节,包括alpha渐变的实现。
  1. Toon
    1.  表面没有均匀的阴影。 为了达到这个效果,我们需要一个斜坡图。 其目的是将朗伯光强度NdotL重新映射到另一个值。 使用没有渐变的渐变映射,我们可以强制照明逐步渲染。下图显示了如何使用斜坡图来校正光强度:根据与光照方向的夹角去采样RampTex,来让光照呈现阶梯状的变化
  2. Sil'hou'ette 边缘颜色强烈,中间透明,有未来感。
    1.  

    2.   主要思想是viewDir与WorldNormal之间的夹角,夹角越大,颜色越浓。使用alpha:fade
    3.  1  Tags 
       2         {    
       3             "Queue"="Transparent"
       4             "IgnoreProjector"="True"
       5             "RenderType"="Transparent" 
       6         }
       7         LOD 200
       8 
       9         Cull Off
      10         CGPROGRAM
      11   
      12         #pragma surface surf Lambert alpha:fade nolighting
      13 void surf(Input IN, inout SurfaceOutput o) {
      14             float4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
      15             o.Albedo = c.rgb;
      16 
      17             float border = 1 - (abs(dot(IN.viewDir, IN.worldNormal)));
      18             float alpha = (border * (1 - _DotProduct));
      19             o.Alpha = c.a * alpha;
      20         }
      
      

转载于:https://www.cnblogs.com/chenc-c/p/10542383.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值