gpt4 book ai didi

c# - UV 贴图墙的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-30 23:09:38 27 4
gpt4 key购买 nike

我目前正在开发一款 map 工具,可以为我的游戏生成自定义 map 。我的网格生成工作得很好,但我看不出如何正确地对我的脸进行 UV 贴图以使纹理保持一致。我已经通过使用相应的坐标对使 UV 贴图在地板上完美工作,但墙壁似乎工作不一样。

有人知道将 UV 贴图映射到垂直墙的正确方法吗?

以下是我当前使用的墙的一些示例: enter image description here enter image description here

我目前正在将其用于墙壁的 UV 映射

        currentMesh.uvs.Add(new Vector2(0, 0));
currentMesh.uvs.Add(new Vector2(1, 0));
currentMesh.uvs.Add(new Vector2(0, 1));
currentMesh.uvs.Add(new Vector2(1, 1));

最佳答案

对于这种情况,我会执行以下步骤:
1. 将纹理设为正方形(为了减少下面代码中的计算)。此外,使其无缝和环绕模式重复。
2. 像这样找出矩形的长和宽:

Length = (float)Vector3.Distance(mesh.vertices [0],mesh.vertices [1])
Width = (float)Vector3.Distance(mesh.vertices [0],mesh.vertices [3])

3.然后我使用这段代码制作 UV 贴图:

    Vector2[] uv = new Vector2[mesh.vertices.Length];
float min = Length>Width?Length:Width;
for (int i = 0, y = 0; i < uv.Length; i++){
uv [i] = new Vector2 ((float)mesh.vertices [i].z / min, (float)mesh.vertices [i].y / min);
}

这里,我取了.z.y,因为我的平面在yz平面。这段代码所做的是,找到矩形的小臂并根据它拟合纹理。
这是结果的屏幕截图: enter image description here

这是我使用的纹理:
enter image description here

我从这里学到的:
http://catlikecoding.com/unity/tutorials/procedural-grid/

关于c# - UV 贴图墙的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45705398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com