# 我写了本开源书：《3D编程模式》

By [yyc](https://paragraph.com/@yyc-2) · 2023-05-20

---

大家好，我写了本开源书，罗列了我从自己的实战项目中提炼出来的关于3D编程（主要包括“3D引擎/游戏引擎”、“编辑器”开发）的各种编程模式

本书的在线阅读地址在这里：[在线阅读](https://yyc-git.github.io/3dProgramPattern/docs/%E5%89%8D%E8%A8%80/)

本书的源码在Github中，欢迎star，感恩您：[Github地址](https://github.com/yyc-git/3DProgramPattern)

本书的写作花了我300多个小时，将近3个月的全职写作，凝结了我[一万小时的开发经验](https://www.cnblogs.com/chaogex/p/15986803.html)，希望把最精华的部分抽象成“模式”，提供给大家使用，帮助大家设计出架构良好的3D引擎和编辑器

整个写作过程我记录在下面的文章中：[《3D编程模式》写书记录](https://www.cnblogs.com/chaogex/p/17275019.html)

关于本书作者
------

本书作者是杨元超，他之前在腾讯、阿里工作过，在Web3D领域有[1万小时的开发经验](https://www.cnblogs.com/chaogex/p/15986803.html)，主要负责Web3D引擎开发、编辑器开发

他的代表作如下：

*   [Wonder-Web3D开源引擎和开源编辑器](https://www.cnblogs.com/chaogex/p/10508464.html)
    
*   [Meta3D-Web3D低代码平台](https://github.com/Meta3D-Technology/Meta3D)
    

他至少完全重写了5次3D引擎，完全重写了2次编辑器，commit至少7000次，有效代码行数至少20万以上。

他为4家公司提供了3D引擎和编辑器的技术顾问、咨询的服务

他主要有下面的技术成果：[我有什么知识沉淀](https://www.cnblogs.com/chaogex/p/16940539.html#%E6%88%91%E6%9C%89%E4%BB%80%E4%B9%88%E7%9F%A5%E8%AF%86%E6%B2%89%E6%B7%80)

本书特色
----

*   使用函数式编程范式
    
*   每个模式相互独立，用户可以选择性的阅读，降低学习成本
    
*   模式是从实际开发经验中提炼而来，实战性强
    

读者对象
----

本书提出的3D编程模式主要适用于：

*   3D引擎开发
    
*   编辑器及工具开发
    

本书的目标读者如下：

*   3D引擎、游戏引擎开发者
    
*   编辑器开发者
    
*   Web3D开发者
    
*   函数式编程的爱好者
    

本书能给读者带来下面的收益：

*   学习适用于函数式编程的设计原则
    
*   学习3D引擎和编辑器的编程模式
    
*   可以直接应用案例代码到项目中
    

本书主要内容
------

本书共分为8个章节，第1章结合项目的实战应用案例，回顾经典的设计原则；第2-8章根据自己Web3D引擎和编辑器的项目经验，提出了7种新的3D编程模式

本书目录：

*   第1章 再看设计原则
    
*   第2章 依赖隔离模式
    
*   第3章 积木模式
    
*   第4章 管道模式
    
*   第5章 ECS模式
    
*   第6章 多线程模式
    
*   第7章 撤销重做模式
    
*   第8章 拼接模式
    

如何阅读本书
------

本书中所有的例子都是用Typescript和Rescript语言实现的，以Typescript语言为主，其中图形API使用WebGL

在阅读此书前，读者应当有至少2年的开发经验，使用过WebGL、OpenGL、DX9等图形API或者开发过编辑器、工具等应用

我建议读者按照下面的顺序阅读本书：1.阅读第一章，了解各个设计原则的定义和相关的案例说明2.按照个人的需要，选择性地阅读第二到八章的各个模式章节。读者可以首先阅读模式章节中的“使用场景”，如果符合自己的需求再详细阅读该模式章节

致谢
--

感谢各位热心的读者给出阅读反馈！感谢各位老师、大德的支持！

---

*Originally published on [yyc](https://paragraph.com/@yyc-2/3d)*
