iOS使用SeneKit展示3D模型并改變其外觀

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • If you are asking questions in a forum that does not use ...
    吳黃龍本人閱讀 482評(píng)論 0 0
  • 其實(shí)這篇文章并不是我想要去寫的,只是因?yàn)槟硞€(gè)人觸及這個(gè)話題我才想來談?wù)勛约旱南敕ā? 我認(rèn)為感覺很重要,但是它卻...
    冷心moon閱讀 703評(píng)論 1 1
  • 南宮鸚鵡園。玩沙子,游樂場(chǎng),喂鸚鵡,老大高興,老二咿咿呀呀,興奮的不停的喊
    寫給ciciQ閱讀 384評(píng)論 0 0
  • 好久沒有如此靜下心來和自己對(duì)話了。本人,一位沒有故事的女同學(xué),大齡學(xué)生時(shí)間相對(duì)自由了許多,終于過上了之前一直所向往...
    記得Zhu閱讀 652評(píng)論 0 0
  • 最近特別的迷茫。4年辭職7次。也許是我自做自受好高騖遠(yuǎn)吧。過年了接到了去省會(huì)的面試通知,早上6點(diǎn)的火車。早起洗頭洗...
    仰望天空的樹_7df2閱讀 234評(píng)論 0 0

友情鏈接更多精彩內(nèi)容