gpt4 book ai didi

java - 在模型上重复纹理

转载 作者:行者123 更新时间:2023-12-02 00:41:07 25 4
gpt4 key购买 nike

我正在创建一个小游戏,你在迷宫中。迷宫以二维数组组织,描述x和z位置以及 block 类型。所以它是基于图 block 的。假设每个 block 是1 m3。现在我的角色是 2m 高,迷宫应该是 4m 高。因此,如果该瓷砖上有墙,我会相互添加 4 个方 block 。当然,即使使用视锥体和背面剔除,这也会对 100 * 100 米/图 block 迷宫产生巨大的性能影响。由于这是我的第一个 3D 游戏,我希望保持简单,并且不想使用高级剔除技术(八叉树或其他技术:P)。因此,我尝试创建 1*4*1 block 而不是 1*1*1 并将它们作为 Walls 添加到我的世界中。它工作得很好,性能再次完美(60 FPS),但是纹理(64*64px)被拉伸(stretch),看起来真的很难看。

所以我的问题是:

  1. 是否可以每米重复纹理,而不是拉伸(stretch)吗?
  2. 或者我需要修改纹理才能拥有它 4 次一样高?
  3. 或者还有更好的解决方案吗?

编辑:我发现,Texture具有TextureWrap模式。我将其设置为 TextureWrap.Repeat,但我无法在 Texture 上设置 UV。如果您要从 Texture 创建 Sprite,您可以轻松地将它们设置为 4 以重复 Texture 4 次。但我无法将 Sprite 添加到我的 Model 中,只能添加 Texture 。有没有办法重复这些Texture

最佳答案

如果有人在使用 ModelBuilder.createRect 方法时更改 UV 时遇到问题,那么这可能会有所帮助:

...
Model rect = modelBuilder.createRect ...

Matrix3 mat = new Matrix3();
mat.scl(2);
rect.meshes.get(0).transformUV(mat);

instance = new ModelInstance(rect);
...

这样你就会得到 2x2 纹理重复。(我浪费了一些时间寻找这个解决方案。我用它来重复大地面上的草纹理)

关于java - 在模型上重复纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21908241/

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