需求

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"
}

Shader-内轮廓自发光效果的更多相关文章

  1. Shader食谱 Chapter3--Toonshader卡通效果

    Shader食谱 Chapter3--Toonshader卡通效果 unity shader toon 卡通Shader  Shader食谱 Chapter3--Toonshader卡通效果 Over ...

  2. 零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果

    原文:零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果 本章将教你如何运用笔刷与简单线条,只要5分钟,就能做出设计感效果 ? 本章将教你 ...

  3. pixijs shader 贴图溶解效果教程

    pixijs shader 贴图溶解效果教程 我直接贴代码了 没什么好讲解了 稍微有点基础的人应该能看懂 const app = new PIXI.Application({ transparent: ...

  4. 怎样创建TWaver 3D的轮廓选中效果

    在一般的游戏中.物体的选中效果会是这样: TWaver 3D中,物体的默认的选中效果一般都是一个方方正正的外框.在HTML5的Mono版本号中,TWaver提供了轮廓线样式的选中效果. 通过例如以下代 ...

  5. 『openframeworks』shader制作三角形马赛克效果

    不久前做了六边形马赛克的效果,很有意思,乘热打铁,弄了个三角形马赛克. 首先肯定是等边三角形,这样才能真正的无缝拼接.观察发现,三角形可以拼接成之前做个的六边形. 如下图: 我们可以发现6个三角形正好 ...

  6. CSS3利用一个div实现内圆角边框效果

    *首先要清楚的是,box-shadow的形状会随着border-radius变化.下面的例子可以证明: <!doctype html> <html lang="en&quo ...

  7. shader内置变量

    内置变量都在UnityShaderVariables.cginc文件中声明 变换矩阵 All these matrices arefloat4x4 type. Name Value UNITY_MAT ...

  8. 如何创建TWaver 3D的轮廓选中效果

    在一般的游戏中,物体的选中效果会是这样: TWaver 3D中,物体的默认的选中效果一般都是一个方方正正的外框.在HTML5的Mono版本中,TWaver提供了轮廓线样式的选中效果. 通过如下代码把几 ...

  9. Unity shader UI的3D效果

    原创,转载请标明出处 1.效果 scene视图中的效果: game视图中效果: 2.核心思想:改变UI的顶点坐标 3.好处:可以用正交相机来实现3D效果. 4.Shader 实现 // Unity b ...

随机推荐

  1. 常用sql进阶语句

    一.扩展数据库表字段长度 --mysql alter table user modify name varchar2 (32); --oracle alter table A modify(name ...

  2. Lombok介绍和使用

    1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' that know how ...

  3. StringBuilder(拼接字符串省内存)

    观察如下代码: String s = ""; for (int i = 0; i < 1000; i++) { s = s + "," + i; } 虽然 ...

  4. gulp压缩html,css,js文件流程、监听任务、使用gulp创建服务器、同时运行多个任务、反向代理

    一.初始化 首先先做一个项目初始化,用来记录你项目中用到的工具 再你项目文件下打开一个控制台,输入命令 yarn init -y 进行初始化 输入命令yarn add gulp -g  --- 全局安 ...

  5. add shell 出现 error: no devices/emulators found

    解决方案: adb kill-server adb reconnect

  6. Spark3.0分布,Structured Streaming UI登场

    近日,在Spark开源十周年之际,Spark3.0发布了,这个版本大家也是期盼已久.登录Spark官网,最新的版本已经是3.0.而且不出意外,对于Structured Streaming进行了再一次的 ...

  7. Java对MongoDB的CRUD

    https://blog.51cto.com/aiilive/1339058 MongoDB提供的Java操作API可以说是对Mongo数据库命令的Java翻译,熟悉Mongo命令,熟悉Java操作数 ...

  8. JavaWeb网上图书商城完整项目--21.用户模块各层相关类的创建

    1.现在要为user用户模块创建类 用户模块功能包括:注册.激活.登录.退出.修改密码. User类对照着t_user表来写即可.我们要保证User类的属性名称与t_user表的列名称完全相同. 我们 ...

  9. 九、深度优先 && 广度优先

    原文地址 一.什么是"搜索"算法? 算法是作用于具体数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于"图"这种数据结构的. 因为图这种数据结构的表达能 ...

  10. Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil

    在使用Java API操作HBase时抛出如下异常: Illegal reflective access by org.apache.hadoop.security.authentication.ut ...