位置: 编程技术 - 正文

unity3d Hair real time rendering 真实头发实时渲染

编辑:rootadmin

推荐整理分享unity3d Hair real time rendering 真实头发实时渲染,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

先放上效果

惊现塞拉酱

算法是Weta Digital根据siggraph的论文加以改进,改进之前使用的是Kajiya and Kay’s 模型,它能量不守恒,也就是说不是基于物理的,不准确 电镜下真实头发丝纤维的照片,我们发现上面有很多重叠的角质层叫做毛小皮也叫毛鳞片,他们相对根部的倾斜角度大约为3°,近&#;模型如下图 头发纤维的模型R为反射(reflection),T为穿透(transmission),也就是折射这里假设光有三种传播方式R, TT, TRTR是直接反射,TT是经过两次折射TRT是穿透(折射)进头发内部,在头发内部进行反射,在穿透(折射)出,详细如图 人头发纤维主要由两部分组成:表皮与皮质。表皮作为外鞘保护内部皮质层,在光散射方面表皮很重要,因为他是折射的边缘,头发核心部有颜色的东西叫做髓质,在皮质与髓质中的色素决定了头发的颜色,我们研究头发的光学属性有两种要素:1.折射参数η(大约为1.)2.横截面的吸收率σa 几何图如上图,头发方向从根部到尖部,我们假定u是头发的tan&#;,向量v和w是一个右手标准正交基,光线入射方向为ωi,散射出的光的方向为ωr,角度分别为θi,θr(0°垂直于头发,u为°)。围绕着头发的方位角表示为φi和φr(v为0°w为&#;°),差角(θi-θr)/2表示为θd相关方位角为(φr-φi)/2表示为φd。φr-φi表示为φ。平均&#;θh = (θi&#;θr)/2为半角。头发的吸光性主要取决于真黑色素(eumelanin)和伪黑色素(pheomelanin),他们的浓度我们分别定义为ρe和ρp,他们的吸收率分别为σa,e和σa,p,光谱吸收率为μa = ρeσa,e &#; ρpσa,p。光线离开头发前变化(折射,反射)次数为p。p ∈ {R = 0, TT = 1, TRT = 2, TRRT = 3, ...}总反射函数S是所有的纵向散射(longitudinal scattering)函数Mp 和方位角散射函数Np之积的和 我们的最终目标就是把0-3的p所有的S相加,也就是R, TT, TRT , TRRT所有光线之和。纵向散射(longitudinal scattering)接下来是高斯Mp纵向散射(longitudinal scattering)函数的求法。在头发是完美圆弧的光滑表面的情况下θr = −θi,如图所示 在光滑的表面反射,形成一个单一的锥形(左图)。因为表面粗糙,Mp模拟了一个没有高光的表面,这种像锥形一样的散射会被缩放,更偏向于法平面(右图)。光散射范围更宽,能量也随之减少。因为表面粗糙而不能产生完美反射的高光,Marschner使用了半角的高斯函数来求Mp

G函数是一个以纵向倾角θ为参数的标准高斯函数,β是粗糙程度(在纵向的光滑锥形上的标准偏差角),αp是皮质层倾角的一个简单函数。但是求得的Mp能量不守恒,有如下原因1. g函数中的θ ∈ {−∞,∞},但是θh ∈{−π/2,π/2}。使用θh代替θ会使反射能量增倍。2. 当θi = −θr时,从锥形高光偏光−θi到θr涉及到缩放锥形。在Marschner中只有大约1/cos ²θd3. 偏转光照角度移动了相当大的能量导致成角大于θ ∈{−π/2,π/2}(角过大,永远不会接收到,导致能量损失)我们使用一种能量守恒的Mp这种方法在球形重新分配反射角度,使用球形高斯卷积(spherical- Gaussian convolution)得到 G经过一系列的变形化简得到最终的Mp:

在这里v = β²是粗糙度的平方I0函数为第一类贝塞尔函数 得到的能量守恒的纵向散射曲线如下 锥形高光是不对称的,off-specular peak近&#;于二维BRDF所有粗糙度是能量守恒的 方位角散射(Azimuthal Scattering)接下来计算方位角散射(Azimuthal Scattering)NpMarschner利用在发丝是光滑圆情况下的Bravais特性,研究在发丝纤维内部的方位角散射。修正折射指数η’ 方位角改变方向Φ与在发丝中的偏移h ∈ {−1,1}和p&#;有关,反射模式为: γi = arcsin(h) , γt = arcsin(h/η’ ) 由于h不可求,所以我们采用另一种可以模拟h的方法Marschner使用立方近&#;来模拟h,但是尚未验证其准确性,当p&#;较大或反射指数较低时(头发在水中)粗糙度方位角散射(Roughened Azimuthal Scattering)函数Np我们用高斯分布模拟一个变形法平面表面粗糙度的效果。在发丝纤维中的每一个偏移h 产生了一个方位角的连续的分布Dp(φ−Φ(p,h)),这个分布是由φ中的高斯和光滑头发中的离散方位角Φ(p,h)产生的。如下图所示: 粗糙离散角散射(TT):在光滑发丝上的偏移h能产生确定的方位角Φ(p,h),可以求出方位角的高斯分布Dp(φ−Φ(p,h))。全部的出射光线集成在一起:unity3d Hair real time rendering  真实头发实时渲染

