RimLight(轮廓光) - Shader
【RimLight(轮廓光) - Shader】
RimLight指的是物体的轮廓光。效果如下:
  
轮廓光的强度通过 1.0 - dot(normal, eye_vector)来计算。使用这个公式,则指向camera的轮廓光强度会是0,垂直到camera的轮廓光强度是1,而背离的强度会是2。GLSL实现如下:
  
smoothstep(a,b,x)函数将a-b范围的x值投射到0-1区间上。为了让轮廓光只在边缘出现,我们需要只显示vdn 0.6以上的值,如仅仅把0.6以下部分抛弃,则会产生Hard Edige。
使用smoothstep函数,把0.6-1.0平滑插值成0-1即可产生平滑的轮廓光。
  
效果如下:
  
Reference:
1、http://www.roxlu.com/2014/037/opengl-rim-shader
RimLight(轮廓光) - Shader的更多相关文章
- 【Unity Shader】Unity Chan的卡通材质
		写在前面 时隔两个月我终于来更新博客了,之前一直在学东西,做一些项目,感觉没什么可以分享的就一直没写.本来之前打算写云彩渲染或是Compute Shader的,觉得时间比较长所以打算先写个简单的. 今 ... 
- 【Unity Shader实战】卡通风格的Shader(一)
		写在前面 本系列其他文章: 卡通风格的Shader(二) 呜,其实很早就看到了这类Shader,实现方法很多,效果也有些许不一样.从这篇开始,陆续学习一下接触到的卡通类型Shader的编写. 本篇的最 ... 
- 练手之RimLight
		简单写写,练下手~ Shader "James/VP Shader/RimLight" { Properties { _MainTex("MainTex", 2 ... 
- Fresnel Reflection Shader
		[Fresnel Reflection] One of the most used types of reflections is the Fresnel reflection. One of the ... 
- OpenGL shader 中关于顶点坐标值的思考
		今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示. 思路很简单,在vertex shader内知道顶点坐标,进行计 ... 
- CSharpGL(14)用geometry shader渲染模型的法线(normal)
		+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(14)用geometry shader渲染模型的法线(normal) +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 ... 
- 【译】Unity3D Shader 新手教程(6/6) —— 更好的卡通Shader
		本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你想了解以下几件事,我建议你阅读以下这篇教程: 想知道如何写一个multipass的toon shade ... 
- 【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader
		本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader). 你想实现 ... 
- 【译】Unity3D Shader 新手教程(4/6) —— 卡通shader(入门版)
		本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 暗黑系 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想了解更多有关表面着色器的细节知识. 你想实现一个入门 ... 
随机推荐
- [MEF]第04篇 MEF的多部件导入(ImportMany)和目录服务
			一.演示概述此演示介绍了MEF如何使用ImportMany特性同时导入多个与相同约束相匹配的导出部件,并且介绍了目录服务(Catalog),该服务告知MEF框架可以在什么地方去搜寻与指定约束匹配的导出 ... 
- Nchan 实时消息内置变量
			以下参考官方文档: $nchan_channel_idThe channel id extracted from a publisher or subscriber location requ ... 
- nginx  fastcgi 优化
			fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m; fastcgi ... 
- bzoj 3157 && bzoj 3516 国王奇遇记——推式子
			题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ... 
- 试玩swoole扩展 第一天
			安装 pecl install swoole 部分过程: configure: creating ./config.statusconfig.status: creating config.hrunn ... 
- Snippet取表字段说明和详细信息
			IF OBJECT_ID (N'dbo.GetDetails', N'IF') IS NOT NULL DROP FUNCTION dbo.GetDetails; GO create function ... 
- 阻塞队列之四:ArrayBlockingQueue
			一.ArrayBlockingQueue简介 一个由循环数组支持的有界阻塞队列.它的本质是一个基于数组的BlockingQueue的实现. 它的容纳大小是固定的.此队列按 FIFO(先进先出)原则对元 ... 
- 一种SequenceFile的格式研究
			最近仔细研究了以下公司中使用的SequenceFile文件格式,SequenceFile的格式比较紧凑,实现了从中间读取文件内容(便于hadoop将文件进行适当地切分),同时也可以支持仅读取文件的元数 ... 
- Linux下干净卸载mysql详解
			转自:http://blog.csdn.net/tjcyjd/article/details/52189182 1.使用以下命令查看当前安装mysql情况 rpm -qa|grep -i mysql ... 
- kubernetes 学习   常用命令
			1 kubectl get nodes #查看nodes节点情况 2 kubectl describe node node_name_XXXX # 查看nodes详 ... 
