SceneKit是一個(gè)高性能的渲染游戲引擎,它能夠?qū)?D模型文件用簡(jiǎn)單的方式渲染出來,不像Metal或OpenGL需要開發(fā)者自己寫算法實(shí)現(xiàn)渲染3D文件的渲染功能,雖然他的底層也是Metal和OpenGL。
基本用法:
1、導(dǎo)入SceneKit框架
#import <SceneKit/SceneKit.h>
2、創(chuàng)建展示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、創(chuàng)建一個(gè)3D場(chǎng)景
//外部導(dǎo)入的模型可直接使用.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、創(chuàng)建一個(gè)節(jié)點(diǎn)用來放置光源
SCNNode *lightNode = [SCNNode node];
lightNode.light = [SCNLight light];
lightNode.light.type = SCNLightTypeOmni;
lightNode.position = SCNVector3Make(0, 0, 100);
[scene.rootNode addChildNode:lightNode];
5、創(chuàng)建一個(gè)節(jié)點(diǎn)用來放置照相機(jī)
SCNNode *cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
cameraNode.camera.automaticallyAdjustsZRange = true;
cameraNode.camera.zFar = 400;//視距
[scene.rootNode addChildNode:cameraNode];
當(dāng)然,也可以用SCNNode來綁定一個(gè)幾何形狀,SceneKit中的基本操作都是對(duì)節(jié)點(diǎn)進(jìn)行操作。
因?yàn)槟阍O(shè)置了scnView的allowsCameraControl為YES,所以,你就可對(duì)這個(gè)模型進(jìn)行旋轉(zhuǎn)看其整體3D效果,并查看細(xì)節(jié)特征。
所以通過以上幾步就可以展示出3D模型到手機(jī)界面上。如下圖:
以下demo不單是展示3D模型,還對(duì)模型進(jìn)行了簡(jiǎn)單的換裝操作和骨骼動(dòng)畫。
展示3D模型demo地址
對(duì)3D模型加動(dòng)畫demo地址
有幫助記得給顆??哦。

9EB51F64-ECD9-4DEF-A9B2-877392F4FAFF.png

FE605468-38ED-45DE-8D0E-0E35D5F74349.png