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