公告
大家好,我們決定暫時停止開發Wonder,但會繼續維護當前的Wonder版本(如繼續維護官網、在線編輯器、QQ群等)。
我們當前的主要任務是 寫書:基於Wonder 1.0版本的開發經驗,寫一本 “開發3D引擎”的實戰類型的書,歡迎大家關注~
寫書計划
之前我寫了《用函數式編程,從0開發3D引擎和編輯器》系列中的前3篇文章,主要從 思維 層面來討論設計和開發過程。
不過我認為這樣的效果並不好,因為大部分讀者都沒有自己動手寫過3D引擎,對他們來說,思維層面的討論太過空泛。
因此我決定,本書從 實戰 層面來討論,讓讀者能真正跟着本書,一步一步地寫出3D引擎,真正體驗到其中的快樂和成就感。
此外,我決定把書的預覽稿作為一個系列文章,發到網上,供讀者先行預覽,歡迎給我反饋意見!
系列文章:
從0開發3D引擎
暫定書名
《3D編程旅程-從0開發3D引擎》
我准備在“3D編程”的主題上寫一系列的書,該系列暫名為“3D編程旅程”。后續可能會有《3D編程旅程-應用》、《3D編程旅程-模式》、《3D編程旅程-測試》等書。
主題
本書使用函數式編程范式,從0開始,通過一行一行的代碼,寫出了 簡易的、完全可運行的 3D引擎。
在線預覽和反饋
讀者反饋QQ群:
106047770
技術棧
- 使用Reasonml作為編程語言
- 使用WebGL 1作為底層api
篇幅
本書保持精簡,專注在實現最小功能上,因此使用較少的篇幅。
策略
- 盡量多章節,每個章節內容盡可能獨立和精簡,減少讀者負擔
重點
-
設計
3D編程比較復雜,要讓各個部分統一協調地工作,還要盡量地提高性能、增強擴展性。
本書會展示很多設計層面的思考,仔細地設計架構,不斷地重構,提高代碼質量。 -
實現
本書旨在讓讀者以最小的成本,快速實現一個簡易的3D引擎。因此,本書不討論 測試、工程化 等內容。
特色
1.完全從0開始,強調實戰
2.保持精簡,只實現最小功能,重點強調架構、擴展
3.完全、徹底地使用函數式編程
現在3D領域使用函數式編程的資料很少,主流還是使用面向對象。
我以前也是用面向對象,不過自從我開始接觸函數式編程,就擁抱了它。
希望能通過本系列,向讀者展示函數式編程的魅力,擴展讀者的視野和思維。
能給你帶來什么收益?
1.手把手教你如何從0開發3D引擎
2.學習函數式編程及其在3D領域的應用
3.學習3D編程中基礎的功能實現,如紋理、光照、模型等
4.學習引擎的設計和架構,如Data Oriented、多線程等
目標讀者群
盡管本書使用的是WebGL 1這個Web 3D編程的API,但本書的設計和實現的思想是通用的,適合整個3D編程領域。
-
3D編程愛好者
-
函數式編程愛好者
-
Web 3D開發工程師
-
3D引擎開發工程師
章節安排
第一部分:准備
主要內容:
- 准備預備知識
- 搭建開發環境
- 搭建測試環境
第二部分:基礎
主要內容:
-
學習函數式編程
-
學習函數式反應式編程
-
學習Reason
第三部分:搭建雛形
主要內容:
-
編寫最小的3D程序
-
從中提煉引擎
-
改進引擎架構
第四部分:增加功能
主要內容:
-
增加基礎功能
-
加入Scene Graph
第五部分:增強擴展性
主要內容:
-
加入腳本組件
-
加入自定義材質
-
加入其它可能的擴展,如ui擴展等
第六部分:應用
主要內容:
-
通過引擎支持的擴展,加入實際應用需要的功能(如picking等)
-
實現幾個完整的3D應用