视差映射 Parallax Mapping

本文探讨视差映射技术如何与法线贴图结合,为物体表面增添细腻细节。介绍了三种实现方式:基本视差映射、陡峭视差映射和视差遮蔽映射,强调在切线空间进行计算的重要性,并讨论了提高精度的策略。
摘要由CSDN通过智能技术生成

这种技术和法线贴图结合使用,可以给物体表面增加惊人的细节,这边只谈实现上的注意点。

首先是最简单的一种,一般不会采用的那种,但用来理解最核心的思想是极好的。

(视差映射在实现时,通常采用的是深度图而非高度图,储存的信息是当前像素凹下去的程度)

如图所示,A点即是当前片元着色器正在处理的片元位置。如果不应用任何视差映射技术,则此时应该用A的uv值去相关贴图里采样。但,现在为了体现这个点的位置凹下去了,则我们实际应该用B点的uv去采样。

这就是视差映射要做的全部,根据A点的深度和相关已知的信息,求出B点的uv

最简单的方式,就是最直观的方式,直接在v的方向上以A为起点,用A点的深度值长度去偏移(采样到的深度值可以再除以z来根据视线和法线的夹角拉长这个值,这样可以避免一些奇怪的问题,但这不是重点),然后用p`的xy值当作uv的偏移值就能求出一个近似的结果,图中深红色的点。这个实现方式,很明显有很大的漏洞,只能在起伏比较平缓的表面才有好的效果。

在讲下一种实现方式前,还有一个问题要说明。为什么p`的xy值能当作uv偏移直接使用? 在世界坐标系下,这只在平面是平的时候有效,一但平面有所旋转,明显就是不对的。所以这些计算都需要在切线空间下进行,这样p`的xy永远和uv坐标轴对齐。(所以在顶点着色器中,你需要提前准备好所有在切线空间下的数据)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值