Unity酱~ 卡通渲染技术分析(二)

前面的话

上一篇Unity酱~ 卡通渲染技术分析(一) 写了CharaMain.cginc,服装的渲染是怎么实现的。这篇来分析一下头发跟皮肤的实现

头发

本来以为unitychan的头发会有各向异性的实现,没想到她也是用的CharaMain.cginc实现的。我们来看看头发的材质

其他实现都一样,也是通过高光反射贴图来控制高光区域跟反射区域

计算法线跟视角向量的点积,这样的效果是越垂直于视角向量的高光越大,然后用RGB贴图来控制哪些区域更容易出高光

反射依然是用A通道来控制,越白的地方,反射的越强

如何实现皮肤效果

这么漂亮的皮肤,其实只用了两个效果就实现了

漫反射+边缘光

这一次我们来详细说一下漫反射的实现

    float_t normalDotEye = dot( i.normal, i.eyeDir );
    float_t falloffU = clamp( 1 - abs( normalDotEye ), 0.02, 0.98 );

还是用法线跟视角向量的点积,并且限制在了0.02到0.98的范围。
本来是夹角越小的值越大,夹角越大的值越小,用1 - 去点积的绝对值后,表示越靠近视角向量的,就越接近0。跟视角向量夹角越大,值也就越大,也就是边缘的部位值会越大

    float4_t falloffSamplerColor = FALLOFF_POWER * tex2D( _FalloffSampler, float2( falloffU, 0.25f ) );
    float3_t combinedColor = lerp( diffSamplerColor.rgb, falloffSamplerColor.rgb * diffSamplerColor.rgb, falloffSamplerColor.a );

用刚刚求出来的值,采样的这张衰减贴图,也就是反映出皮肤质感的重要一步了!值越大,采样出的颜色就越接近肉色。也就是越边缘越接近肉色

FALLOFF_POWER 是一个衰减系数,skin shader中的值为1,也就是不衰减

再加上边缘高光

总结

unity chan的技术分析差不多完了,主要的技术特点如下:

  1. 漫反射是用N.V的值去采样一张衰减贴图实现的,这张贴图还可以用来实现皮肤效果
  2. 通过一张高光反射贴图来控制高光的细节,以及哪些区域要显示反射
  3. 边缘光没用菲涅尔反射,而是采样rim贴图后去乘以漫反射值得到的边缘高光
  4. 描边不是纯色的,采样了纹理颜色,再做了暗化处理

最后再来两张照片吧~~ 这套渲染效果其实还是蛮不错的

原文地址:https://www.cnblogs.com/lijiajia/p/12334145.html

时间: 2024-08-26 07:42:10

Unity酱~ 卡通渲染技术分析(二)的相关文章

【Unity灯光与渲染技术】Global Illumination全局光照

本系列主要参考Unity灯光与渲染技术教程Unity Lighting And Rendering,同时会加上一点个人实践过程和理解. ========================================== 分割线 ========================================== 这篇文章主要讲全局光照,在看教程的时候就有一个点不是很理解,就是作者开启物体的static这个选项.在网上查找一些资料,有的说"static表示物体时静态的,多用于静止不动的物体,此外

Unity Shader 卡通渲染 基于退化四边形的实时描边

一.边缘检测算法 3D模型描边有两种方式,一种是基于图像,即在所有3D模型渲染完成一张图片后,对这张图片进行边缘检测,最后得出描边效果.一种是基于空间,即针对3D模型的三角面三个顶点构成的线条做边缘检测(注:和基于图像的边缘检测的检测方式是不同的,但都叫边缘检测).在本文中使用的是基于空间的3D模型的描边. 空间的3D模型的描边的边是有类型的,大致总结有4种:轮廓边.边界边.折缝边.材质边.其中前3种是本文认为卡通渲染所必须有的. 图1 空间中的边分类 来自文献[1] 轮廓边的检测根据定义就是,

Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(下)

http://forum.china.unity3d.com/thread-32273-1-1.html 今天我们继续分享米哈游技术总监贺甲在Unite Beijing 2018大会上的演讲<在Unity上实现高品质卡通渲染的效果>下篇,上篇请点击此处阅读. 下面为演讲内容: 接下来我们就来介绍一下头发的渲染.头发是卡通渲染角色较为重要且独特的部分.我们想要实现根据光源动态变化的高光和阴影渐变,并且这个实现还应具备直观的所见即所得的色彩调节能力. 和皮肤的材质一样,对于头发的漫反射渲染我们同样

如何实现最佳的跨平台游戏体验?Unity成亮解密实时渲染技术!

7月31日,2018云创大会游戏论坛在杭州国际博览中心103B圆满举行.本场游戏论坛聚焦探讨了可能对游戏行业发展有重大推动的新技术.新实践,如AR.区块链.安全.大数据等.Unity大中华区技术经理成亮表示,实时渲染技术的跨平台性能让游戏体验变得更好 Unity大中华区技术经理成亮做了<解秘Unity2018最新实时渲染技术>的主题演讲,分享了2018年Unity在实时渲染方面实现的三个重要技术,包括图形相关的可编程渲染管线.基于渲染管线推出的Shader Graph.PostProcess工

Android中的软件安全和逆向分析[二]—apk反破解技术与安全保护机制

在Android应用开发中,当我们开发完软件之后,我们不希望别人能够反编译破解我们的应用程序,不能修改我们的代码逻辑.实际上,在应用程序的安全机制考虑中,我们希望自己的应用程序安全性高,通过各种加密操作等来增大竞争对手的反编译破解成本.设想,竞争对手开发一个同样的应用程序需要10天,而破解我们的软件程序需要100天,那么势必会打消黑客程序员破解我们应用程序的念头.如何增加对手的破解成本,就需要考验我们应用程序的安全性有多高,加密技术有多强.一个优秀的应用程序,不仅能为用户带来利益,同时也能保护自

背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战

背景建模技术(二):BgsLibrary的框架.背景建模的37种算法性能分析.背景建模技术的挑战 1.基于MFC的BgsLibrary软件下载 下载地址:http://download.csdn.net/detail/frd2009041510/8691475 该软件平台中包含了37种背景建模算法,可以显示输入视频/图像.基于背景建模得到的前景和背景建模得到的背景图像,还可以显示出每种算法的计算复杂度等等.并且,测试的可以是视频.图片序列以及摄像头输入视频.其界面如下图所示: 2.BgsLibr

基于物理的渲染技术(PBR)系列二

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 继续上篇博客中基于物理的渲染技术(PBR)系列一的讲解,在这里我们引入了一种被称为渲染方程(Render Equation)的东西.它是某些聪明绝顶人所构想出来的一个精妙的方程式,是

3DSMAX建模技术分析

在游戏美术中,模型的建立是很重要的,今天卡拉小编与大家分享的是3DSMAX建模技术分析1 旋转建模 用于具有中心对称的物体的造型比较简单,只需用工 具画出对称截面,加入(旋转)修改器就可以得到三维实体,有些还可以加入一些特殊变形,以增强表现的效果.2 Loft放样建模 这种建模的含义是将一个二维的交错物件转换为完整的三维物件的一个处理过程,也就是将一个二维的造型物件沿着第三轴向构建出复杂曲面的模型.也可以这样理解这个过程:将许多2D(shape)造型物件紧密且整齐地排列于一条路经(path)上,

Android4.0图库Gallery2代码分析(二) 数据管理和数据加载

Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 一 图库数据管理 Gallery2的数据管理 DataManager(职责:管理数据源)- MediaSource(职责:管理数据集) - MediaSet(职责:管理数据项).DataManager中初始化所有的数据源(LocalSo