最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

最新消息:《3D编程模式》写书-第3次记录

来源:博客园

大家好,这段时间我完成了“积木模式”、“管道模式”、“多线程模式”、“依赖隔离模式”的初稿

目前我已经完成了所有模式(7个模式)的初稿,下面会给出它们的定义和使用场景,如果您正好能用到,请联系我提前阅读模式的初稿,欢迎大家给出反馈建议,您的大名有机会出现在《3D编程模式》的书中,感谢!


【资料图】

我的QQ号:395976266

我的微信号:chaogex

这里是所有的的写书记录:《3D编程模式》写书记录

模式的概况

积木模式

定义

系统由积木搭建而成

使用场景

多人开发的大型系统

具体场景如下:

  • 多人开发的引擎
  • 多人开发的编辑器

管道模式

定义

将连续的、有一定执行顺序的逻辑离散化为一个个独立的Job,按照配置数据在管道中依次执行

使用场景

需要按串行或者并行的顺序连续地执行多个逻辑

具体场景如下:

  • 系统的初始化
  • 引擎主循环中的更新、渲染

多线程模式

定义

首先并行运行多个线程,然后同步更新主线程数据

使用场景

需要渲染大型场景或者有并行逻辑的系统

具体场景如下:

  • 需要渲染大型场景
  • 开多个线程来并行地执行一些逻辑,如加载超大模型、进行复杂计算等逻辑

依赖隔离模式

定义

隔离系统的外部依赖,使得外部依赖的变化不会影响系统

使用场景

使用了频繁变化的外部依赖的系统

具体场景如下:

  • 替换编辑器使用的引擎

  • 升级编辑器使用的引擎的版本

  • 增加编辑器使用的引擎

拼接模式

定义

分解包括各种分支的大数据为小块单位,按照配置文件来拼接

使用场景

系统需要构造包括各种分支的数据

具体场景如下:

  • 构造引擎的Shader代码
  • 构造游戏的地图数据

撤销重做模式

定义

操作时保存不可变的state,撤销/重做时取出对应的state来作为当前的state

使用场景

使用函数式编程范式开发的系统,该系统需要撤销/重做功能

具体场景如下:

  • 需要撤销/重做功能的编辑器
  • 需要保存/载入功能的游戏

ECS模式

定义

组合代替继承,集中管理组件数据,分离逻辑和数据

使用场景

适合于大型的游戏,场景中有很多人物,人物的行为很多或者很复杂

具体场景如下:

  • 有很多个种类的游戏人物的游戏
  • 游戏人物有很多的行为,而且还经常会增加新的行为

关键词: