UE4 材质学习笔记05(凹凸偏移和视差映射/扭曲着色器)

一.凹凸偏移和视差映射

1.偏移映射

这需要一个高度图并且它的分辨率很低,只有256*256,事实上,如果高度图的分辨率比较低并且有点模糊,效果反而会更好

然后将高度图输出到BumpOffset节点的height插槽中, 之后利用得到的UV进行贴图采样。现在移动摄像机的时候有一些视差移动,表面看起来不是平的,纹理坐标正在根据我的视角在移动。

下面是分别使用两种方法效果的对比,后者看起来更有起伏感

2.视差遮挡映射

这个方法更加消耗性能,但是效果也更好。

这里的Texture Obkect这个节点是告诉它我想用什么纹理,但是并没有采样,而Texxture Sample节点是对这个纹理进行了采样。因为纹理采样实际上在ParallaxOcclusionMapping节点中发生了多次,所以选择用Texture object。事实上它会在场景中进行光追,并且测算光线会碰到物体的什么位置,并且进行多个光线采样用于计算表面的最佳形状。HeighrMapChannel 表示用纹理的哪个通道,因为这是灰度图,所以哪个通道并不重要,给的值是R通道HigRatio表示突起的高度离表面有多远,另外minsteps和maxsteps分别决定了我竖直向下看和水平看的采样次数。HIghRatio越大应该给更多的采样次数来保证形状的完好。采样越多就会越消耗性能,但总的来说这非常节省性能了。

、即使视角很低也可以看到明显的凹凸效果

相关推荐
zhuyixiangyyds17 分钟前
day21和day22学习Pandas库
笔记·学习·pandas
每次的天空19 分钟前
Android学习总结之算法篇四(字符串)
android·学习·算法
背影疾风1 小时前
C++学习之路:指针基础
c++·学习
苏克贝塔2 小时前
CMake学习--Window下VSCode 中 CMake C++ 代码调试操作方法
c++·vscode·学习
odoo中国3 小时前
深度学习 Deep Learning 第15章 表示学习
人工智能·深度学习·学习·表示学习
电星托马斯3 小时前
C++中顺序容器vector、list和deque的使用方法
linux·c语言·c++·windows·笔记·学习·程序人生
清晨朝暮3 小时前
【算法学习计划】贪心算法(下)
学习
yanxy5125 小时前
【TS学习】(18)分发逆变推断
前端·学习·typescript
Hellyc5 小时前
SpringMVC响应数据:页面跳转与回写数据
java·前端·学习
Qian_ShouYi5 小时前
MATLAB 代码学习
学习·算法·matlab