A(p,h)是光线吸收和菲涅尔产生的衰减。我们使用一个新的标准高速分布函数Dp称之为Gaussian detector

到此我们所有公式全部完事,我们可以用for循环累加不同p&#;的S得到最终结果经过论文中的测量σa,e = {0.,0.,1.}σa,p ={0.,0.4,1.}得到结果相对真实。上图论文中的实现结果 博主目前能力不够不能在Unity中弄出这样的头发(感觉他这个头发像是曲面细分生成的),只能用个好一点的模型来凑数了:本文为部分翻译的加上博主自身的理解与实现,如有不正确的地方欢迎批评指正

参考:

1. An Energy-Conserving Hair Reflectance Model

2. Light Scattering from Human Hair Fibers

-----by wolf

unity中简单的角色移动控制 有关角色移动的方法有很多,最近用了一些,便将最近有用到的方法总结一下。1.transfrom.translate(transfrom.forword,space.word);//相对于世界坐标向前移动,移动

[置顶] Unity-->实现物体的移动 单例usingUnityEngine;usingSystem.Collections;publicclassIsRun{privatestaticreadonlyIsRuntf=newIsRun();privateIsRun(){}publicboolSirun=false;publicvoidisrun(){Sirun=!Sirun;}publicstaticIsRunft(){retu

【Unity】技巧集合 转发,请保持地址:

标签: unity3d Hair real time rendering 真实头发实时渲染

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

上一篇:Unity3D添加字体(unity怎么创建字体)

下一篇:unity中简单的角色移动控制(unity 求角度)

  • 6.72的税率是怎么算的
  • 国税登记号和地税登记号是什么
  • 工程施工的材料购进计入哪里
  • 教育行业税收优势分析
  • 小规模附加税是多少
  • 个体户4年不注销的后果消
  • 民非企业增值税减免账务处理
  • 票面3个点的增值税发票是交几个点的税金
  • 已认证未抵扣什么意思
  • 建筑施工企业检查的内容包括什么
  • 公司将固定资产卖出,要交什么税
  • 委托代销收取手续费账务处理
  • 出口退税对企业利润的影响
  • 未开票收入怎么做账
  • 代驾公司增值税怎么交
  • 筹建期间职工福利费都要通过应付职工薪酬核算吗
  • 资产负债表中资产总计和负债所有者权益不平等
  • 工商年报员工人数怎么算
  • 车船税征税范围包括火车吗
  • 已抵扣未认证的发票
  • 返修产品如何账务处理
  • 营业收入存入银行分录
  • 公司前期花费怎么记啊
  • 个人车辆租给公司有什么后果
  • 车辆维修费可以抵扣进项吗
  • iis配置mime
  • win7为什么还有人用
  • 销售返利如何做账
  • 安博塞利国家公园狮子
  • 结转所得税费用到本年利润的会计分录
  • 人民币账户购汇支付
  • vue for循环遍历对象取值
  • 稿酬所得的个税怎么计算
  • yii2项目实战之restful api授权验证详解
  • 普通发票有抵扣联没
  • 程序员神器
  • IndexError: invalid index of a 0-dim tensor. Use `tensor.item()` in Python
  • audit install success
  • 保税进料加工企业
  • 交易性金融资产入账价值怎么计算
  • 公司资金转到法人帐户
  • 固定资产租赁费属于什么费用
  • 增值税的滞纳金税率
  • 无形资产商标设计图片
  • day14-HTTP01
  • curl抓包
  • 卷票要盖发票专用章吗?
  • 财务报表没申报怎么操作呢
  • 印花税减免计入什么科目
  • 低值易耗品可以报废吗
  • 财务费用包含了利息费用吗
  • 没有发票可以先付款吗
  • 收到服务费发票可以计入什么科目
  • 纳税申报表多缴了怎么办
  • 开的发票超过了限额会怎样,怎么办?
  • 通讯费计入哪个科目
  • 采购返利是什么意思
  • 当月支付当月租金需要计提吗
  • 咨询服务行业的收入与成本
  • 公司卖掉软件计提折旧吗
  • 财务人员的职工福利费应计入?
  • 注册公司可以代办吗法人需要到场吗?
  • sqlserver升级到2016
  • mysql5.7慢查询
  • 如何调整bios
  • win10连无线网络受限
  • ipcservice.dll是什么?
  • win8怎么启动资源管理器
  • win7删除文件
  • opengl csdn
  • 3d引擎开发
  • webpack使用ejs
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • Python实现Mysql数据库连接池实例详解
  • 教大家使用灭火器
  • 电子税务局用户名和密码是什么
  • 城镇土地使用税按月还是按年交
  • 代理记账公司自查自纠情况报告范文
  • 企业所得税忘记交了怎么办
  • 地税局上班时间是几点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设