ios - SceneKit - 纹理显示不正确

标签 ios swift textures offset scenekit

我有一个立方体(圆形),想在它的一侧显示纹理。我可以通过以下方式访问那一侧的 Material :

var tex1: SCNMaterial! = cube.geometry?.materialWithName("_1")!

然后我设置它的图片内容:

tex1.diffuse.contents = "cube1"

这看起来像这样:

cube with texture

这表明它确实有效,但白色部分不在中心 它应该是。 (我使用的图像中间有白色部分。)
我尝试使用偏移在表面上四处移动图像,我也想缩放它。我这样试过:

tex1.diffuse.contents.offset = SCNVector3Make(20, 0, 0)

这给了我错误:它说它不能分配那个表达式的结果。 (我也试过 contentMode,同样的错误,我想是因为这些是针对 UI,而不是 SCN)

问题

  1. 有人知道我能做什么吗?
  2. 也许抵消不是可行的方法?
  3. 如何缩放图像?

最佳答案

Material 属性的contents 类型是AnyObject,这意味着编译器将允许您调用其上的任何方法(在任何对象类型上定义)。这并不意味着所有方法或属性访问器实际上都是由您的特定 contents 中的实际类实现的。

Material 属性确实有 contentsTransform选项,虽然。你看过了吗?

关于ios - SceneKit - 纹理显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29780653/

相关文章:

ios - 使用 swift 和 parse 保持当前用户登录

ios - 如何使用 Metal 清除 GPU 纹理?

ios - 实现 tapjoy 分析代码后可达性代码中的应用程序崩溃

ios - 在 iPhone 上调试时出现错误 "The identity used to sign the executable is no longer valid."

iphone - xcode - SDK版本与用户iPhone OS版本的关系

ios - 我的打印语句都没有出现在 Xcode 控制台中

swift - 将选项卡 View 链接到它的文件

C# XNA 4.0 纹理在最小化时消失

opengl-es - OpenGL ES 2.0 绘制多个纹理

ios - UICollectionView - 删除所有项目或更新以刷新它