什麼是3D引擎

        通俗的來說,3D引擎就是一個能夠在屏幕上顯示3D圖像的軟件。爲達到此目的,現代的3D引擎都是使用一套API通過驅動或者運行時來和硬件進行交互。一個3D引擎可能是一個遊戲引擎的一部分,但是遊戲引擎也可以不需要3D引擎。
  3D引擎使用的API較爲底層,用來處理Vertex Buffers, Index Buffers, Shaders, Textures, Render Targets等;經過封裝,3D引擎則提供了更高層次的API,用於處理Meshes, Bones, Effects, Textures等。3D引擎提供的API接口較爲簡單,用戶不需要知道很多而只是選擇什麼需要渲染,選用哪個材質以及如何使用它們。例如,一個打溼的岩石需要進行凹凸紋理,並且要有反射效果。
  遊戲引擎則是處在最高層次,它提供了一個遊戲運行起來需要的所有的服務,如:3D引擎(在屏幕上渲染整個3D世界),聲音模塊(用來產生身臨其境的聲音效果),網絡模塊(用於網絡遊戲),輸入模塊(處理鍵盤、鼠標、手柄等),物理模塊(保證3D世界中的物體表現得如同現實世界中的物體一樣),人工智能模塊(用來使得非玩家控制角色(NPC)表現得具有一定智能而不是傻傻的感覺)和一個可能的磁盤I/O模塊(處理文件的加載和流)。
  3D引擎的任務只是在屏幕上渲染整個世界,隨其架構的不同,它可能和磁盤I/O模塊以不同的方式進行一定的交互。有些遊戲引擎在遊戲開始階段將所有東西都加在進入內存,另外一些則將這些組織成流的形式。
  並不是所有的3D引擎都提供同樣的服務,有一些設計非常簡單,他們僅僅提供了一種方式用來在屏幕上顯示一個物體,而將快速渲染的任務留給了用戶,這些用戶還需要處理RAM和CPU的使用。
  而這個不是我們所感興趣的,對我們來說,一個3D引擎(或者其他軟件也是類似)應該提供給用戶最好的體驗和最簡單的使用方式。我發現,計算機科學中的一切都應該簡單、快速、高效和優雅,就像K.I.S.S(Keep It Simple, Stupid)原則。
  這個系列的文章用於介紹3D引擎背後的技術。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章