主要是靠分层视差的方式 原理文档:https://learnopengl.com/Advanced-Lighting/Parallax-Mapping
主要参数:
HeightMap | 高度图 | ⚠️注意: 是纹理对象(TextureObject) 不是纹理采样(TextureSample) |
---|---|---|
HieghtRatio | 强度 | |
MinSteps MaxSteps |
最小分层步数 最大分层步数 |
步数也高,效果越好,但消耗越高 Tip: 如果步数低,可以让步数动态变换,抖动起来,也能达到很好的效果 |
UVs | 纹理采样 | |
HeightChannal | 高度图所在通道 | 给一个四维向量,高度图在哪个通道, 就把对应的四维向量设置为1 (其他为0) |
ReferencePlane | 参考平面 | 向上偏移还是向下偏移 |
解决步数低出现的层纹:Min-Max Steps
解决办法:
让步数抖动起来即可
像素深度偏移:Pixel Depth Offset
让像素偏移出来,表现实际的凹凸感
高级选项
灯光阴影:Shadow
需要导入一个灯光坐标(可以计算出还不错的软阴影) ⚠️注意:在4.26版本有个Bug需要处理,否则无法计算出阴影
贴图拉伸
贴图在偏移时会产生拉伸(可以解决贴图在偏移时的拉伸问题)