OpenGL対OGRE:初心者にはどちらが最適ですか?[閉まっている]


10

ゲーム開発に興味があり、優れたC / C ++プログラミングスキルを持っています。私は以前にOGREを試しましたが、出発点としてOGREとOpenGLのどちらを学ぶべきか知りたいです。

私の理解では、OGREはOpenGLおよびDirectXのラッパーです。それで、OGREを学ぶことを前提として、ゲームを開発するためにOpenGLも学ぶ必要がありますか?

また、誰かが私にOpenGLの良いチュートリアルを指摘できますか?私はOGREが十分に文書化されていることを発見しました(ディストリビューションにも付属しています!)が、OpenGLの場合、私がやってきたチュートリアルのほとんどは古くなっています。


あなたが3Dグラフィックプログラミングに完全に慣れていない場合は、低レベルAPIが最初にどのように動作するか(OpenGLまたはD3D、それは重要ではありません)を感じてから、そのような既製のグラフィックエンジンに切り替えてみますOGREとして、レンダリングエンジンの設計/開発ではなく、アプリケーション/ゲームに集中できます。
drxzcl 2011

1
3Dではなく2Dを最初に使用します。
共産主義者のアヒル

1
ほとんどの2Dは「Yのない3D」だけでなく、独自のイディオムと頼りになるテクニックがあります。サイドトラックを2Dに取り入れることが、「良いc / c ++」をすでに持っている人に適しているかどうかはわかりません。
Patrick Hughes 2013年

なぜこの質問は建設的ではないのですか?
Songbreaker 14

回答:


13

Ogreは確かにOpenGLのラッパーですが、そのようなラッパーの考え方は、OpenGLの複雑さを気にする必要がないということです。もちろん、OpenGLについて少し知っておくと役立ちますが、Ogreは醜い詳細の多くを隠してくれます。

OgreはOpenGLとは対照的に間違いなく学習しやすいと思います。少なくとも、興味深い結果をより早く得ることができます。もちろん、それはOpenGLを学ぶ価値があるかどうかを評価するために何をしたいかに完全に依存します。

OpenGLチュートリアルについては、はい、それらのほとんどはかなり古くなっていますが、仕様はあまり速く進んでいないため、これらの古いチュートリアルの多くはまだほとんどのOpenGLに適用されます。

私のお気に入りのいくつか:


28
NeHeに人を送るのをやめてください。チュートリアルは優れていますが、信じられないほど古くなっています。OpenGL 1.xの時代は終わりました。すぐに次世代のグラフィックプログラマーを不自由にしないようにしましょう!
drxzcl 2011

5
:「現代のOpenGLにアン入門」を参照してください。duriansoftware.com/joe/...
drxzcl

1
@Ranieri私は絶対に、非常に強く同意します。このサイトは何年にもわたって同じままであり、OpenGLが過去数年間でかなり劇的に変化した今、それは本当に落胆する必要があります。@Songbreakerはこれを書き留め、NeHeのチュートリアルを回避するか、少なくとも一粒の塩を摂取することを検討してください。固定パイプラインはもうなくなっています。
リケット

1
@ Ranieri、@ Ricket私は絶対に非常に強く反対します。グラフィックプログラミングに完全に不慣れで、自由な時間にSDKを片付けようとする初心者のために、指示なしにOpenGL 4.xの学習曲線を検討してください。OpenGL 4.xのドキュメントはどうですか?詳細については私の投稿を参照してください。
Andrew Rasmussen

4
@Songbreaker:やってみます。それらが良いかどうかはあなたに任せます。
Nicol Bolas

17

OpenGL!はい、私はこれまでのところ、この掲示板の全員に公然と反対しています。

OGREは混乱です。学習曲線は急です。ええ、彼らは素晴らしいチュートリアルをいくつか持っていますが、チュートリアルの範囲を超えて自分で行うことは非常に困難です。OGREをセットアップして動作させ、チュートリアルを実行し、次に何をすべきかを理解できるようになるまでに3週間かかると思います。OGREには、OpenGLよりもはるかに優れた、またはシンプルなものはありません。あなたが主張したように優れたCプログラマーであり、ポインター/配列/関数を理解している場合、OpenGLは同じくらい簡単です。

