scenekit,如何弯曲物体
scenekit, how to bend an object
我是 3D 新手。
我有一个 SCNBox 直杆对象,在某个阶段我想弯曲它(带动画)。有什么办法可以做到这一点?还是我必须首先使用多个对象来模拟 SCNBox,然后移动和旋转这些对象来模拟弯曲?
您有多种选择,具体取决于您想要的效果。不过,我认为您无法仅用一个 SCNBox
来完成。
您可以在 Blender、Maya 或 Cheetah3D 等 3D 工具中设计对象。在该工具中创建一个动画,将模型导出为 Collada/DAE 格式,并在 SceneKit 中显示它。然后您可以按名称播放动画。
您也许还可以使用变形 API。那是 WWDC 2014 SceneKit sample code. The live session is Session 610.
的幻灯片 34
如果你想让你的棍子的末端接触到一个特定的点,反向运动学可以为你工作。这将涉及将 IK 构建到您的 Collada 文件中,或使用物理关节以编程方式构建对象。
None 这些方法是初学者级别的技术。
SCNBox
有一个 heightSegmentCount
属性 可以用来产生更多的顶点。
使用着色器修改器,您将能够弯曲立方体。这就是草叶在 Fox: Building a SceneKit Game with the Xcode Scene Editor. This can be done right in the SceneKit editor see (Enhancements to SceneKit(来自 WWDC 2015)或编程方式中的动画方式。
编辑:
这是 SCNShaderModifierEntryPointGeometry
入口点的修饰符:
float offset = _geometry.color.x * (sin(1.2 * u_time + (_geometry.position.x + _geometry.position.z) * 4.0) + 0.5) * 0.02;
_geometry.position.x += offset;
_geometry.color.xyz = vec3(1.0);
弯曲权重以顶点颜色(SCNGeometrySourceSemanticColor
,但您也可以使用纹理坐标)烘焙,稍后重置为 1.0
,这样它们就不会影响最终颜色几何学。
我是 3D 新手。
我有一个 SCNBox 直杆对象,在某个阶段我想弯曲它(带动画)。有什么办法可以做到这一点?还是我必须首先使用多个对象来模拟 SCNBox,然后移动和旋转这些对象来模拟弯曲?
您有多种选择,具体取决于您想要的效果。不过,我认为您无法仅用一个 SCNBox
来完成。
您可以在 Blender、Maya 或 Cheetah3D 等 3D 工具中设计对象。在该工具中创建一个动画,将模型导出为 Collada/DAE 格式,并在 SceneKit 中显示它。然后您可以按名称播放动画。
您也许还可以使用变形 API。那是 WWDC 2014 SceneKit sample code. The live session is Session 610.
的幻灯片 34如果你想让你的棍子的末端接触到一个特定的点,反向运动学可以为你工作。这将涉及将 IK 构建到您的 Collada 文件中,或使用物理关节以编程方式构建对象。
None 这些方法是初学者级别的技术。
SCNBox
有一个 heightSegmentCount
属性 可以用来产生更多的顶点。
使用着色器修改器,您将能够弯曲立方体。这就是草叶在 Fox: Building a SceneKit Game with the Xcode Scene Editor. This can be done right in the SceneKit editor see (Enhancements to SceneKit(来自 WWDC 2015)或编程方式中的动画方式。
编辑:
这是 SCNShaderModifierEntryPointGeometry
入口点的修饰符:
float offset = _geometry.color.x * (sin(1.2 * u_time + (_geometry.position.x + _geometry.position.z) * 4.0) + 0.5) * 0.02;
_geometry.position.x += offset;
_geometry.color.xyz = vec3(1.0);
弯曲权重以顶点颜色(SCNGeometrySourceSemanticColor
,但您也可以使用纹理坐标)烘焙,稍后重置为 1.0
,这样它们就不会影响最终颜色几何学。