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

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

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

      從0開發3D引擎(八):準備“搭建引擎雛形”

      大家好,現在開始本系列的第三部分,按照以下幾個步驟來搭建引擎雛形:
      1、分析引擎的需求
      2、實現最小的3D程序
      3、從中提煉引擎原型
      4、一步一步地對引擎進行改進,使其具備良好的架構
      5、實現與架構相關的功能,如“多線程渲染”、“延遲渲染”等功能

      本文進行第一步,分析引擎的需求。

      上一篇博文

      從0開發3D引擎(補充):介紹領域驅動設計

      下一篇博文

      從0開發3D引擎(九):實現最小的3D程序-“繪制三角形”

      業務目標

      1.手把手教讀者如何從0開發3D引擎
      2.學習函數式編程及其在3D領域的應用
      3.學習3D編程中基礎的功能實現,如紋理、光照、模型等
      4.學習引擎的設計和架構,如Data Oriented、多線程等

      本系列開發的引擎屬于最簡化的引擎,讀者可以根據自己的需要在此基礎上對引擎進行擴充,滿足自己的應用場景。

      范圍

      • 簡單渲染
        引擎只有最基礎的光照和紋理功能。
      • 簡單交互
        引擎只能通過“操作相機”來交互。
      • 適當的擴展
        引擎支持主要的擴展方式,如使用腳本組件來插入用戶邏輯,實現動態場景。

      Feature

      • 最小功能
      • 完全函數式的架構
      • 支持良好的擴展性
      • 優秀的性能

      上下文

      image

      • 開發者
        開發者是直接使用引擎來開發Web 3D應用的程序員。
      • 編輯器
        編輯器屬于對引擎的二次開發。它對引擎進行封裝,以“所見即所得”的方式向用戶提供對Web 3D場景編輯的界面,從而使用戶可以很方便地開發Web 3D應用。

      功能性需求

      image

      • GameObject和Component
        引擎是ECS架構,場景是由多個GameObject組成,而每個GameObject又由多個組件(Component)組成。
        其中,組件包括Transform、Geometry等。
      • 多線程渲染
        如果瀏覽器支持Shared ArrayBuffer和OffscreenCanvas,那么引擎可以打開多線程渲染,使用兩個線程:主線程和渲染線程。
      • 前向渲染和延遲渲染
        引擎支持前向渲染和延遲渲染,用戶可以選擇其中一種進行渲染。
      • 光照
        引擎只支持方向光。
      • 紋理
        引擎只支持最基本的紋理。
      • Scene Graph
        引擎使用自定義的wdb格式保存場景數據,并支持它的導入和導出。
      • 相機
        引擎支持用相機與場景交互,包含幾個子功能點:
        • 支持透視投影相機
        • 事件
          引擎綁定和封裝了事件,統一了pc端和移動端的事件。
        • 支持相機控制,如漫游相機
      • 擴展
        引擎支持用擴展來實現自定義功能,包含幾個子功能點:
        • 自定義渲染管道
        • 腳本組件
        • 自定義材質

      非功能性需求

      引擎對于“質量”要求高,因為它是需要長期開發和維護的項目,而且具有很高的技術復雜度。

      開發期質量

      • 高可擴展性
        因為本系列開發的引擎屬于通用引擎,需要支持各種應用場景,所以要求引擎便于擴展。
        本系列主要通過腳本組件等功能來支持擴展。
      • 高可維護性
        引擎需要長期維護,所以需要引擎代碼健壯,易于維護。
        本系列主要通過契約檢查、強類型語言Reason自帶的編譯檢查、代碼重構來確保可維護。
      • 低可測試性
        照理說,引擎需要很高的可測試性,這樣在長期的開發中能顯著降低錯誤率,提高效率。但是本系列為了節省篇幅,沒有寫自動化測試用例,而是通過“運行測試”來驗證正確性。
        建議讀者在實際開發中,保證較高的自動化測試覆蓋率。

      運行期質量

      • 高性能
        因為使用引擎渲染的3D應用,特別是3D游戲,至少需要每秒30幀才能流暢運行,所以引擎對于性能要求很高。
        本系列在搭建引擎雛形時,會進行多次性能測試,從而保證使用最佳性能的方案來構建引擎底層。
      posted @ 2020-01-24 11:39  楊元超  閱讀(659)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧美成人h精品网站| 浦江县| 亚洲熟妇自偷自拍另欧美| 国产三级精品三级在线看| 免费无码一区无码东京热| 丁香婷婷激情综合俺也去| 九色综合国产一区二区三区| 成人av片无码免费网站| 亚洲精品久久久久国色天香| 草裙社区精品视频播放| 国产国产久热这里只有精品| 亚洲精品国产一二三区| 九九热视频免费在线播放| 99久久激情国产精品| 中文字幕亚洲无线码A| 亚洲欧洲成人a∨在线| 日夜啪啪一区二区三区| 乱60一70归性欧老妇| 一本无码av中文出轨人妻| 91亚洲国产成人久久精| 顶级少妇做爰视频在线观看| XXXXXHD亚洲日本HD| 精品亚洲国产成人性色av| 国产精品久久久久久久专区| 成人中文在线| 久久香蕉国产线看观看精品yw| 日韩 一区二区在线观看| 91精品国产午夜福利| 亚洲AV无码AV在线影院| 国产肥臀视频一区二区三区| 精品婷婷色一区二区三区| 国产精品女同性一区二区| 国产片AV国语在线观看手机版| 欧洲亚洲精品免费二区| 亚洲精品三区四区成人少| 视频一区二区不中文字幕| 亚洲开心婷婷中文字幕| 柘城县| 肉大捧一进一出免费视频| 久久人人97超碰人人澡爱香蕉| 久久精品国产亚洲欧美|