我写了本开源书:《3D 编程模式》 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
WonderJack
V2EX    分享创造

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

  •  3
     
  •   WonderJack div style="vertical-align: text-bottom; width: 14px; height: 14px; display: inline-block; background-image: url('/static/img/social_github.png'); background-size: 14px 14px; margin-right: 5px;">
    Wonder-Technology 2023-05-20 10:28:43 +08:00 2634 次点击
    这是一个创建于 878 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    本书的在线阅读地址在这里:在线阅读

    本书的源码在 Github 中,欢迎 star ,感恩您:Github 地址

    本书的写作花了我 300 多个小时,将近 3 个月的全职写作,凝结了我一万小时的开发经验,希望把最精华的部分抽象成“模式”,提供给大家使用,帮助大家设计出架构良好的 3D 引擎和编辑器

    整个写作过程我记录在下面的文章中:
    《 3D 编程模式》写书记录

    关于本书作者

    本书作者是杨元超,他之前在腾讯、阿里工作过,在 Web3D 领域有1 万小时的开发经验,主要负责 Web3D 引擎开发、编辑器开发

    他的代表作如下:

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

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

    他主要有下面的技术成果:
    我有什么知识沉淀

    本书特色

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

    读者对象

    本书提出的 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.按照个人的需要,选择性地阅读第二到八章的各个模式章节。读者可以首先阅读模式章节中的“使用场景”,如果符合自己的需求再详细阅读该模式章节

    致谢

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

    12 条回复    2023-05-22 07:00:58 +08:00
    a33291
        1
    a33291  
       2023-05-20 10:50:15 +08:00
    数字艺术,10000 小时
    pkwenda
        2
    pkwenda  
       2023-05-20 13:23:49 +08:00
    周末流量少,你应该在工作日发贴
    WonderJack
        3
    WonderJack  
    OP
       2023-05-20 13:32:22 +08:00
    @pkwenda 谢谢建议
    nojsja
        4
    nojsja  
       2023-05-20 14:50:54 +08:00
    出书
    vitovan
    &bsp;   5
    vitovan  
       2023-05-20 19:48:07 +08:00
    虽然没看太懂,但是觉得很厉害,加油!
    WonderJack
        6
    WonderJack  
    OP
       2023-05-20 19:59:06 +08:00
    @vitovan 谢谢
    Caturra
        7
    Caturra  
       2023-05-21 00:26:46 +08:00
    有 PDF 版本吗
    WonderJack
        8
    WonderJack  
    OP
       2023-05-21 05:38:01 +08:00
    @Caturra 直接在线阅读哈,什么场景需要 pdf ?
    Caturra
        9
    Caturra  
       2023-05-21 15:43:44 +08:00 via iPhone
    @WonderJack 感觉相比在线版,更方便做批注
    WonderJack
        10
    WonderJack  
    OP
       2023-05-21 16:52:41 +08:00
    @Caturra 了解了,谢谢
    lcwylxx921
        11
    lcwylxx921  
       2023-05-21 20:52:49 +08:00 via iPhone
    非常棒~ 这两天正好有空学习一下
    WonderJack
        12
    WonderJack  
    OP
       2023-05-22 07:00:58 +08:00
    @lcwylxx921 共同学习
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3302 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 11:52 PVG 19:52 LAX 04:52 JFK 07:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86