一个微微凸起的地面,如果UV是按照贴地映射的,那侧面肯定存在拉伸
好了我说的就是程序化地形
今天看到一个神奇的修法
怎么修,就分别投影到正面,顶面,侧面,然后插值
插值用什么
vec3 n = abs(normal);
n = n/(n.x+n.y+n.z);
vec3 color = texture(map, coord.yz * scale)*n.x+texture(map, coord.xz * scale)*n.y+texture(map, coord.xy * scale)*n.z;
这样沿着三面采样混合就能得到一个能看的结果
当然存在一些问题,首先就是采样翻三倍
参考
https://gamedevelopment.tutsplus.com/articles/use-tri-planar-texture-mapping-for-better-terrain–gamedev-13821