SceneKit是一个高性能的渲染游戏引擎,它能够将3D模型文件用简单的方式渲染出来,不像Metal或OpenGL需要开发者自己写算法实现渲染3D文件的渲染功能,虽然他的底层也是Metal和OpenGL。
基本用法:
1、导入SceneKit框架
#import <SceneKit/SceneKit.h>
2、创建展示3D专用的视图
SCView *scnView= [[SCNView alloc]initWithFrame:self.shoseView.bounds];
scnView.allowsCameraControl = YES;
scnView.showsStatistics = YES;
scnView.backgroundColor = MyColor(255, 236, 190);
[self.view addSubview:scnView];
3、创建一个3D场景
//外部导入的模型可直接使用.dae和.obj
SCNSceneSource *sceneSource = [SCNSceneSource sceneSourceWithURL:[[NSBundle mainBundle] URLForResource:@"vans-authentic-shoe-low-poly" withExtension:@".dae"] options:nil];
SCNScene *scene = [sceneSource sceneWithOptions:nil error:nil];
scnView.scene = scene;
4、创建一个节点用来放置光源
SCNNode *lightNode = [SCNNode node];
lightNode.light = [SCNLight light];
lightNode.light.type = SCNLightTypeOmni;
lightNode.position = SCNVector3Make(0, 0, 100);
[scene.rootNode addChildNode:lightNode];
5、创建一个节点用来放置照相机
SCNNode *cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
cameraNode.camera.automaticallyAdjustsZRange = true;
cameraNode.camera.zFar = 400;//视距
[scene.rootNode addChildNode:cameraNode];
当然,也可以用SCNNode来绑定一个几何形状,SceneKit中的基本操作都是对节点进行操作。
因为你设置了scnView的allowsCameraControl为YES,所以,你就可对这个模型进行旋转看其整体3D效果,并查看细节特征。
所以通过以上几步就可以展示出3D模型到手机界面上。如下图:
以下demo不单是展示3D模型,还对模型进行了简单的换装操作和骨骼动画。
展示3D模型demo地址
对3D模型加动画demo地址
有帮助记得给颗❤️哦。