求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

3D引擎檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
3D引擎

3D引擎是將現實中的物質抽象為多邊形或者各種曲線等表現形式,在計算機中進行相關計算並輸出最終圖像的算法實現的集合。 3D引擎就像是在計算機內建立一個「真實的世界」。

簡介

3D引擎根據是否能夠被主流計算機即時計算出結果分為即時3D引擎和離線3D引擎。PC機及遊戲機上的即時3D畫面就是用即時3D引擎運算生成的,而電影中應用的3D畫面則是用離線3D引擎來實現以達到以假亂真的效果。3D引擎對物質的抽象主要分為多邊形和NURBS兩種。在即時引擎中多邊形實現已經成為了事實上的標準,因為任何多邊形都可以被最終分解為容易計算和表示的三角形。而在離線引擎中為了追求最好的視覺效果會使用大量的NURBS曲線來實現多邊形很難表現出的細節和靈活性。場景管理首先需要考慮如果表達場景中物體的關聯關係,這部分通常是由場景圖來實現的。通過一個一對多的樹形結構已經可以滿足要求,當然考慮到數據層的共享和維護,允許子樹進行Clone也是前期設計時需要考慮的一個方面。再此之後,就需要考慮物體之間材質的繼承關係,動態環境如何嵌入到你選擇的場景圖中。在一個考慮到交互和觸發機制的引擎中,還需要考慮物體之間如何發送消息。(比如一個結合了物理引擎的場景)。實際上在整個引擎中你所涉及到的各種算法和設計,都或多或少的會和場景管理髮生聯繫。比如在一個實現動態光影的引擎中,物體之間如何實現相互遮擋,光源的影響範圍如何在場景圖上繼承,都是在設計時需要考慮的問題。

評價

3D引擎作為一個名詞已經存在了很多年,但即使是一些專業的引擎設計師,也很難就它的定義達成一個共識。通常來說,3D引擎作為一種底層工具支持着高層的圖形軟件開發。你可以把它看成是對3D API的封裝,對一些圖形通用算法的封裝,對一些底層工具的封裝。我無法準確的定義3D引擎的含義和作用,因為針對不同的用戶和開發項目,3D引擎完成的功能可能都有不同。因此,我將從功能的角度來定義3D引擎,這種定義法也許能更確切的表達出一個3D引擎的真實含義。[1]

參考文獻

  1. 3D引擎搜狗