如何在SceneKit中创建软体

问题描述 投票:1回答:3

所以

[经过多年的iOS开发,我说是时候尝试为自己做一些小游戏了。现在,我选择使用Apple的SceneKit进行此操作,因为它看起来像提供了我需要的一切。

我的问题是,我偶然发现了一个大问题(对我来说),在Google上搜索并没有产生任何结果。

任何想法,例如,由于重力的作用,我如何使物体(该球体)变形。因此,基本上,它应该压倒在地面上。

或者,当它与柔软的沙滩球碰撞时,如何使其变形?

沿着这些思路的任何起点都会有所帮助。

我可以在这里发布我的代码,但是我担心它与我的问题无关,因为我真的不知道从哪里开始。

谢谢!

更新

[多读一些书后,我认为我想要的东西可以通过Vertex Shaders实现。这是一条正确的道路吗?

ios swift scenekit
3个回答
0
投票

SceneKit仅使用刚体进行物理。如果您想要变形,则必须自己动手。

这可能是因为SceneKit无法知道如何变形对象。如果只是压缩,应该沿一个方向压缩,然后向所有其他方向扩展以保留其体积,则仅模型的一部分压缩,其余部分保持刚性(例如汽车轮胎)。

您可以尝试等待冲突发生并执行以下操作

calculate and store the velocity after the bounce
disable collision checking on the object
run an animation for the "squash"
enable collision checking on the object
apply the calculated velocity

完全取决于您要使弹跳外观多么真实或卡通化。


0
投票

对于复杂的动画,通常最好使用Blender,Maya或Cheetah3D之类的3D建模工具来构建主体并构建动画。这些工具使您可以在更高的抽象层次上进行思考。然后,您可以将该模型导出为Collada(DAE)格式,然后将其导入SceneKit。

[https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Basic_Animation/Bounce有一个使用Blender构建变形的弹跳球的教程。


0
投票

检查此:https://www.youtube.com/watch?v=_onDvafjPl4这是一个移植的库,但在Swift中完成。我还没有充分了解它是否只有2d或3d能力。

© www.soinside.com 2019 - 2024. All rights reserved.