热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【翻译】CryEngine3下的HumanSkinShader

HumanSkinShader1.概述HumanSkinshader是专门用于渲染皮肤表面的。由于皮肤是一个独特外观,并且不能通过常规shading来实现的。一个有趣

HumanSkin Shader

1.       概述

HumanSkin shader是专门用于渲染皮肤表面的。由于皮肤是一个独特外观,并且不能通过常规shading来实现的。一个有趣的特点是,这种shader允许我们基于黑色和红色素重新创建皮肤纹理颜色。这样我们可以获得更多的颜色变化而不需要更多的纹理。

 

使用skin shader的模型例子

2.       Shader参数

Shader 参数

描述

Subsurface multiplier

次表面散射强度乘数

Rim multiplier

边缘光照强度乘数(受环境贴图影响)

Wrinkles blend

设置表情皱纹贴图混合

Specular multiplier

设置镜面反射乘数

Light diffusion amount

光散射量

Rim Power

设置边缘光强度

Melanin

设置黑色度层级

Detail tilling U

设置细节贴图U

Detail tilling V

设置细节贴图V

Detail bump scale

设置细节凹凸强度

Wrinkles bump scale

设置皱纹凹凸强度

Wrinkles diffuse blend

设置皱纹变形与漫反射图混合强度

Inner layer depth

设置表面内层有多深或多近

Outer layer opacity

设置外层表边的不透明度

Inner layer anim frequency

设置内存动画频率(与深度有关)

Inner layer anim phase

移动动画(当前无用)

Inner layer diffuse

设置内层的颜色

 

3.       皮肤属性

它总是非常分散的,并且取决于皮肤的类型和颜色。在深色的皮肤上反射是十分特别的。油性和湿性也会影响皮肤的反射。嘴唇的颜色默认还要跟多的反射。它同样依赖于油性和湿性来变化更多或更少的反射,

根据皮肤表面的厚度我们能看到光线穿透表边并且有很有趣的细节,这个现象在明亮的肤色如耳,鼻,手处更明显。

4.       如何使用Skin Shader

Skin shader考虑了所有上边的属性,并且它简单易用,6个默认参数

Specular Multiplier: 设置镜面反射的强度,请注意这是非常微妙的(0.2以下),对于明亮的皮肤色和比暗色的皮肤色调更强一些

  

没有高光(multiplier {{ 0), subtle specular (multiplier }} 0.1)到极强的高光(multiplier = 1).注意微妙的高光带来的不错的Normal贴图细节,以及极强的高光会把这些细节又破坏掉了

Subsurface Multiplier: 设置次表面有多强,次表面部分来自此表面纹理的输入,越深的纹理越越少的次表面可见,查看次表边散射以获得更多信息。

 

没有次表面到最大次表面(multiplier {{ 0), maximum subsurface amount (multiplier }} 1.0) 注意次表面散射部分,你可以通过次表面纹理来调整此表面散射的强度。

Rim Power: 设置边缘照明的强度,越高变化的越锐利,查询RimLighting来获得更多信息。

  

没有边缘光找到最大边缘光找效果(multiplier {{ 0), medium rim (multiplier }} 0.5), max rim (1.0),注意角色上的边缘光照强度的效果

Hemoglobin: 设置血红色,越高分红色成分越多,越低红色成分越多。我们可以设定不同颜色类型而无需做太多纹理。

  

很少的血红色(-0.6),默认的血红色(0.0),较多的血红色(0.6),注意越少的血红色使的角色看起来更发黄,越多看起来越粉红。

Melanin: 设置黑色素越高,它看起来更暗,可以通过一些不同类型的颜色值来模拟,而不需要更多的纹理。

 

默认的黑色素(0.0) 更多的黑色素(0.5)

附加说明:

      你可以通过设置glossmapdiffuse texture的高光通道你可以去掩盖一些镜面反射和Rim的高光。

      镜面反射的高光是很微妙的,油性皮肤会影响更多,像鼻子,额头,嘴唇的区域。

      请参阅Rim Lighting部分获取更多细节

      请参阅Subsurface Scattering tuorial部分获取细节

      始终在中性条件下去做调整设置。

5.       Rim Lighting(边缘光照)

Rim Lighting 模拟了光在一些大角度位置的反射,这意味着他的轮廓形状会与背景分离的更加明显。

CryEngineSkin shader中支持这个功能,它是基于纹理的。这意味着我们需要mask-out那些我们需要它是边缘的像素。

注释:

           Rim的颜色来自于漫反射颜色和光的漫反射色

           通过设置glossmapdiffuse纹理的透明通道,你可以mask-out边缘的高光

           检查SkinShader上光与边缘照明的参数描述。

光从左侧来,光从右侧来

没有边缘照明                    有边缘照明

6.       Subsurface Scattering(次表面散射)

次表面散射基本上是传输过程中穿透了表面的效果,更具表面的类型和厚度,能见多随着增加或减少。

CryEngine基于shader支持皮肤,冰、植被等近似的模拟。

Skin Shader的次表面散射

使用起来非常简单,能得到最廉价的近似效果。以Wapped Diffuse Shader为基础使用了一个次表明映射来mask-out次表面范围。

你可以通过次表面贴图Mask-out次表面区域。纹理需要一个红色,并且依赖于你想要得到的可视化细节。你可以使用一个低分辨率的纹理,也可以使用一个高分辨率的纹理(如果你想要得到一个显示静脉效果的话)

         次避免需要依赖于diffuse texture颜色,这意味着越黑色的diffuse颜色,你看到次表面上部分越少。

         下面介绍SkinShader中此表面散射参数。

        

           

    一个次表面纹理的例子

        

          

  次表面部分没有次表面纹理      次表面部分应用了sss纹理

  

没有次表面和有次表面的最终效果。

7.       结束语

如果小心使用HumanSkin shader可以达到非常真实的效果。

它非常依赖输入的数据,主要是Diffuse/Normal/subsurface Map制作的是否精细。

 

作者:无花无酒
出处:http://www.cnblogs.com/WanaX/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

 

转:https://www.cnblogs.com/wanax/archive/2009/12/20/1628182.html



推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • Webdriver中元素定位的多种技术与策略
    在Webdriver中,元素定位是自动化测试的关键环节。本文详细介绍了8种常用的元素定位技术与策略,包括ID、名称、标签名、类名、链接文本、部分链接文本、XPath和CSS选择器。每种方法都有其独特的优势和适用场景,通过合理选择和组合使用,可以显著提高测试脚本的稳定性和效率。此外,文章还探讨了在复杂页面结构中如何灵活运用这些定位技术,以应对各种挑战。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在HTML布局中,即使将 `top: 0%` 和 `left: 0%` 设置为元素的定位属性,浏览器中仍然会出现空白填充。这个问题通常与默认的浏览器样式、盒模型或父元素的定位方式有关。为了消除这些空白,可以考虑重置浏览器的默认样式,确保父元素的定位方式正确,并检查是否有其他CSS规则影响了元素的位置。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • ### 优化后的摘要本文对 HDU ACM 1073 题目进行了详细解析,该题属于基础字符串处理范畴。通过分析题目要求,我们可以发现这是一道较为简单的题目。代码实现中使用了 C++ 语言,并定义了一个常量 `N` 用于字符串长度的限制。主要操作包括字符串的输入、处理和输出,具体步骤涉及字符数组的初始化和字符串的逆序操作。通过对该题目的深入探讨,读者可以更好地理解字符串处理的基本方法和技巧。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
  • 提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射)
    提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射) ... [详细]
author-avatar
游泳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有