<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      用函數式編程,從0開發3D引擎和編輯器(一)

      注意:本系列已棄坑!已經重新開了一個新系列:從0開發3D引擎,請讀者轉到該系列閱讀,謝謝!

      介紹

      大家好,歡迎你踏上3D編程之旅~

      本系列的素材來自我們的產品:Wonder-WebGL 3D引擎和編輯器 的整個開發過程,探討了在從0開始構建3D引擎和編輯器的過程中,每一個重要的功能點、設計方案的思考、討論、總結和延伸。

      本系列避免陷入細節的實現代碼,使用偽代碼代替。所以沒有可直接運行的代碼,取而代之的是經過抽象和提煉的偽代碼/模式。

      為什么要寫這個系列

      我有三個小目標:
      1.完全創造
      完全從0開始,創造一個有深度、有難度、有挑戰的產品。
      所以Wonder被創造出來了,并且會持續地發展。

      2.完全紀錄
      完全紀錄創造的過程,把我整個人生都沉淀下來。
      所以有了打造3D引擎,第8000小時開始

      3.完全分享
      完全分享所有的創造、紀錄,把我走過的路分享給需要的人。
      所以有了Wonder開源

      本系列為了完成第2個和第3個目標,會把開發Wonder的思考沉淀下來,進行提煉和升華,分享給世界,也分享給我自己。

      希望對你有所幫助~

      技術棧

      本系列特色

      1.完全從0開始,素材來自我們的產品Wonder

      我們會一邊開發Wonder,一邊在本系列寫文章分享。
      因為Wonder在不斷更新中,所以本系列也會不斷更新。

      2.完全、徹底地使用函數式編程。

      現在3D領域使用函數式編程的資料很少,主流還是使用面向對象。
      我以前也是用面向對象,不過自從我開始接觸函數式編程,就擁抱了它。
      面向對象很好,函數式編程也很好。使用哪一個,是每個人的自由。

      本系列希望能擴展大家的視野和思維,展示函數式編程的魅力。

      3.不僅探討3D引擎,而且以編輯器作為主線。

      討論編輯器的資料很少,討論3D引擎+編輯器的更少。

      本系列完全基于我們的實戰經驗,以編輯器作為主線,3D引擎作為底層實現。

      兩者的關系如下圖:

      編輯器引擎關系2.png-6.7kB

      4.重點放在設計和思考上,避免實現細節

      本系列希望展示來自于實戰的思考和設計,在較高的層面進行探討,所以會用偽代碼作為實現的說明,避免細節的干擾。

      5.類型驅動設計。盡量用Type和偽代碼替代UML來探討設計。

      Curry-Howard 同構:

      類型即命題,程序即證明

      類型既然對應邏輯命題,那能用它來表示設計嗎?
      具體就是:
      1)能表達領域模型嗎?

      2)能表達領域模型的交互關系嗎?

      3)能替代單元測試?

      使用類型進行約束,然后在編譯時檢查和發現錯誤,從而不再需要單元測試。

      4)能驅動設計嗎?

      這樣就能快速驗證設計方案:
      通過定義類型來描述需求和設計,不需要具體實現;
      驗證通過后,再一一實現。

      本系列使用Reason語言,大部分滿足1和2,部分滿足3和4。

      這是因為Reason語言的類型沒有Idris強大,所以3和4不能完全滿足。。。。。。

      或許以后可以使用Idris來重寫。。。。。。

      不過總的來說,我對Reason語言還是非常滿意的,詳見我們在知乎上的總結-如何評價 reasonml ?

      • 參考資料

      程序與證明
      Designing with types

      能給你帶來什么收益?

      1.了解Wonder的技術內幕

      2.學習從0開發3D引擎和編輯器

      3.學習函數式編程及其在3D領域的應用

      4.學習3D編程的功能實現,如紋理、光照、模型等功能的實現

      5.學習設計和架構,如Data Oriented、多線程、管道job等設計

      寫作規劃

      Wonder目前開發到1.0版本,因此本系列對應Wonder 0.1 - 1.0版本的內容。
      (隨著Wonder不斷更新新版本,本系列也會對應更新)

      Wonder 1.0產品展示:

      editor_show.gif-1353.8kB

      本系列目錄

      • 序言
      • 函數式編程準備
      • 初步需求分析
      • 初步設計
      • 搭建基礎框架
      • 操作GameObject
      • 操作Component
      • Redo/Undo
      • 端對端測試
      • 輸出
      • 多線程渲染
      • 運行/停止
      • 事件和CameraContronller組件
      • IMGUI
      • 增加資產Asset
      • 導入/導出
      • 發布本地包
      • 快捷鍵
      • Picking
      • Transform Gizmo
      • PWA

      致謝

      感謝你能讀到這里,歡迎你提出各種建議或意見,為你服務是我的榮幸~感謝~

      參考資料

      Wonder-WebGL 3D引擎和編輯器
      Curry-Howard 同構
      程序與證明
      Designing with types
      Reason語言

      歡迎瀏覽下一篇博文:用函數式編程,從0開發3D引擎和編輯器(二):函數式編程準備

      posted @ 2019-05-01 11:12  楊元超  閱讀(1374)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 午夜在线不卡| 欧美日韩欧美| 天堂V亚洲国产V第一次| 亚洲AV永久中文无码精品综合| 日本一道一区二区视频| 久久99精品久久久久久| 国产在线无码视频一区二区三区 | 精品卡通动漫亚洲AV第一页| 中国少妇无码专区| 亚洲精品人妻中文字幕| 中文字幕亚洲精品人妻| 久久这里都是精品二| 国产精品一区在线蜜臀| 中文字幕有码无码AV| 18禁在线一区二区三区| 婷婷精品国产亚洲av在线观看 | 中文字幕有码免费视频| 国产高潮视频在线观看| 黄骅市| 久人人爽人人爽人人片av| 国产一区二区三区禁18| 无套内谢少妇毛片aaaa片免费| 资源在线观看视频一区二区| 18禁一区二区每日更新| 中文字幕av日韩有码| 国产午夜福利精品视频| 国产成人无码一区二区三区| 夜夜爽妓女8888888视频| 成人动漫在线观看| 暖暖 在线 日本 免费 中文| 真人性囗交视频| 91精品91久久久久久| 玩弄丰满少妇人妻视频| 精品人妻久久久久久888| 日本乱码在线看亚洲乱码| 精品久久免费国产乱色也| 北条麻妃一区二区三区av高清| 国内揄拍国内精品人妻久久| 国产鲁鲁视频在线观看| 樱花草视频www日本韩国| 国产亚洲一级特黄大片在线|