Chango的数学Shader世界(八)光盘模拟-各向异性,光栅衍射

目的:

参考《GPU Gems》,在UE4中尝试以重现光盘Shader,并对书中的方法进行解析,改进,批评。

参考:

《GPU Gems》

观察:

我越来越意识到观察现实的重要性。

相机和肉眼看到的衍射图案有差别,会多出一些彩虹,很可能是光盘衍射出来的光在相机上发生了类似衍射的现象。

大致的X型图案

有些角度形成的收缩圆弧和放射圆弧图案

分析:

显然与实际效果有差距,这里面有不少原因。我们从原理分析到实现。

简单说,此Shader由两部分组成:各向异性高光+光栅衍射

1.各向异性

这是个十分宽泛的词语,顾名思义。在图形学上通常指从不同方向看,颜色不一样。至于怎么不一样,随便。

所以下面采用什么样的公式,都无所谓,能看就行。

《GPU Gem》提供的公式:

hiliteColor*exp(-(k*\frac{T\cdot H}{N\cdot H})^{2})

其中

H=L+V

是的,不像光照模型中的H,这个向量没有除以2,也没有归一化。算咱们善于变通,接受你先。

注意:类似之前的改写,我改写了冗余部分,但公式本身不变。

其中hiliteColor不知道是哪国语言,我猜出来了,意思为背景色,即各向异性高光材质的底色。

看公式要从外向里看,我们接下来看到函数:

y=e^{^{-x^2}}

用Geogebra或者Mathematica画图,其图像为:

只要注意到其特征,也就是x越接近0,y越为1。也就是说,咱公式里面的自变量越为0,这个各向异性高光就越好。

再看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值