预览
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082510185897.png)
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082510175487.png)
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082510214669.png)
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082510225246.png)
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082510225581.png)
正文
正常地形Tiling会使相同的图案重复出现,带来严重的重复感。本篇改善地表重复感的实现来自Unity官方的Paper《Practical Real-Time Hex-Tiling》,官方提供的Demo是C++写的,我改写进了URP中,代码放在了最后。
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082502290937.png)
本篇Paper实现思路很简单。正常Tiling使用的是四边形的平铺。改为使用六边形平铺,随后在六边形内应用随机旋转。生成六边形的过程中会划分三种重复区域,随后插值计算并应用这些区域的权重值。
Mask:
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082503005589.png)
不同的R值可以带来不同的对比度和边界羽化程度:
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082503023119.png)
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](https://tajourney.games/wp-content/uploads/2023/08/2023082503031179.png)
根据官方的建议,R值在(0.65,0.75)之间比较合适。
最终效果:
![URP HexTiling 解决地表Tiling重复感-计算机图形学技术学习](http://tajourney.games/wp-content/uploads/2023/08/2023082503491220.gif)
Github链接
https://github.com/Nuomi-Chobits/Unity-URP-HexTiling
如何使用
演示demo提供了三种不同的R值选项和权重值Mask用以Debug。
如何使用可以参考HexTilingTest.shader,其中有样例。