【问题标题】:How to create a hole in the box in SceneKit?如何在 SceneKit 的框中创建一个洞?
【发布时间】:2016-06-04 18:41:56
【问题描述】:
我正在使用 SceneKit 为 Swift iOS 应用程序创建 3D 房间。
我正在使用多个盒子并将它们放在一起以创建房间的不同墙壁。我还想在需要在墙上开洞的房间中添加门窗。这看起来像一个非常常见的场景,但我找不到任何相关的答案。
我知道有多种方法可以做到 -
-
最简单的是,不要剪掉盒子。放置另一个带有门或墙壁纹理的盒子。
- 但我确实想在房间外保留一个光源,并希望它通过这些门窗流入房间
-
为单面墙创建多个盒子并将它们组合在一起以制作几何图形
-
创建自定义几何体。
- 感觉太复杂了,因为它需要我自己绘制每个三角形。不确定?
但我真正期待的是 -
- 从几何中减去几何?
- 已经在处理这些复杂性的库?
任何指针都会非常有帮助。
谢谢。
【问题讨论】:
标签:
ios
graphics
3d
scenekit
【解决方案1】:
场景套件提供了一些惊人的潜力,但它不能替代 3D 建模程序。如果您想要的不仅仅是在平面中使用基元进行组装和挤压,您应该考虑在专用的 3-D 包中构建模型并将模型作为 .dae 文件导出到 SceneKit。你可以看看 Blender。它是免费的,并且在网上很容易获得。我怀疑它可以很容易地做你想做的事,并且学习曲线将通过图形程序的高级功能而不是编码来补偿。
【解决方案2】:
我认为@bpedit 描述了最好的方法。
较弱的第二选择是使用 SCNShape 来构建您的几何体。这仍然给您留下了构建与您的墙壁布局/拓扑相匹配的贝塞尔路径的问题。这在短期内可能是一个有用的技巧,可以帮助您避免立即学习建模软件。但我预测您最终仍会转向使用 Blender、SketchUp、Cheetah 3D 或 Maya 等工具。