需求

1 基于涅菲尔反射的变形

  • 原理 (近处的反射少,远处反射多)

    1)公式(近似):F = Fscale + (1-Fscale)(1-v·n)^5
  • 利用fresnel做边缘发光,代码
fixed fresnel = _FresnelScale + (1 - _FresnelScale) * pow(1 - dot(viewDir, worldNormal), _PowVal);//涅菲尔公式:_PowVal =5
_ColorFresnel * saturate(fresnel)

2 基于表面着色器Unity2019

Shader "Unlit/FirstShader"
{
Properties
{
_MainTex(" Diffuse (RGB)", 2D) = "white" {}
_NormalMap("Normal Map", 2D) = "bump" {}
_RimColor ("Rim Color", Color) = (1.0, 1.0, 1.0, 0.0)
//_RimConcentration ("Rim Concentration", Range(0.5, 5.0)) = 0.9
_RimStrength ("Rim Strength", Range(1.0, 4.0)) = 1.45
}
SubShader
{
Tags { "RenderType" = "Opaque" } CGPROGRAM
#pragma surface surf Lambert sampler2D _MainTex;
sampler2D _NormalMap;
float4 _RimColor;
float _RimConcentration;
float _RimStrength; struct Input
{
float2 uv_MainTex;
float2 uv_NormalMap;
float3 viewDir;
}; void surf(Input In, inout SurfaceOutput o)
{
fixed4 c = tex2D(_MainTex, In.uv_MainTex);
float Lc = saturate(dot(normalize(In.viewDir), o.Normal));
half rim = 1.0 - Lc;
o.Albedo = c.rgb;
o.Normal = UnpackNormal(tex2D(_NormalMap, In.uv_NormalMap));
o.Alpha = c.a;
//o.Emission = _RimColor.rgb * pow(rim, _RimConcentration);
o.Emission = _RimStrength * (_RimColor.rgb * smoothstep(0.2, 0.6, rim));
}
ENDCG
}
FallBack "Diffuse"
}

最新文章

  1. Vue - 过滤器
  2. storm入门(二):关于storm中某一段时间内topN的计算入门
  3. no package 'webkit-1.0' found
  4. dubbo服务框架学习
  5. CodeChef November Challenge 2014
  6. java_Properties写入文件
  7. Little Zu Chongzhi's Triangles
  8. Unix/Linux环境C编程入门教程(16) LinuxMint CCPP开发环境搭建
  9. cocos2d-x中的导演、场景、层和精灵
  10. Unity Container
  11. mysql中datetime和timestamp的区别
  12. Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)
  13. windows与linux的文件夹共享
  14. PERL学习笔记---正则表达式的应用
  15. ES6学习笔记(字符串和数值)
  16. 服务器-华为RH5885 V3-安装Windows Server 2008R2后设备管理器中存在大量的感叹号,并且无法识别网络适配器,没有网卡
  17. AspxGridView使用手记
  18. 浅谈区间DP的解题时常见思路
  19. ios开发之--使用AFN上传3.1.0上传视频,不走成功回调原因及解决方法
  20. TypeScript 基础入门(一)

热门文章

  1. python flask API 返回状态码
  2. 五个Taurus垃圾回收compactor优化方案,减少系统资源占用
  3. Python中的队列
  4. Spring Cloud Alibaba系列(四)使用gateway作为服务网关
  5. koa2 的使用方法:(一)
  6. robot framework使用小结(三)
  7. 2020年IDEA破解激活码永久
  8. dart快速入门教程 (7.1)
  9. 题解 P5937 【[CEOI1999]Parity Game】
  10. centos6.4 卸载 vim7.2 安装vim7.4