在先前的博客Unreal Engine 4 —— Kajiya-Kay Shading在UE4中的实现 中过了一遍怎么在UE4中实现Kajiya-Kay Shading,但是这个着色效果还是略显简陋。因此这篇博客是基于Kajiya-Kay Shading对这个材质进行了迭代,力争使其更有表现力。


发丝颜色过渡

在发丝的表现中,有时会出现发根与发梢有着不同的颜色(例如对于比较干燥的头发,往往发根偏黑而发梢偏白)。因此这里输入两个颜色分别代表发根与发梢的颜色、输入过渡高度以及过渡程度的参数,从而实现在两个颜色之间的过渡:

边缘光(Fresnel Effect)

菲涅尔效应在很多地方都有用到,主要用来表现反射材质的高光、特殊状态的表现等。Fresnel Effect主要表现在物体越与视线相切的地方,则值越大,越与视线重合,则值越小(其实Fresnel Effect很好实现,法线与视线的叉乘即可):

在发丝的表现中,也需要有这种的边缘光表现,唯一不同的是将视线换成光线方向,也就是说光线与物体相切的地方则越亮,否则越暗:

高光噪点

在现实的发丝中,由于很多时候光线在第一层头发反射后,一部分光线会穿过第一层头发,在第二层头发上反射再一次照亮第一层头发。这也就是很多时候会有高光的噪点。

在这个材质里面如果真的要模拟现实的计算,未免计算量太大。因此在这里直接使用噪点图,分别加在两个高光分量上:

高光跟随视线

在Kajiya-Kay Shading中,高光的表现通常是与V向量相关,也就是说只要摄像机位置不动,无论其如何旋转,高光的表现是不会变化的。

我在晚上上街去观察了一些长发女生的头发在路灯下的表现,发现的确也是无论视线盯着哪个地方,高光信息的确是不变的(不敢太凑近看会被打)。

在我与公司的原画美术讨论后,他倒是认为高光信息随着视线改变实际上会更有表现力,因此将对于V向量进行了进一步的处理:

最终能达到这个效果,我个人其实相当满意:

<全文完>

转载于:https://www.cnblogs.com/arrowinmyknee/p/5470383.html

Unreal Engine 4 —— 基于Kajiya-Kay的材质迭代相关推荐

  1. Unreal Engine 4 基于网格的水面模拟实现

    http://blog.csdn.net/shangguanwaner/article/details/51862644 Unreal Engine 4 水面模拟实现 一般游戏里水面的模拟都是实用动态 ...

  2. 游戏音频技术备忘 (五)Wwise Unreal Engine 集成代码浅析 二

    AkAmbientSound类的实现 Unreal Engine提供了一个基本对象的构造器ObjectInitializer,一般来说用户创建的类总是拥有很多变量,因此 AkAmbientSound  ...

  3. 基于Unreal Engine 2的救援机器人仿真平台开发(一)

    Ureal Engine(以下简称UE)是Epic Games开发的游戏引擎.他与游戏Ureal Tournament 2004(UT2004)一起发布.UE和UT2004都分别发布了Windows, ...

  4. Unreal Engine 4 系列教程 Part 3:材质教程

    原文:Unreal Engine 4 Materials Tutorial 作者:Tommy Tran 译者:Shuchang Liu 通过这篇教程,你将学会如何在材质编辑器里修改贴图,创建材质实例, ...

  5. 剖析Unreal Engine超真实人类的渲染技术Part 3 - 毛发渲染及其它

    目录 四.毛发渲染 4.1 毛发的构造及渲染技术 4.1.1 毛发的构造 4.1.2 Marschner毛发渲染模型 4.1.3 毛发的间接光照 4.2 毛发的底层实现 4.3 毛发的材质解析 4.3 ...

  6. 虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course

    虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 ...

  7. Unreal Engine 4 的 光和影

    Unreal Engine 4 的 光和影 UE4中的所有光源通过lightmass和直接两种方式作用于物体.同时灯光分直接光和间接光.各种灯光的Movable和Stationary类型都会对物体产生 ...

  8. Unreal Engine 4 —— Pixel Depth Offset的使用心得

    http://blog.csdn.net/noahzuo/article/details/51361789 这篇博客解释了Unreal Engine 4中的Pixel Depth Offset通道的使 ...

  9. UNREAL ENGINE 4.13 正式发布!

    这次的版本带来了数百个虚幻引擎 4 的更新,包括来自 GitHub 的社区成员们提交的 145 个改进!感谢所有为虚幻引擎 4 添砖加瓦贡献的人们: alk3ovation, Allegorithmi ...

最新文章

  1. python matshow用法
  2. 《企业软件交付:敏捷与高效管理精要》——1.5 对企业软件交付的需求是如何演变的呢...
  3. logback property 默认值_看完这篇文章还不会给spring boot配置logback,请你吃瓜
  4. python二次开发攻略-ABAQUS Python二次开发攻略
  5. Oh My God!e.printStackTrace() 导致系统卡崩
  6. Android的手势的保存
  7. ValueError: Related model 'users.UserProfile' cannot be resolved
  8. unity DOTS的学习总结之Job System
  9. 运算放大器的偏置电流、失调电流
  10. OBS 直播、录屏软件下载安装操作教程
  11. android instrumentation 用法,android测试之——Instrumentation(一)
  12. MATLAB调用ANSYS进行有限元分析
  13. [渝粤教育] 周口师范学院 大学计算机基础 参考 资料
  14. lighty2.0沙箱版本的协议和配置分析采用ragel 成功案例
  15. SQL查询条件传入参数为空查询全部数据,不为空指定查询,可选参数查询
  16. 40年间,“国货”如何崛起
  17. PTA 6 循环日程表
  18. Spring懒加载机制原理和配置讲解
  19. 基于attention机制的中英文机器翻译
  20. HTML中为什么点击按钮没有反应

热门文章

  1. TCP协议的流量控制
  2. 贪心法——LeetCode376 摆动序列
  3. bzoj 1645: [Usaco2007 Open]City Horizon 城市地平线(线段树扫描线)
  4. 斐波那契数列(复习)
  5. js排序算法详解-桶排序
  6. jmeter配置元件之计数器
  7. Python快速生成注释文档
  8. transform:rotate在手机上显示有锯齿的解决方案
  9. 生成XML文件的步骤 解析XML文件
  10. 数据库表多维度数据的计算和汇总