如何在Scenekit中将文本放置在节点上?

4

有一个非常简单的问题,但是我却找不到答案。如何在SCNNode的3D面上书写2D文本? 例如,在这种情况下:

let geo = SCNBox(width: 20, height: 20, length: 20, chamferRadius: 0.0);
//geo.writeFace(postion, text)
let box = SCNNode(geometry: geo);

当然,这个评论是虚构的。有类似的内容吗?
1个回答

6
您需要创建所需字体和文本的纹理,然后将其应用为对象材质的一部分。虽然我没有在Scene Kit中看到像UVW映射这样的东西来控制布局。但它必须存在。如果您只使用SCN几何体,则可能可以,因为SCNBox至少允许针对材料/纹理进行每个面的指定。
您可以使用UIKit文字绘制到上下文中动态地创建2D类型纹理,或使用textureToNode拉斯特化Sprite Kit文字: https://developer.apple.com/reference/spritekit/skview/1520114-texturefromnode?language=objc

这似乎相当低效...我猜那是唯一的选择?奇怪。 - harry lakins
SceneKit 是一种意向的表现,我认为。有点像一个早期的 alpha 版本正在向某个方向前进,但这完全取决于 Apple 是否给予团队足够的资金、资源和时间来使其易于使用和愉悦。现在它还很不完整、未经测试、没有证明和不愉快,它唯一的真正好处就是极快的构建时间。创建一个 Mac 项目,几乎立即启动。对于我探索设计想法的迭代风格来说,这使它对我有价值。不确定是否会超越这种基本的迭代探索并制作出什么东西。 - Confused
4
使用SceneKit有一个注意事项:几乎没有用户群体,因此也没有社区,并且Apple没有提供任何有关使用它的方法。例如,Phaser(http://phaser.io/examples)有超过500个小演示,展示了如何以及为什么要按建议的方式执行任务。一个人完成了大部分工作。苹果不对SpriteKit和SceneKit进行这种类型的支持,这很令人恼火并且不祥。 - Confused
2
@harrylakins,如果你已经弄清楚了,请发布一个解决方案,好让我们也能学习一下。 - Dan Beaulieu
1
嗨-最终我使用了SCNText,将其变平,并手动将其定位在面部-结果比我想象的要好! - harry lakins
显示剩余10条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接