前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SceneKit_入门11_粒子系统

SceneKit_入门11_粒子系统

作者头像
酷走天涯
发布2022-05-13 15:52:30
8160
发布2022-05-13 15:52:30
举报
文章被收录于专栏:每日一篇技术文章

SceneKit_入门01_旋转人物

SceneKit_入门02_如何创建工程

SceneKit_入门03_节点

SceneKit_入门04_灯光

SceneKit_入门05_照相机

SceneKit_入门06_行为动画

SceneKit_入门07_几何体

SceneKit_入门08_材质

SceneKit_入门09_物理身体

SceneKit_入门10_物理世界

SceneKit_入门11_粒子系统

SceneKit_入门12_物理行为

SceneKit_入门13_骨骼动画

SceneKit_中级01_模型之间的过渡动画

SceneKit_中级02_SCNView 详细讲解

SceneKit_中级03_切换照相机视角

SceneKit_中级04_约束的使用

SceneKit_中级05_力的使用

SceneKit_中级06_场景的切换

SceneKit_中级07_动态修改属性

SceneKit_中级08_阴影详解

SceneKit_中级09_碰撞检测

SceneKit_中级10_滤镜效果制作

SceneKit_中级11_动画事件

SceneKit_高级01_GLSL

SceneKit_高级02_粒子系统深入研究

SceneKit_高级03_自定义力

SceneKit_高级04_自定义场景过渡效果

SceneKit_高级05 检测手势点击到节点

SceneKit_高级06_加载顶点、纹理、法线坐标

SceneKit_高级07_SCNProgram用法探究

SceneKit_高级08_天空盒子制作

SceneKit_高级09_雾效果

SceneKit_大神01_掉落的文字

SceneKit_大神02_弹幕来袭

SceneKit_大神03_navigationbar上的3D文字

让学习成为一种习惯

粒子系统是什么?

百度百科:

粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。

SceneKit 给我们提供了那些粒子系统呢?下面先来展示一下

1.fire(🔥)

让学习成为一种习惯

2.confetti(五彩纸屑)

让学习成为一种习惯

3.bokeh(散景)

让学习成为一种习惯

4.Rain(下雨)

下雨了,心瞬间就静下来了

5.Reactor(反应堆)

让学习成为一种习惯

6.Smoke(烟)

让学习成为一种习惯

7.Star(✨)

让学习成为一种习惯

以上就是SceneKit 框架中提供给我们的几种粒子系统,下面我做个简单的例子帮助大家学习如何简单的使用粒子系统。

走进代码的世界
  • 创建工程就不演示了。
  • 创建SCNView视图添加到View中去
代码语言:javascript
复制
SCNView *scnView  = [[SCNView alloc]initWithFrame:self.view.bounds];
scnView.backgroundColor = [UIColor blackColor];
scnView.scene = [SCNScene scene];
scnView.allowsCameraControl = TRUE;
[self.view addSubview:scnView];
  • 创建摄像头
代码语言:javascript
复制
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];
  • 添加一个四方体
代码语言:javascript
复制
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];
  • 创建一个粒子系统文件

让学习变成一种习惯

让学习变成一种习惯

如何把粒子添加到刚才创建的四方体上呢?

代码语言:javascript
复制
 // 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];

完成之一步,今天我们的内容就结束了,是不是很简单!

运行结果:

学习是一件很好玩的事情

总结

粒子系统是我们在游戏中特别重要的一块内容,相对内容也比较多,我们今天就简单的介绍到这里,在高级篇,我们在详细讲解它的更多高级用法。


代码库,听说经常给人点赞都当老板了!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 走进代码的世界
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档