そのため、OpenGLから始めることを強くお勧めします。OpenGLは、グラフィックスのすべての基本を学ぶことを強制します。バックグラウンドで何が起こっているのかを実際に理解するようになるので、それははるかに興味深いものです。そしてYESはNeHeのチュートリアルから始まります。うん、1.xは非常に古くなっていますが(これはRanieriにとってはあなたのためです)、OpenGL 4.xにジャンプするのは学習曲線が急すぎます。

1.xのイミディエイトモード(glBegin、glEnd)から始め、次に頂点配列について学びます。必要に応じて、学習するためだけにディスプレイリストを操作してください。次に、頂点バッファーオブジェクトに移動します。次に、シェーダーについて学びます。これらの移行はいずれも非常に簡単で、オンラインにはすばらしいチュートリアルがたくさんあります。VBOは4.1の中心にあるので、そこにたどり着くまでに、古い資料を学ぶことはなくなり、1.xのものから始めることで、そこにたどり着くのがはるかに簡単になります。

また、ゲーム開発のキャリアが必要な場合でも、既製のライブラリでキューブを回転させることができるため、誰もあなたを雇うことはありません。可能な限り低いレベルで何が起こっているのかを理解し、その貴重な知識に基づいて設計上の決定を下すことができるので、彼らはあなたを雇うでしょう。

参考文献:私はあなたがいた場所でした。私は1か月のOGRE、Irrlichtを試す1週間、Horde3dを試す1週間、DirectXで遊ぶ2日間、OpenGLで遊ぶ1か月を費やしました。OGREを使用して1か月後、チュートリアルの範囲をほとんど超えることができませんでした。OpenGLで1か月後、私はキャラクターをマインクラフトの世界で走らせ、フレームレート260,000のキューブを700以上のフレームレートでレンダリングしました。


私はあなたの発言に同意しません。また、あなたが暴露している経験は何の意味もないと思います。OgreとOGLの両方で、グラフィックカードとの会話方法に関する基本的な知識が必要です。これは、OGLまたはDXを知っている必要はないが、基本的には何ができるかを知っている必要があることを意味します。この時点で、Ogreは初心者が正しくセットアップするのに数か月かかり、1か月にセットアップした例では見えないレイヤーを追加します。OGLを知っていることは常に良いことですが、経験からOgreを解任しても何の意味もありません。
クライム2013年

1
いいえ、OGREはグラフィックカードとの対話方法を知っている必要はありません。それがポイントです。また、OGREは、それはなどのシーンマネージャ、モデルローダ、また、グラフィックスAPIの周りだけのラッパーされていない
ジャレット

5

簡潔な答え?鬼。

長い答え?OGREはOpenGLのラッパーであるため、必要な作業ははるかに少なくて済みます。データをGPUにバインドしたり、シェーダーをバインドしたり、低レベルで頂点を並べ替えたりすることについてそれほど心配する必要はありません。本番環境でOpenGLを使用するよりもOGREを使用する方がはるかに高速であり、コードも(非常にわずかに)高速になる可能性があります。

エンジン開発に興味がある場合は、GLを使用してください。それ以外の場合は、OGREを使用します。とにかく私はおそらくOGREから始めるでしょう。


3

ゲーム開発にコンピュータグラフィックハードウェアを知る必要はありません。グラフィックプログラマーになるか、ゲーム会社のレンダー開発チームの一員になる必要があります(個人メモ:ゲーム開発全体で最高の楽しみです:))。

レンダリングエンジニアになりたくない場合は、おそらくゲームを開発するためにopenGLやDX全体を学ぶ必要はありません。


2

私はどちらも初心者に最適ではないと主張しますが、「最良」とは、正確に何を求めているかによって決まる相対的な用語です。たとえば、ゲーム会社の3Dグラフィックプログラマーとしての就職に使用できるスキルを習得するために3Dグラフィックプログラミングを学びたい場合、これらの選択は理にかなっています。この目標では、DirectXも検討する必要があります。

ただし、他に目標がある場合は、他のオプションを検討することをお勧めします。手始めに、あなたの質問から、プログラマーとしてゲーム開発に参加したいと思っているかもしれませんが、実際にはそれを指定していません。OpenGLでグラフィックスエンジンを作成することも、Ogreをベースに構築することも、ハードコアプログラマーにとっては間違いありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.