在UE5中使用视差贴图

视差贴图是一项不用改动模型顶点,通过对相机向量进行计算、修改通过视差实现模型凹凸感的技术,通常运用于地面,配合法线贴图增强凹凸表现。

UE中封装了视差贴图节点ParallaxOcclusionMapping,可以很方便的制作出效果较好的视差效果。

(左 未开视差,右 开启POM视差)

1.视差贴图的类型

视差贴图实现及性能消耗方面从易到难,大致有几种类型:

  • 基本视差映射,对观察向量结合高度图,乘以一个系数进行拉伸,实现起来最简单,开销也最低。
  • 陡峭视差映射,通过多次循环迭代采样,可以实现遮蔽效果,但性能最差
  • 浮雕视差映射,多次循环迭代采样,但做了二分法优化,性能较差
  • POM视差遮蔽映射,UE中采用的方案,结合陡峭视差和浮雕视差,做了步进迭代优化,性能和画面适中的一种方案

2.视差实现

UE并没有将视差作为输出节点开放,而是通过计算视差的节点得到偏移后的UV等信息,节点如下:

简单起见,没有开启视差阴影。其中HeightRatio表示视差偏移量。MaxSteps设置较高会影响性能,一般设置32较合理。HeightmapTexture为传入高度图。

这里使用一张白色方块贴图,测试视差效果:

可见,是通过类似视觉偏移的方式,采样多次实现视差感。

最后,看一下视差节点得到的数值如何输出:


出处参考:https://www.bilibili.com/video/BV1Va4y1f7i5

相关推荐
py有趣1 小时前
LeetCode算法学习之两数之和 II - 输入有序数组
学习·算法·leetcode
BreezeJuvenile2 小时前
外设模块学习(15)——MQ-2烟雾气体传感器(STM32)
stm32·单片机·学习·mq-2·烟雾气体传感器
XH1.4 小时前
学习RT-thread(RT-thread定时器)
stm32·单片机·学习
2301_796512525 小时前
Rust编程学习 - 为什么说Cow 代表的是Copy-On-Write, 即“写时复制技术”,它是一种高效的 资源管理手段
java·学习·rust
故里21305 小时前
学习前端记录(二)21-40
学习
ThreeYear_s5 小时前
电力电子技术学习路径与FPGA/DSP技术结合方向(gemini生成)
学习·fpga开发
好奇龙猫6 小时前
【生活相关-日语-日本-入国&出国-海关&市役所(4)-办理手续】
学习·生活
sendnews6 小时前
红松小课如何成为激活老年人生活的新引擎?从兴趣学习到价值重塑!
学习·生活
The_Second_Coming6 小时前
ELK 学习笔记
笔记·学习·elk
wdfk_prog6 小时前
[Linux]学习笔记系列 -- [kernel][time]timekeeping
linux·笔记·学习