位置: 编程技术 - 正文

[置顶] unity3d Human skin real time rendering 真实模拟人皮实时渲染([置顶]津鱼.我爱你)

编辑:rootadmin
先放出结果图片。。。由于网上下的模型是拼的,所以&#;皮,脸颊,嘴唇看起来像存在裂痕,解决方式是加入曲面细分和置换贴图进行一定隆起,但是博主试了一下fragment shader的曲面细分,虽然细分成功了但是着色效果变的很奇怪,这里就不用曲面细分了,大家如果有在fragment shader上用曲面细分的好办法,可以的话请告诉我

推荐整理分享[置顶] unity3d Human skin real time rendering 真实模拟人皮实时渲染([置顶]津鱼.我爱你),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:[置顶]游戏名:chivalry2,[置顶]游戏名 TentacleLocker,[置顶]从lv2开始开挂的原勇者候悠闲的异世界生活,[置顶]bilinovel,[置顶]bilinovel,[置顶]bilinovel,[置顶]bilinovel,[置顶]JM259194,内容如对您有帮助,希望把文章链接给更多的朋友!

参数设置1

参数设置2

细致到毛孔的高光

次表面散射的耳朵

人皮渲染是十多年的课题了,人们想尽一切办法想让其变得真实可信,大型3A级次时代游戏近来做的又来越真实了如《罗马之子》,他们的皮肤自称已经超过了NVIDIA的例子

这是在年SIGGRAPH的多层皮肤渲染,他们的参数都是经过精密的医学上的测量的,而且渲染花费了5分钟的时间。。。

研究这个找了许多资料,在结合之前的知识弄出了一个看起来还算入&#;的人皮本例做到了以下几点1. 次表面散射

2. 基于物理的渲染

包括specular和brdf等等,brdf我用了一张贴图调整曲率来代替,specular在之前这篇文章有详细讲解 链接在此

3. 法线模糊

等等之类。。。

[置顶]
        unity3d Human skin real time rendering 真实模拟人皮实时渲染([置顶]津鱼.我爱你)

为什么皮肤渲染这么难?1. 大多数的漫反射光来自次表面散射2. 皮肤颜色主要来自上表皮3. 粉或红色主要为真皮中的血液此图为人皮的组成模拟,人有好多层表皮,这就说明在真实情况下要进行数次折射与反射,这就更难达到真实

光的折射与反射 上图直观的表明了光线“被怎么样了”光线接触到皮肤时,有大约%被皮肤各层散射了,只有大约4%被反射再说specular,人的皮肤会出油,所以就会有反射,但是人的皮肤不能像镜子那样反射,因为人的皮肤是粗糙的,在这种情况下用基于物理的(physically based)方法就最好不过了,没了解过physically based的看官们可以先了解下这篇文章和上面的一样 使用了之前试出效果最好的的方法,也就是使命召唤2中用到的的方法,同时试了下beckmann的方法,但是效果并不好,phong等方法也没有试这里,我们的实现方法是这样的:

然后发现尽管gloss调到最大也没有达到我们预期的那种效果,又进行了 “智能补光”也就是常规的求高光的方式,我们在此加入了高光贴图,不让不该高光的地方(如眉毛)产生高光

光经过哪,就带一部分那里的颜色,可以发现光从入射到出射,位置和方向都变了

光走的路径数量是无穷大,光反射回来的都为漫反射,油脂表面的透明度也都是不一样的,这就产生了次表面散射 NVIDIA在GDC年的演讲中提到把图像blur个六遍达到柔和的次表面散射效果每次blur都是在不同的颜色通道以不同的范围和程度进行blur 由于我们的贴图是这样的“高配” 用在本例上会丢失少许本来贴图上的细节,但是确实有一定的次表面散射效果,各位看官自行取舍,而且千万不要只做高斯模糊,这样的话细节会丢失更多,而且没有什么次表面散射的感觉

为了节省花销,省去了ppt中的rendering时blur,直接在ps上做了6张高斯模糊的贴图放入material,并线性混合

我们同时也起到重要作用的是边缘光rim和brdf,使用了BRDF最明显的好处是,Brdf贴图间接控制了明暗交界线的颜色,可通过曲率控制,模拟了光与阴影交界处光对皮肤的反射与折射,如果全黑的话说明光只是普通的漫反射。

而且使人皮有了次表面散射的质感

对于rim的话添加了前向rim和后向rim其实本质上还是rim,后向rim使用了白色的图片产生一种玉质的感觉(好吧其实更像羊羹),前向rim使用了红色的图片,相当于添加了光线在血液层的散射,让人的脸蛋有了真实的血色这是次表面散射的结果:

光源在嘴里

像不像把手指或者耳朵放在手电筒前面的那种效果?那就是次表面散射需要一张Intense strips贴图来混合原有颜色,方法就是在点光源情况下,求出当前点与点光源的距离,距离越近就越亮关于法线,用了一种新的混合方式,这样能保有更多法线细节,这里简单讲解一下法线混合,大家可能用过这种方式来混合两个法线贴图,这种线性的方式折中了两个贴图,得到的细节权重是平均的,效果并不好,得到的是这样的结果 改进了一下,变成了覆盖混合就是法线1的法线比较深的地方,就多一些权重,比较浅的地方就被法线2适当覆盖,但是这样效果还是不够真实 在GDC的Mastering DX with unity中讲到了一种官方的办法如下:

