第十三節 - 粒子系統
粒子系統
百度百科:
粒子系統表示三維計算機圖形學中模擬一些特定的模糊現象的技術,而這些現象用其它傳統的渲染技術難以實現的真實感的 game physics。經常使用粒子系統模擬的現象有火、爆炸、煙、水流、火花、落葉、雲、霧、雪、塵、流星尾跡或者象發光軌跡這樣的抽象視覺效果等等。
SceneKit 給我們提供了那些粒子系統呢?下面先來展示一下
1.fire(?)
![8541184-2df0d1fa1dd13276.png](https://i.iter01.com/images/6ca7a0ab74fd19a67c94abcc7d11308a7970fe82a5034f5040a0799d4d76e68c.jpg)
讓學習成為一種習慣
2.confetti(五彩紙屑)
![8541184-37efa33b952ec90f.png](https://i.iter01.com/images/ac7b1dcf0e754a36cb688aa0d5bb39f003ed5ac5f7bbc57f85707c87597fb044.jpg)
讓學習成為一種習慣
3.bokeh(散景)
![8541184-d957b29c8df3ea53.png](https://i.iter01.com/images/9618feac635b288f28840f2fe91c328631f310f451e228243e38b32e2669dfb3.jpg)
讓學習成為一種習慣
4.Rain(下雨)
![8541184-72b72bb82d8c1782.png](https://i.iter01.com/images/90a7861e7112dc0dec1bce76b797e818639be3beb0c7d664c66c87621cc0514c.jpg)
下雨了,心瞬間就靜下來了
5.Reactor(反應堆)
![8541184-c6c5d29724f2e580.png](https://i.iter01.com/images/7f4527c9c05ac190856b6852306bb9022018c8d29b36346b5a43173758bb3329.jpg)
讓學習成為一種習慣
6.Smoke(煙)
![8541184-aa21a22bc4ea9399.png](https://i.iter01.com/images/d2eca5cb32b7b4eb024138d221ac065377ddb58e2101852672d6b9b020f504a2.jpg)
讓學習成為一種習慣
7.Star(✨)
![8541184-79371c77def1c7ae.png](https://i.iter01.com/images/177cfc8e1e3c204a3f819c46219673892f32f6b3b828d1387a74dfd9645e0827.jpg)
讓學習成為一種習慣
以上就是SceneKit 框架中提供給我們的幾種粒子系統,下面我做個簡單的例子幫助大家學習如何簡單的使用粒子系統。
走進程式碼的世界
第一步.建立工程就不演示了。
第二步.建立SCNView檢視新增到View中去
SCNView *scnView = [[SCNView alloc]initWithFrame:self.view.bounds];
scnView.backgroundColor = [UIColor blackColor];
scnView.scene = [SCNScene scene];
scnView.allowsCameraControl = TRUE;
[self.view addSubview:scnView];
第三步.建立攝像頭
SCNCamera *camera = [SCNCamera camera];
SCNNode *cameraNode = [SCNNode node];
cameraNode.camera = camera;
camera.automaticallyAdjustsZRange = TRUE;
cameraNode.position = SCNVector3Make(0, 0, 50);
[scnView.scene.rootNode addChildNode:cameraNode];
第四步.新增一個四方體
SCNBox *box = [SCNBox boxWithWidth:10 height:10 length:10 chamferRadius:0];
box.firstMaterial.diffuse.contents = @"1.PNG";
SCNNode *boxNode = [SCNNode nodeWithGeometry:box];
boxNode.position = SCNVector3Make(0, 10, -100);
[scnView.scene.rootNode addChildNode:boxNode];
第五步.建立一個粒子系統檔案
![8541184-5b63c05c8c22ffa5.png](https://i.iter01.com/images/c24f35ab857cf70d84611b232b5cc2b79717ba048b42ab32e53076c445671427.jpg)
讓學習變成一種習慣
![8541184-f8ce652c3e926b4d.png](https://i.iter01.com/images/ecd08509e5b700b9e739bbaaec460a1729446db3f72d8e75a52140e30d039525.jpg)
讓學習變成一種習慣
第六步.如何把粒子新增到剛才建立的四方體上呢?
// 1.建立粒子系統物件
SCNParticleSystem *particleSystem = [SCNParticleSystem particleSystemNamed:@"fire.scnp" inDirectory:nil];
// 2.建立一個節點新增粒子系統
SCNNode *node = [SCNNode node];
[node addParticleSystem:particleSystem];
node.position = SCNVector3Make(0, -1, 0);
// 3.將粒子系統節點設定為四方體的子節點
[boxNode addChildNode:node];
完成之一步,今天我們的內容就結束了,是不是很簡單!
執行結果:
![8541184-6b737e22341a525a.gif](https://i.iter01.com/images/2e1503d542449498af18fb3b8c82f13486cdecbd17ee6429b2fc90f426a5dcda.gif)
學習是一件很好玩的事情
總結
粒子系統是我們在遊戲中特別重要的一塊內容,相對內容也比較多,我們本節就簡單的介紹到這裡,更多高階幹活我們後續講解。
相關文章
- Three.js開發指南(7):粒子和粒子系統JS
- OpenGL Shader例項,OpenGL 粒子系統
- AE 3D粒子系統外掛3D
- DirectX11 With Windows SDK--35 粒子系統Windows
- Three.js進階篇之5 - 粒子系統JS
- 數字人粒子系統學習筆記之一筆記
- 【freertos】007-系統節拍和系統延時管理實現細節
- 【資料庫系統】資料庫系統概論====第十三章 資料庫技術發展資料庫
- 抽獎系統細節玩法
- Babylon.js 3.3釋出:更強大的粒子系統和WebVR支援JSWebVR
- AE 3D粒子系統外掛:Trapcode Particular啟用最新版3D
- Trapcode Particular for Mac註冊啟用版(AE 3D粒子系統外掛)Mac3D
- 粒子效果
- Android粒子篇之文字的粒子化運動Android
- WebGL three.js學習筆記 使用粒子系統模擬時空隧道(蟲洞)WebJS筆記
- [每日一題] 第十三題:連結串列中倒數第k個節點每日一題
- Java 和作業系統互動細節Java作業系統
- Java和作業系統互動細節Java作業系統
- Unity 2018.2之粒子Unity
- 第十三天
- 傳統節日—中秋節
- 第十三屆公益節北京舉辦 傳遞新時代公益生機與活力
- COP4600 檔案系統實現細節
- 如何把控遊戲系統開放節奏?遊戲
- 關於雲控系統的各種細節
- ADAMoracle部署全球節點網路率先推出廣域節點報價系統Oracle
- 能源線上監測系統開發方案,工廠節能減排系統搭建
- CAEmitterLayer粒子發射器MIT
- 學習 PixiJS — 粒子效果JS
- iOS 粒子發射效果iOS
- 第十三週週二
- 第十三天日報
- [第十三篇]——Docker ComposeDocker
- 如何初步掌控遊戲系統引導及節奏遊戲
- 聊城能源管理系統開發能耗分析監測節能決策系統開發
- 第十三屆廈門國際動漫節明日啟幕 共赴“鷺島動漫之約”
- 詳談分散式系統快取的設計細節分散式快取
- windows10系統下如何調節工作列字型大小Windows
- Java 與底層作業系統的互動細節Java作業系統