我有一个纹理和一个网格,如果我在网格上应用纹理,它会像人们期望的那样连续地平铺它。每个图块的偏移量相等。
问题:
具有一些优秀元素的不可用纹理或纹理看起来重复且便宜。
示例:
解决方案尝试
我的第一次尝试是以编程方式生成网格的纹理大小,每个图块具有随机偏移。当然纹理的大小成了问题,更不用说单个纹理最大尺寸的GPU限制了。
我想做什么
我想知道是否有办法制作一个Unity着色器或一个可以加载单个纹理的材质,并为每个图块添加随机偏移量并只进行一次以保持高性能?
答案 0 :(得分:1)
你正在以错误的方式看待这个问题。所有游戏都面临这个问题。它们只是通过a)改变纹理而不是用相同的纹理纹理化大面积和b)通过关卡设计来隐藏它。想象一下,这架飞机上装满了谷仓,鹅肝,树木,栅栏等等 - 突然间,单层纹理表面与周围环境融为一体。摄像机角度也起着重要作用。尝试将相机位置改为靠近地面,重复纹理不太明显。
你的飞机只是一个非常极端的例子。你不应该试图解决它,而是继续建立你的游戏。或者设计你的纹理重复得很好而不显示清晰的图案。极端的是平坦的纹理。但一般来说,大型户外地形纹理的结构非常少,几乎就像噪音一样,而且它们不会使用任何对比度的颜色,只有相同颜色的阴影。
你的偏移想法不起作用。也许它可能在技术上有效(尽管可能效率低下)。但是随机偏移不能掩盖模式,而是会创建新模式,因为纹理不再在边缘平滑插值,因此您可以清楚地看到正方形网格。我想这将更加丑陋,更加引人注目。
最后,您可以增加纹理大小或比例(可能需要覆盖模糊度,如上所述)。相对于相机角度,这将是最简单,最有效的修复。或者至少是一种改进。
答案 1 :(得分:1)
基本上,具有一些优秀元素的不可用纹理和纹理是不同的问题。
有两种解决方法:
这可以通过以下方式(或它们的结合)来解决:
不幸的是,我无法想到这两个问题的任何情况(除了,可能是白色鼻子纹理)纹理坐标移位是一个解决方案。
答案 2 :(得分:1)
我相信您可以尝试Inigo Quilez(http://www.iquilezles.org/www/articles/texturerepetition/texturerepetition.htm)发明的一种技术。
答案 3 :(得分:0)
第二个选项是漫反射细节着色器。它将一个纹理贴近相机,另一个纹理靠近相机(可以使其更柔和/更模糊
)第三个选项......将2个纹理混合在一起,每个纹理具有不同的UV平铺比例(不可分割,例如不是比例2和4,但是使用1和2.334556),因此模式更难以看到