ios - 适用于 iPad 的交互式 3D 模型

标签 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,我看不出如何激活表面、边或顶点。

最佳答案

如果您想以简单的方式做到这一点,我建议您使用 SceneKit。您可以使用任何在线 3D 模型制作工具制作人体模型的每个部分,然后将每个部分导出为 .dae,并将其导入到 SceneKit 项目中。 SceneKit 项目中的默认代码已经实现了您想要的大部分功能,您只需修改它显示的 Assets (所有文件而不是 ship.dae),更改模型的位置以正确排列,并修改 handleTap 方法以在 if hitresults.count > 0 block 内的 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 方法以显示所选部分的信息。希望对您有所帮助:)

关于ios - 适用于 iPad 的交互式 3D 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227506/

相关文章:

ios - 从 AppCenter/HockeyApp 分发 Xamarin iOS 应用程序

ios - 我如何在 IOS/Swift 上保留登录 token

ios - 如何使用 Alamofire 重试请求?

ios - 在 Cloud Firestore 中存储自定义对象数组的正确方法?

math - 向我展示 webkitConvertPointFromPageToNode 的 Javascript 实现

java - 给定两个不同的 3D 点,查找一组特定的相邻点(不是全部)

ios - 以 640x480@60fps 快速拍摄视频

IOS UIActivityViewController

json - SWIFT 3 如何从本地主机 Web 服务连接 Json

java - LWJGL 改变顶点之间线条的颜色