【问题标题】:SceneKit repeat textureSceneKit 重复纹理
【发布时间】:2022-04-08 03:20:08
【问题描述】:

由于某种原因,在 SCNBox 上使用以下材质会导致纹理被拉伸。知道我遗漏了什么吗?

material.diffuse.contents = [SKTexture textureWithImageNamed:@"arrowtexture.jpg"];
material.diffuse.wrapS = SCNWrapModeRepeat;
material.diffuse.wrapT = SCNWrapModeRepeat;

【问题讨论】:

  • SCNWrapModeRepeat 只会在您的纹理坐标超过 0 到 1 的范围内开始生效。假设您有一个盒子,并且它的一个面的纹理坐标为 0,0在一个角落和 10,10 在另一个角落。在这种情况下,您会看到您的纹理在盒子面上重复了 100 倍。为 SCNBox 协调的默认纹理在 0-1 范围内。 contentsTransform 属性可以让您更改这些默认纹理坐标。
  • 谢谢,这是我需要的一些信息,我想我在 Apple 文档中忽略了它:-)。

标签: objective-c scenekit


【解决方案1】:

你可以这样控制SKTexture的拉伸:

material.diffuse.contentsTransform = SCNMatrix4MakeScale(3, 1, 1);

【讨论】:

  • 但为什么是 3?
  • 例如3,用于x轴压缩。
  • :-) 我在想这是一个神奇的数字。
猜你喜欢
  • 2016-09-05
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2016-09-28
  • 2017-08-04
  • 2018-02-08
  • 2018-03-24
相关资源
最近更新 更多