先收藏起來,以后再研究OGRE。
Original version by Antiarc (28 Dec 2004)
簡體中文譯本由aaron@ogre3d.org.cn翻譯(2007年4月16日),也就是acer@gameres.com,是同一個人的。
免費打工仔看看要不要在中文維基上也增加這部分內容。這些是Ogre wiki上的東西。
稍后我會把它放到我的blog上。希望對剛剛接觸Ogre還不太熟悉的朋友會有些幫助。
讓我們開始吧
OGRE是什么?
Ogre是一個開源圖形渲染引擎(Open-source Graphics Rendering Engine),其實它的名字的原意是面向對象圖形渲染引擎(Object-oriented Graphics Rendering Engine),巧了,縮寫是一樣的! :-)它是由一個小型核心團隊編寫和維護,并依靠其不斷成長的社區提供支持的。我們這些使用者相信它是當今比較好的自由開放引擎之一,不用贅言,你親自試試就知道了。
開發者是誰?
好吧,讓Ogre小組官方主頁來回答這個問題吧。
我需要什么工具和硬件?
Ogre可以運行在多種3D圖形硬件上,當然運行效果肯定會有所不同。可以瀏覽硬件查看圖形硬件需求和推薦。
說到工具,你需要的是支持C++編譯器。到目前為止,只有Visual C++ 6/7/7.1/8和GCC是支持的。Bloodshed和Borland編譯器目前還不受官方支持。
最后,你需要一個3D程序工具來創建內容。查看裝配成果的途徑了解過程期間還需要什么其它軟件。最基本的和常用的工具是對象建模軟件。
要使用Ogre,我需要知道如何編程嗎?
回
答是肯定的,你要知道如何編程。Ogre不是像市面上一些游戲開發包一樣的游戲外殼或者腳本語言。要想很好地使用它,需要更多的知識,當然也比腳本包功能
強大得多。良好的C++知識是最基本的要求,即需要理解面向對象編程。Ogre的強大力量意味著它不是那種適合剛剛開始編程的人使用的。但那不是說你不能
學習使用Ogre,只是比從傳統方法開始要困難很多倍。
現在也有面向Python和Java語言的Ogre版本正在開發中,但是目前還沒有成品。
面向.NET(C#/VB.NET)的版本現在已經有了基本功能,已被收入OgreAddons CVS樹。
我在哪兒能學到如何用C++編程?
推薦看看下面的網站:
完全C++語言教程
C++編程教程
C和C++編程
C++簡明常見問題解答
給新手一點提示。知道了如何編寫C++程序(比如,知道了語法等等)實際上并不能幫你創建復雜的程序。雖然Ogre會帶你走近創建3D程序,但是你仍要進行大量練習。推薦去"ACM問題集"網站,注冊,每周至少做一到兩個問題集。重在練習。那兒也有論壇,可以解答你的問題。把它當做家庭作業好好想想。如果你做到了這些(邊看教程等等),你才真的了解了C++。
想深入學習一下C++:
Thinking in C++
是不錯的選擇。(我在大學期間曾系統學習過這本書,感覺很好。這是我加的,不是翻譯原文。
)
我能用Ogre制作游戲嗎?
當然可以。與許多其它3D引擎不同,Ogre不是為特定種類的游戲而開發的。根據它的設計,Ogre可被用于從飛行模擬到第一人稱射擊再到"2.5D"游戲的各個地方。如果它能在3D中被實現,那么極有可能是Ogre能夠實現它。
我可以用Ogre制作MMORPG嗎?
理
論上來說是可以的,但是MMORPG需要大量的時間,人工和金錢來構建和維護。這還是僅考慮你設計項目時。MMORPG是近來的熱門事物,每個人都想做一
個。但是即使是接近完成也極少有人能夠做到。一般明智的做法是,在嘗試MMORPG這么大規模的游戲之前,至少制作兩三個較小的"經典"游戲,例如:俄羅
斯方塊等,因為這樣能夠給你一個對于游戲設計和實現過程的整體感覺,以及讓你知道即便是一個小游戲實現起來需要多少工作。“每個人和他們的媽媽制作
MMORPG”主題是游戲編程社區的一個玩笑,所以當你宣布你的下一個大計劃要震驚游戲界時,你可能是要受到懷疑的。
如果你不管這些,仍然
相信你要制作MMO,那么現在開始吧。首先,考慮加入一個小組。最好,你的偉大構想不全是革命性的。合作會最有利于達到實際結果。如果你仍然相信要自己開
始一個項目,那么就從反復地研究開始。如果那個研究完了,再進行更多的別的一些研究。不要在Ogre論壇上發布招聘,那是個餿主意。如果你對通過研究了解
的東西有信心,那么開始設計文檔。按順序列出你的想法,然后開始嘗試爭取支持。GameDev.net有一個招聘區允許新手開“我想從頭開始制作一個
MMO游戲”這樣的帖,但是在Ogre論壇上是不許發這類帖子的。
如果你準備好開始了,那么挑選出工作用的工具。準備GOOF,PLSM以
及其它能夠加速開發節約時間的庫文件或者引擎。準備Realm Crafter,Kaneva,Multiverse以及其它可能有你需要的東西的MMO
引擎。Project Wish就是少數代表之一。
最后,永遠不停學習。這會花費很長時間。你需要幫助并要開設一個社區以提供支持。如果你有任何問題,可以提問,但要用恰當的方式,注意語法和拼寫。大多數人不會特別嚴肅地對待問題,所以用你專業地做事方法回擊他們的嘲笑。
雖然除了這些之外,還有很多需要說的,但是知道了上述這些內容,已經可以開始了,如果你夠瘋狂想要嘗試的話。
Ogre是游戲引擎嗎?
不是。這是許多朋友往往忽視的微小差別。Ogre是一個圖形引擎,并且只是一個圖形引擎。但是,它可以很容易地和其它庫文件綁在一起構建一個游戲引擎。要構建游戲引擎,你可能需要的一些庫文件有:
聲音
網絡
輸入
碰撞
Ogre本身不包含這些庫,但是它留有接口,使Ogre可以很容易地與現有程序共同工作。Sinbad(Ogre首席開發員)選擇走這條路線,有如下幾個原因:(下面的話來自論壇里的帖子)
“
OGRE是更大的開發系統的一個組成部分。OGRE不是,并且永遠不會是一站式購物的游戲開發平臺,它是為特定目的而開發的一個工具。有時我不得不發了瘋似的保衛這一點,看上去這條路走得跟其它引擎正好相反,它們集中于提供一種一站式解決方案。
我認為軟件系統應該是模塊化,可插拔的,它們之間有清晰的接口和邊界。我認為每個小組應該專注于他們的核心區域,讓其他人自己解決各自的特殊需要(例如我
認為重復開發ODE的人純粹是瘋子,就像一些其它引擎做的那樣)。我認為任何軟件系統最重要的部分是它的接口,支持其上的所有內容。我認為開發人員組合入
選開發平臺的工具應當是自由的,不是僅僅由于他們選擇了一個圖形引擎,而被告知必須要用哪個聲音,物理,人工智能等實現方式。
我意識到這
種方法意味著今天這種局面,用Ogre開發游戲不如用一站式引擎快速,但是我不是只考慮今天。我的哲學是構建一個靈活的圖形組件,它能夠被用于各種情況
下,并且易于與其它組件集成——而不是構建一個只能用于少數游戲的引擎。比起速度,我更喜歡靈活性,因為我認為如果你設計正確,你就能添加工具使后續的特
定步驟的開發變得更快。你會發現擴展一個有著高集成特性從一個特定的視角被設計為僅能處理一小部分場景類型的引擎是非常困難的。我嘗試著進行長遠計劃。
隨著時間推移,我期望出現更多的“復合”解決方案,而且那確實已經出現了,人們基于OGRE和其它庫文件構建他們自己的平臺。嘿,也許有一天我也會用我選的聲音/網絡/物理引擎庫和OGRE組成一個平臺。但是我的選擇不必一定是你的選擇。我認為這一點是最重要的。
”
這并不是說你無法將Ogre用于游戲。事實上,比起其它方面,它更有可能用于游戲。簡單來說,Ogre不決定你要使用什么庫文件,并且允許你靈活地將Ogre應用到你的程序上,而不是圍繞Ogre改變你的應用程序。
我也能使用OGRE生成圖形嗎?
我能用它生成像Maya或其它工具包提供的效果嗎?
我能制作像cgtalk上面展示的那樣的圖片嗎?
Ogre
是一個實時渲染引擎。許多cgtalk或其它網站上面的圖片是離線渲染或低速渲染的,經常帶有射線追蹤。這兩種技術從根本上來說是不同的。離線渲染圖片,
為了細節和真實,花費大量時間處理每一張圖片??赡芑ㄙM幾個小時或更長的時間去生成一幅全屏的圖像。而實時渲染,為了幀率,需要在大約三十分之一到百分之
一秒的時間內渲染完。當今3D圖形硬件的巨大進步已經令實時渲染變得觀感也很詳細且真實。限制僅來自于你運行Ogre所用的硬件以及你的想像力。要想知道
能夠得到什么樣的圖形,可以瀏覽NVidia和ATI銷售它們的圖形硬件時使用的圖像。
我們的Ogre影集中有許多屏幕截圖展示引擎和圖形硬件的特性和能力。其中一些令人印象深刻,其余的也展示了能夠被用以提高效能和靈活效果的特性,例如:后過濾、fresnel折射、標準映射。
好吧,你說服我了。那么,我應該如何開始呢?
這些鏈接從主頁也可找到。首選是安裝軟件開發包或從源代碼編譯。后者可供那些對C++開發有經驗的人選擇。然后,移到建立一個應用程序和Ogre教程繼續。
我卡殼了!如何獲取幫助?!
你的主要信息來源是維基網頁,包括安裝軟件開發包、從源代碼編譯、建立一個應用程序和Ogre教程。應用程序接口和手冊也是必要的參考。如果你的問題在這些地方沒法兒解答,Ogre有一個助人為樂欣欣向榮的社區,那里的人們非常高興幫助你。你可以試著上一上論壇,在這兒,幾乎你的問題全都會被及時回答,但是要先讀論壇規定,然后善用搜索功能。新手問的大多數問題此前已被回答過無數次了。確保提供相應的細節,你的Ogre.log、異常、錯誤消息和/或調試器反向追蹤。越具體,人們越可能幫到你。
如果你想要多些交互性,請聯系irc.freenode.net,加入Ogre3d,我們隨時幫你。
Ogre都支持哪些文件格式?
Ogre不僅支持許多普通文件格式,而且支持Ogre使用的特有文件格式。
支持的普通文件格式:
.bsp Quake bsp文件
.shader Quake 3 shader文件
.ttf True type字體文件
.png,.tga,.jpg,.raw,.gif,.dds以及更多FreeImage支持的圖像格式。參見圖像文件格式簡要總結
.cg Cg shader文件
.asm Assembly shader文件
.zip 壓縮資源
.xml XML文件
.xsd XML格式文件,定義Ogre基于XML的特有文件格式
.log 文本輸出文件,用于調試記錄,內存記錄,及內存泄漏報告
Ogre特有文件格式:
.material Ogre手冊:材質腳本
.compositor Ogre手冊:合成器腳本
.particle Ogre手冊:粒子腳本
.overlay Ogre手冊:層腳本
.fontdef Ogre手冊:字體定義腳本
.skeleton 包含骨骼動畫的二進制文件
.mesh 包含單一網格定義的二進制文件
.scene 帶有多個網格基于XML的文件。參見DotScene
.cfg 多目的配置文件
.inc 層模板包含文件
.scheme 基于XML的GUI文件
.imageset 基于XML的GUI文件
.layout 基于XML的GUI文件
.font 基于XML的GUI文件
要注意的是,Ogre不會對所有普通文件格式做到毫無遺漏地支持,但是相應替代地為流行的數字內容創建工具提供了Ogre特有的OGRE導出器。