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

最新文章

  1. BZOJ2124: 等差子序列
  2. sql 查询表的所有详细信息
  3. .NET NLog 详解 (三) - LayoutRender
  4. AndroidStudio .gitinore编写
  5. box-shadow使用指南
  6. web开发--文档下载
  7. C++学习笔记(八):函数重载、函数指针和函数对象
  8. perl静态编译DBD
  9. Android增加监听的三种实现方式
  10. 使用HttpClient发送GET请求
  11. 使用HTMLParser爬取标签内容
  12. JSP学习(一)之中文乱码问题的解决
  13. Hadoop安全(2)——————UserGroupInformation
  14. Linux分区的几种方案
  15. Confluence 6 配置服务器基础地址示例
  16. Servlet 知识点总结(来自那些年的笔记)
  17. Android、IOS文字居中偏离的解决方案
  18. IE快捷键
  19. Docker:集装箱式“运输”在软件上的实现
  20. 保存登录plsql developer 的用户名和密码

热门文章

  1. Ecel 粘贴图片并调整大小,移到底层
  2. 以gevent(协程) 方式跑uwsgi服务
  3. MyEclipse项目突然报错JavanotFindClassException
  4. wordpress缓存插件使用提高网站速度
  5. Avro和Thrift区别(未完待续)
  6. FOR XML PATH 灵活运用
  7. angular的require模块的使用($requireProvider的作用)
  8. javascript基础-js对象
  9. Epel源配置
  10. [转][c#]注册表经验集