首页 > 解决方案 > SceneKit:变换纹理以仅填充球体的一部分

问题描述

我正在开发一个使用 SceneKit API 的应用程序,我遇到的问题是我基本上无法将纹理应用于球体对象并保持纹理的预定义大小。我可以将纹理放大到对象的表面(默认 SceneKit 的行为)或重复它。但是我想要实现的和台球类似:

在此处输入图像描述

假设我有一个白色圆圈的 .png 图像,中间有数字“13”。我想把它像照片上的那样。一般来说,我希望它被放大到一个固定的大小,而不是整个表面。

我使用material.diffuse.contents属性SCNGeometry来设置纹理,我contentsTransform在文档中找到了可能可以帮助我整理它的属性,但我没有找到如何将它与球体对象一起使用的解释。

纯SceneKit可以做到吗?任何帮助将不胜感激。

标签: iosswiftscenekit

解决方案


您需要一个初步建模的几何体(在您的情况下为多边形球体)及其UV Mapped texture在 3D 建模软件(例如 Autodesk Maya)中制作的。

观看这部短片,了解如何获得 UV 贴图纹理。


推荐阅读