Neilyodog Blog

模拟光学瞄具

模拟光学瞄具的效果和思路

参考

  • cod16,有点假,境内阴影方向与众不同

文章配图

  • PUBG,还行,但能看到镜内壁

文章配图

  • 塔科夫,不错,比较接近期望效果 塔科夫gif

  • 真实瞄具

文章配图

文章配图

从末端看是这样的(凸透镜呈像原理)

文章配图

从视角端看是这样的,能看见很短的镜内距

文章配图

边沿有模糊效果(境内黑影)

文章配图

  • 准星

准星实现原理就是转到局部空间,然后向前推进,这边一定要用局部空间,世界空间旋转物体本身后准星位置就变了,不符合物理

上色部分

文章配图

红色部分其实可以算出来

(1-G通道)*R通道

然后可以这样给红色部分颜色

(1-step(红色部分,0.5))*Tint

所以其实可以直接用A通道当Mask来用,其他通道去掉这个

也就是说没有其他颜色来占用通道的话可以用RG两个通道

Alpha相当于B通道反转拿到的(Alpha图要有这个准星)

效果:

文章配图

贴图规则:

1.需要变色的部分是红色(255,0,0)

文章配图

2.需要变色的部分以白色要放在A通道

文章配图

保证图片在PS中没有下图的灰度值,不然准星颜色会溢出

文章配图

  • 遮罩

遮罩分为两部分,一部分是模拟近处的一部分是模拟出镜距的

近处直接就是UV平面做的(这个需要注意模型空间坐标系的轴向)

GIF2gif

另一部分是用fresnel,因为需要基于视角中心,所以用fresnel

然后两个和在一起就是这样

Unity22gif

文章配图

— END —