iPad的交互式3D模型

时间:2015-01-30 00:56:50

标签: ios swift 3d scenekit metal

与此问题类似

Interactive 3D model without WebGL for iOS

我不想沿着webview / javascript路径前进。

我想要这样的东西

http://appserv.kfshrc.edu.sa/Default/Health/Anantomy.aspx

在用Swift编写的原生Metal或Scenekit中。

我搜索了github,但没有遇到任何问题。

这甚至可能吗?通过SDK阅读,我看不到如何激活表面,边缘或顶点。

1 个答案:

答案 0 :(得分:3)

如果你想以简单的方式做到这一点,我建议使用SceneKit。您可以使用任何在线3D模型制作者制作人体模型的每个部分,然后将每个部分导出为.dae,并将其导入到SceneKit项目中。 SceneKit项目中的默认代码已经实现了您想要的大多数功能,您只需修改它显示的资产(所有文件而不是ship.dae),更改模型的位置以正确排列,并修改handleTap方法,在已存在的代码之后,在if hitresults.count > 0块内的HUD UI中显示文本。基本上你可以修改代码块看起来像:

if hitResults.count > 0 {
            // retrieved the first clicked object
            let result: AnyObject! = hitResults[0]

            // get its material
            let material = result.node!.geometry!.firstMaterial!

            // highlight it
            SCNTransaction.begin()
            SCNTransaction.setAnimationDuration(0.5)

            // on completion - unhighlight
            SCNTransaction.setCompletionBlock {
                SCNTransaction.begin()
                SCNTransaction.setAnimationDuration(0.5)

                material.emission.contents = UIColor.blackColor()

                SCNTransaction.commit()
            }

            material.emission.contents = UIColor.redColor()

            SCNTransaction.commit()
            //this is where your custom code for handling a touch on an object goes. The variable "result" is the object that was tapped
            self.myLabel.text = "Something Was Tapped"
        }

基本上:1。制作模型2.将模型放入程序中(使用默认项目用于加载船舶的代码)3。修改handleTap方法以显示所选部分的信息。希望它有所帮助:)