得到的结果是这样的,是不是好了许多?

双方的细节程度都有很多提升,

他们用了一个basis来变换第二法线。具体可以看 这篇文章—链接 用AutoLight.cginc里定义的一个函数LIGHT_ATTENUATION求出光的衰减atten,atten在directional light中固定是1,在点光源中才有衰减效果,因为directional light在unity中是没有位置区别的,在哪里都一样。对于细节方面,如毛孔,在本例的贴图和法线贴图都很细致,已经包括毛孔和皮肤的纹路,如果贴图精度低还想要高细节的话,可以再贴上细节 全部可设置变量:

全部代码已共享至GitHub链接 ---- by wolf

Unity3D游戏之游戏日志打印 游戏运行之时打印日志,方便我们查bug,下面我说说自己项目的日志系统怎么弄。日志等级分别为LogLevel.DEBUG,LogLevel.INFO,LogLevel.WARNING,LogLevel.ERROR,LogLevel.C

Unity Batch 对 Vertex Shader 产生影响 今天用VertexShader来实现旗帜飘动,本来设想旗帜是在旗面的法线方向上下飘动的,所以在模型坐标系下给vertex.z加上一个随时间变化的sine波。简化如下

正弦波近似 在做一些游戏效果的时候经常需要用到正弦波,它平滑又有周期性,但是sin的计算开销略大。作为优化,在GPUGem上看到一个用三次函数平滑三角波得到

标签: [置顶]津鱼.我爱你

本文链接地址:https://www.jiuchutong.com/biancheng/384519.html 转载请保留说明!

上一篇:Unity Shader 常用函数列表(unity shader saturate)

下一篇:Unity3D游戏之游戏日志打印(unity3drpg游戏)

  • 企业缴纳所得税税率
  • 增值税发票抵扣是什么意思
  • 资管产品增值税由谁承担
  • 纳税义务发生时间和申报纳税的时间
  • 资产负债表里的应收账款怎么取数
  • 季度企业所得税可以不预缴吗
  • 国际货物运输07113
  • 总产值和主营业务收入
  • 小规模纳税人印花税怎样计算
  • 生产成本存货会计分录
  • 商品房的销售方式有哪些
  • 销售废旧物品的账务处理
  • 未收回质保金是否需要交纳增值税呢?
  • 物业公司需要向哪个部门缴费
  • 出售商标使用权收入计入什么科目
  • 划拨土地能转为商业用地吗
  • 安装费发票开具3%税率国税需要备案吗?
  • 外出经营活动税收管理证明和跨区域涉税事项报告表
  • 自产自销农产品企业所得税
  • 自用房屋的房产税怎么缴纳
  • 缴纳滞纳金计入什么科目
  • 资产原值包含残值吗
  • 总分类账户和明细分类账户平行登记的内容可以概括为
  • 存货跌价准备在报表什么项目列示
  • 商家不给发票可以报警吗
  • 防暑降温用品进什么科目
  • 派遣员工发生工伤这钱谁出
  • mac终端更新系统
  • win11打开设置
  • win7为什么还有人用
  • win10插usb没有反应
  • 酒店布草洗涤赔偿怎样折旧
  • help是什么文件夹可以删除吗
  • 无偿调入固定资产账务处理
  • 一般纳税人辅导期管理办法
  • 购买土地前期测量费怎么入账
  • conime进程太多
  • 网络层IP协议的配套协议有哪些
  • Mont Choisy Beach, Mauritius (© Robert Harding World Imagery/Offset by Shutterstock)
  • 二手车销售发票的开具怎么处理?
  • php使用函数限制字符串长度和格式
  • 持有待售资产是流动还是非流动
  • 工商罚款怎么入账
  • 玩转ChatGPT:中科院ChatGPT Academic项目部署与测评
  • 立体匹配原理
  • imu模型
  • abap webservice
  • php中input的用法
  • 代收水电费交税吗
  • linux中login命令
  • 缴纳税款滞纳金怎么算
  • 住宿费可以抵扣进项吗
  • mysql innodb锁
  • SQL SERVER 2000通讯管道后复用劫持
  • 只有进项税需要结转吗
  • 出口退税三类企业影响
  • 规模以上企业纳税要求
  • 职工罚款的会计处理办法
  • 车辆购置税如何计算器
  • 退款产生的手续费怎么算
  • 一般纳税人增值税优惠政策2023
  • 工程内部承包合同
  • xp系统怎么连接电脑
  • xp系统桌面在c盘哪个位置
  • Windows Server 2008脱机文件配置攻略
  • windows自带的应用程序
  • linux dns1
  • win7自动关闭显示器
  • Win10无法获取ipv4
  • libproj.so
  • js内存释放
  • javascript解决了什么问题
  • js拖拽div
  • shell for循环执行命令
  • 播放一个灵异电影
  • python 类型检查
  • eclipse怎么连接derby数据库
  • 谈谈我对视觉传达的认识
  • 成品油和非成品油的税务知识
  • 支付宝申领失业金申请审核多久
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设