【问题标题】:How can i repeat a texture at its original scale on my cube in unity我怎样才能在我的立方体上以原始比例重复纹理
【发布时间】:2021-12-09 10:20:34
【问题描述】:

所以正如你在图片中看到的,我在一个矩形上重复了一个纹理(它的大小是 40、10、60),但它在每张脸上重复相同的时间,所以取决于脸的大小纹理被拉伸。 在图片中,您可以看到在顶面上纹理正确重复并保持其原始大小,但在其他面上它被拉伸。 有没有办法在不改变大小的情况下重复纹理? 感谢您的回复。

screen of the problem

编辑:c# 中的这个脚本正是我想要的,但有没有一种方法可以在没有脚本的情况下完成它,因为它是在 2017 年完成的? https://github.com/Dsphar/Cube_Texture_Auto_Repeat_Unity/blob/master/ReCalcCubeTexture.cs

【问题讨论】:

  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • 取决于你的着色器我猜...

标签: c# unity3d textures repeat stretch


【解决方案1】:

不幸的是,您可能需要使用“平铺”属性为每个不同比例创建具有相同图像的新材质:

*** 编辑 #1

x 和 y 平铺值需要与平面的比例成比例,否则会拉伸。

【讨论】:

【解决方案2】:

如果纹理网格的大小是静态的,您可以在 3d 程序中更改其 UV。您甚至可以通过脚本更改 UV。

另一种选择是查看世界空间(三平面)着色器。这些纹理基于世界位置而不是顶点的本地位置。

如果您使用的是 Shader Graph,请查看三平面节点。 https://docs.unity3d.com/Packages/com.unity.shadergraph@6.9/manual/Triplanar-Node.html

【讨论】:

  • 好的,谢谢!我是初学者,所以我真的不知道 UV 是什么,但我会试试这个
猜你喜欢
  • 1970-01-01
  • 2023-02-09
  • 2012-08-20
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2018-11-25
  • 2015-09-13
  • 1970-01-01
相关资源
最近更新 更多