2012-06-11 35 views
0

正如標題所示,我想編寫一個3D遊戲(可能是BattleZone克隆),但不使用OpenGL,DirectX等API 。在這個問題的核心,我只想學習如何在屏幕上繪製基本的3D形狀並操作它們。不在乎它是否看起來像廢話。我之前使用過OpenGL來實現類似的目標,但實際上並未瞭解這些主題。在不使用圖形API的情況下對3D遊戲進行編程

問題是,我不知道從哪裏開始。我下載了Doom源代碼,但它有點凌駕於我的頭上。雖然我已經編程了一點,但圖形方面的問題遠遠超出了我的深度。

如果有人能提供能夠幫助我實現我目的的鏈接或代碼(任何語言),我將不勝感激。

+0

從熟悉以下內容開始:http://en.wikipedia.org/wiki/3D_projection –

+1

@TomaszNurkiewicz非常符合我的期望。謝謝! – Scott

回答

3

聽起來像一個令人興奮的項目。我在90年代後期做了類似的事情。在OpenGL和DirectX開始流行之前,關於這個主題的書籍有很多。

從根本上說,你必須要學會

  • 如何表示的三維幾何
  • 變換幾何(平移和旋轉)
  • 項目幾何到2D屏幕上。

這些主題中的每一個都有許多子主題(例如,複雜的對象可以由多個多邊形構成,您可能希望限制多邊形僅由三角形構成,或支持其他多邊形。可能需要加載通用模型格式,例如.obj文件,以便您可以使用現成工具創建模型)。

這裏的主題太寬泛了,沒有詳細的答案。整本書都寫關於這個問題,包括

Black Art of 3D Game Programming(圖書,令人驚訝的仍然可用)

很好的介紹給廣大的話題,來看看:

http://en.wikipedia.org/wiki/3D_projection

http://en.wikipedia.org/wiki/Orthographic_projection

http://en.wikipedia.org/wiki/Transformation_matrix#Perspective_projection

Do om,你已經看過,使用了一個叫做heightfield rendering的特殊優化,並且不允許呈現任意的3D形狀(例如,你不會在Doom中找到一個可以在其下走過的橋)。

0

我有Computer Graphics: Principles and Practice in C的第二版,它使用SRGP(簡單光柵圖形編程)和SIGGRAPH,它是一個全面的SRGP,如果你查看關於圖形研究的文章和論文,你會發現這兩個庫都是使用了很多,它們比你提到的API更直接,更低級。我很難找到他們,所以如果你這樣做,請給一個鏈接。請注意,第三版是在WPF中的,所以我不能保證它的實用性,我不知道第二版是否仍在印刷中,但我找到了很多這本書的參考資料,它有it's own page in Wikipedia

另一種解決方案是Win32 API,它不能提供很多渲染方面的功能,但將點和線繪製到窗口上並不重要。我已經寫了一些教程,但我沒有介紹繪製像素和線條,所以如果您在設置窗口的基礎知識方面遇到困難,它們只會很有用。請注意,它不適用於實時渲染,因此可能會變慢。

最後,您可以看看X11編程,這是使用GUI的大多數現代操作系統的基礎。我還沒有找到適用於Windows的庫,但我也沒有花太多時間在它上面。我知道它一般可用於CIGWIN和Linux,而且我相信看看圖形核心將會非常有趣,因爲您已經看到了3D圖形的底層。

相關問題