当前位置: 首页 > news >正文

SourceEngine中的粒子系统

https://developer.valvesoftware.com/wiki/Particle_System_Overview

  • 文件格式PCF
  • 编辑器Particle Editor
  • Memory Fields
    • 这里其实也是组件模式的一种应用, 否则内存和CPU的开销会很大
  • Control Points
    • 每个粒子系统最大有64个控制点, 0号默认为粒子的原点
    • 每个控制点可以设置位置, 朝向, 实体
    • TF中医生的治疗光线用控制点进行武器与目标玩家之间的连接
  • Components
    • 粒子系统由组件组成, 每一项都可以有多个元素
    • Renderers
      • spirit, 最常见的
      • rope, 一条连续的"绳子", 如闪电
      • trail, 拖尾
      • blob, 水滴
      • model, 使用模型代替粒子, 如爆炸碎片
      • project, 贴花?
    • Emitters
      • 可以有多个不同类型的发射器
      • 主要属性: 时间(start/end/fadein/fadeout), 发射数量(min/max), 速度, 随机
    • Initializers
      • 初始化位置, 颜色, 大小, 透明度, 速度等, 可以随机
      • 随机位置形状
      • 沿两个控制点之间移动
    • Operators
      • 每帧都影响各个粒子的属性
      • 可以影响控制点的位置
    • Forces
      • 力场模拟
    • Contraints
      • 物理碰撞
      • 与控制点之间的约束关系
      • 空间约束
    • Children
      • 发身子粒子系统, 实现更为复杂的效果
  • 性能
    • 限制每个粒子系统的最大粒子数, 内存预分配这么多空间
    • 多线程
      • 多个粒子系统会分配到多个线程中计算
      • 子系统与父系统处于同一线程
    • SIMD
    • Overdraw
      • 尽量使用少的, 小的, 不透明的粒子
      • 材质中定义最小屏幕空间大小, 太小的剔除(或淡出)
      • 尽量关闭软粒子
    • 共享数据
      • 灵活使用控制点
    • 碰撞
  • 针对低端机多做一个粒子文件, 如xxxx_dx80.pcf

相关文章:

  • Java并发编程(五)锁的使用(下)
  • FilmicToneMapping
  • 一对多关联按照一方的id查找信息的一个笛卡尔积问题
  • Android 滑动效果基础篇(四)—— Gallery + GridView
  • lvm基本应用(自我整理)
  • 【IOS】多语言资源文件加载的一种解决方案
  • BZOJ4725: [POI2017]Reprezentacje ró?nicowe
  • Log4j和thymeleaf结合导致sql 日志输出不了
  • Cocos2d-x win7 + vs2010 配置图文详解 .
  • 【codevs1073】家族
  • 谈谈Ubuntu for Android
  • 关于数据库存储长度的区别比较
  • java指纹识别+谷歌图片识别技术
  • word2vec学习历程
  • Android 滑动效果进阶篇(五)—— 3D旋转
  • CSS实用技巧干货
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java|序列化异常StreamCorruptedException的解决方法
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • nodejs:开发并发布一个nodejs包
  • OSS Web直传 (文件图片)
  • pdf文件如何在线转换为jpg图片
  • Python实现BT种子转化为磁力链接【实战】
  • Redux系列x:源码分析
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • 从零开始学习部署
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 机器学习中为什么要做归一化normalization
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 技术胖1-4季视频复习— (看视频笔记)
  • 设计模式(12)迭代器模式(讲解+应用)
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • ![CDATA[ ]] 是什么东东
  • #include<初见C语言之指针(5)>
  • (C语言)fgets与fputs函数详解
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (分布式缓存)Redis哨兵
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一) springboot详细介绍
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (轉)JSON.stringify 语法实例讲解
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET Micro Framework初体验(二)
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net反编译的九款神器
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • [1525]字符统计2 (哈希)SDUT
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [bzoj1912]异象石(set)