粒子系統(tǒng)
百度百科:
粒子系統(tǒng)表示三維計算機圖形學(xué)中模擬一些特定的模糊現(xiàn)象的技術(shù)散罕,而這些現(xiàn)象用其它傳統(tǒng)的渲染技術(shù)難以實現(xiàn)的真實感的 game physics。經(jīng)常使用粒子系統(tǒng)模擬的現(xiàn)象有火状您、爆炸勒叠、煙、水流膏孟、火花眯分、落葉、云柒桑、霧弊决、雪、塵魁淳、流星尾跡或者象發(fā)光軌跡這樣的抽象視覺效果等等飘诗。
SceneKit 給我們提供了那些粒子系統(tǒng)呢?下面先來展示一下
1.fire(??)
2.confetti(五彩紙屑)
3.bokeh(散景)
4.Rain(下雨)
5.Reactor(反應(yīng)堆)
6.Smoke(煙)
7.Star(?)
以上就是SceneKit 框架中提供給我們的幾種粒子系統(tǒng),下面我做個簡單的例子幫助大家學(xué)習(xí)如何簡單的使用粒子系統(tǒng)。
走進代碼的世界
第一步.創(chuàng)建工程就不演示了界逛。
第二步.創(chuàng)建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];
第三步.創(chuàng)建攝像頭
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];
第五步.創(chuàng)建一個粒子系統(tǒng)文件
第六步.如何把粒子添加到剛才創(chuàng)建的四方體上呢?
// 1.創(chuàng)建粒子系統(tǒng)對象
SCNParticleSystem *particleSystem = [SCNParticleSystem particleSystemNamed:@"fire.scnp" inDirectory:nil];
// 2.創(chuàng)建一個節(jié)點添加粒子系統(tǒng)
SCNNode *node = [SCNNode node];
[node addParticleSystem:particleSystem];
node.position = SCNVector3Make(0, -1, 0);
// 3.將粒子系統(tǒng)節(jié)點設(shè)置為四方體的子節(jié)點
[boxNode addChildNode:node];
完成之一步昆稿,今天我們的內(nèi)容就結(jié)束了,是不是很簡單!
運行結(jié)果:
總結(jié)
粒子系統(tǒng)是我們在游戲中特別重要的一塊內(nèi)容,相對內(nèi)容也比較多,我們本節(jié)就簡單的介紹到這里,更多高級干活我們后續(xù)講解息拜。