2015-08-16 117 views
1

爲了理論(和一般的理解),我想了解一個爲了創建一個「現代」3D遊戲引擎必須做的所有事情的中度詳盡的列表(從編碼器的透視)努力製作3D遊戲引擎?

我似乎很難在其他任何地方找到這個信息,所以我認爲你們在Stack overflow的時候會有我所尋求的知識。在「中等窮舉」方面,我指的是諸如二進制空間分區等設計階段的一般性解釋,然後是這種引擎的實際實現以及軟件的使用(它如果可以解釋除BSP之外的其他渲染方法,則會有所幫助)。

我不想做一個3D引擎,而是簡單地理解需要什麼樣的努力絕對數量,使之一。

+0

你問一個很大的答案。這個網站是針對特定問題的。一些姊妹站點可能更適合理論問題。簡答:它有很大的不同。射手?戰略?難題?基本部分是:硬件渲染引擎,遊戲邏輯模塊,用戶界面,聲音引擎,網絡模塊(僅限多人遊戲),藝術家服務和編輯。支持軟件各不相同。 – warren

+0

好的,我很好,簡短的答案。 – Craig

回答

1

關注3D渲染獨自:

二進制空間分割,如3D渲染的諸多元素,是可選的。在這種情況下,這是一種優化,通過剪切不可見部分,使計算機可以減少渲染場景的工作量。

在其核心,渲染只是一個五階段的過程。首先,生成一個三角形列表。接下來,使用矩陣乘法將三角形從三維空間轉換爲二維空間。接下來,用像素和元信息填充三角形。最後,使用元信息分別對像素進行着色。最後額外的,像素被繪製到屏幕上。

其中大部分步驟都是通過圖形卡部分或全部完成的,這意味着程序員的工作是告訴卡片執行哪一步並提供輸入數據。

但是,這個裸骨頭髮動機甚至不接近現代發動機。現代引擎將充滿優化,如二元空間分割,網格簡化,背景加載和紋理壓縮。他們也將充滿特殊功能,如陰影,鏡子,霧和粒子效果。

現代發動機必須能夠加載和解釋紋理和網格,並在某些情況下,變形,並在運行時修改兩者。最常見的例子是在關鍵幀之間進行插值。

發動機可能需要以重新用於碰撞檢測數據與遊戲邏輯模塊進行交互。碰撞檢測是決定子彈是否碰到某物的東西,也是使得牆壁和地板真實的東西。

+0

這就是我想要的。謝謝 – Craig