OpenGLを学ぶのは無駄ですか?


13

インターネットやさまざまなソースで収集したことは、DirectXがグラフィックスAPIドメインを強固に握っていることです。正直なところ、DirectX10を学ぶ機会を与えましたが、物事がどのように初期化されるのか、我慢できません。実際の3D部分を実際に学習することは非常に困難でした。

一方、OpenGLは「コーディング」の観点からははるかに理にかなっていますが、「持続しない」ものに時間を費やしたいかどうかはわかりません。私は最新のニュースに追いついておらず、OpenGLとDirectXの間で起こっている「戦争」についてもあまり知りません。そうは言っても、OpenGLはすぐになくなるのですか?OpenGLで気に入っているのは、DirectXの場合よりも(書籍/チュートリアル/サンプルを介して)利用可能なリソースが多いため、学習がはるかに簡単なことです。

OpenGLを学ぶのは今がいい時期ですか、それともDirectXがちょうど未来なのでしょうか?今では、100,000のトピックについて話し合っていますが、どちらが良いかについて話しますが、それは私が尋ねているものではありません。OpenGLが定着するかどうかを尋ねているだけです。


31
学ぶことは決して無駄ではありません。
8

23
Windows以外の何かをターゲットにしたい場合は、OpenGLが必要です。これには、Linux、Mac OS、iPhone、Android、および私が知らない他の難解なオペレーティングシステムが含まれます。とにかく、これは基本的に「DXと比較してopenGLは良い」と言っているので、私は主観的として閉じることに投票しました。
共産主義のダック

6
@The Communist Duck:Windows Phone 7およびXbox 360を除く。
DeadMG

1
WP7 OSが技術的にWindowsの場合、XBOX OSは技術的にWindowsです。(彼らは、そうではありません。)
Olhovsky

4
Direct Xに対する私の見解は、OpenGLに対するあなたの見解です。どうしてDirect Xが未来になるのかはわかりません。OpenGL ES / WebGLは未来です!
ジョーイグリーン

回答:


30

今では100000のトピックがあり、どれが良いかを話しているのは知っていますが、それは私が尋ねていることではなく、OpenGLが定着するかどうかを尋ねているだけです。

はい。

テクノロジーは決して消滅することはありません-一度、ある程度の臨界質量に達すると、もはや積極的に開発されなくても、長い間滞在することができます。「OpenGLを学ぶのは時間の無駄です」という文が真実になるまでには、非常に長い時間がかかります。

あなたの動機と推論はやや疑わしいと思いますが、OpenGLを学ぶことには何の問題もありません。D3Dと同じくらい正確に3Dグラフィックス理論とプログラミングについて学ぶことができます。実際、実際のプラットフォームとしては役に立たない場合でも、基本概念がAPI間で移動するため、学習媒体として使用する価値があるかもしれません。これらの概念を習得するのに役立つ限り、それは良い選択です。


まあ、それは単なるサイドプロジェクトのようなもので、地形のレンダリングは私にとって非常に興味深いものです。OpenGLで(私が見たものから)それを行うことは、DirectX

XNAはDirectXのAPIであり、OGLまたはDXを直接操作するよりも理解しやすい(IMO)です。XNAで学習した概念は、後でOpenGLまたはDirectXに引き継がれます。
-Olhovsky

1
XNAのオープンソースのOpenGLポートであるMonoGameもあります。
-voithos

1
世界がどのように変化するかは面白いです。OpenGLは、長い間DirectXの貧しい従兄弟でした。その後、誰かがGPUを電話の中に入れて、出来上がった:OpenGL黄金時代。
MartinTeeVarga

10

これはあなただけが本当に答えられる質問です。だが、

  • あなたは実際に何かを作り、OpenGLをもっと楽しくまたは生産的にしたいと思いますか?次に、OpenGLを学習したい場合があります。
  • OpenGLを学習すると、後で必要になったり、必要に応じてDirectXを学習するのが難しくなりますか?そうは思いません。

誰がどちらを使い続けるか予測できるとは思いません。私は今、あなたの目的に最適なものを何でも使用すると言います。目的に合ったという理由だけでDirectXを使用しましたが、ゲームでOpenGLを使用する方が簡単であることがわかった場合は、DirectXを使用していました。

あなたそれを使うのが好きであるか、それで何かを達成するならば、それは無駄ではありません。


6

Open GLはWeb GLの基礎であり、Web GLはまだ初期段階ですが、広く普及した場合は知っておくと便利です。したがって、一般にDirectX(他の回答で説明)よりもクロスプラットフォームであることに加えて、最終的には3D Webブラウザーゲームを作成するためのオプションの1つになります。

したがって、あなたの質問に答えるために、webGLが標準になると仮定すると、openGLは長い間存続します。


4

まったく役に立たないわけではありません。MacシステムはまだOpenGLのみをサポートし、OpenGL 2.1までしかサポートしていないことに注意してください。つまり、Macで表示されるゲーム(Portal、Left 4 Dead、Left 4 Dead 2などのソースエンジンゲームを含む)は、OpenGLを使用して記述されています。ValveがOpenGL 2.1を使用するためにソースエンジンを適合させ、それを使用していくつかの驚くべきことを行うことができた場合、おそらくそこから始めるのはかなり安全です。


OSXの新しいバージョンはOpenGL 3.3をサポートします。残念ながら、Appleは独自のドライバーを作成し、OSXバージョン/ハードウェアに基づいて機能を指定するため、Mac上のOpenGLバージョンは、OS全体を更新しない限り更新できません(有料更新)。つまり、OpenGLの古いバージョンは今後数年間サポートされる必要があります。
デビッドC.ビショップ

3

初期化コードは、この種のレンダラーのようなサブシステムを扱うすべてのコードのごく一部です。最初の200行が気に入らないので、非常に優れたオブジェクト指向とDirectXが提供するそのような利点を捨てています。私はここであなたの意見をささいなことのように聞こえたくはありませんが、現実は、あなたが必要とする他のサブシステムは言うまでもなく、レンダリングサブシステムを扱うあなたが書くかもしれないすべてのコードと比較して、初期化はささいなことです。

次に、DX9をいつでも試すことができます。これは、DX10よりはるかに少ないです。


(私にとって)問題は、少なくともDXで利用できる情報/チュートリアルが少ないように思われ、存在するものはそれを十分に説明していません。そして、すべての初期化を通じてソースコードを調べると、実際に何が起こっているのかを理解するのがかなり難しくなります(私にとって)。

オルソ...あなたがそれについて言及したので、多分DX9は始めるのが簡単でしょう。

2
DX9から始めることはお勧めしません。DX 10ほど整理されておらず、消えるだけです。
jeffythedragonslayer

2

OpenGLが、すぐに積極的に開発またはターゲットを絞ったテクノロジーでなくなることはまずありません。各APIがキリスト降誕のプラットフォームを比較すると、D3Dには主にXbox、Windows、およびWindows Phone 7があります。OpenGLはMac OS XおよびLinuxに加えて、Windowsでも動作します。OpenGL ESはAndroidおよびiOS上にあります。

主流のゲーム開発者のほとんどがWindowsやXboxをターゲットにしているので、給与を稼ぐためのスキルを探しているだけなら、おそらくDXを学ぶ必要があるでしょう。急速に拡大するモバイルゲーム市場では、OpenGL ESの知識の関連性が高まっています。


これは、私にとっては楽しいプロジェクトです。私は通常のプログラミングの仕事(ファームウェア/ドライバー)を持っているので、これはちょっとスペクトルの反対の端です。

2
私が知っている主流のゲーム開発者のほとんどは、実際にはグラフィックプログラミングを行っていません。すべての作業はグラフィックス抽象化レイヤーの背後に隠されています。あちこちで書かれたシェーダーかもしれませんが、作業の大部分はグラフィックスに関係していません。
テトラッド

1

グラフィックプログラミングを開始する場合、テクノロジは重要ですが、それに慣れると、概念のみが重要になり、Direct3DまたはOpenGLでも同じです。固定機能パイプラインではなくプログラム可能なパイプラインプログラミングが標準になりつつあるため、グラフィックAPIとやり取りする部分はすべての作業のほんの一部です。

もう1つは、携帯電話ではOpenGLが本当に大きいということです。OpenGL ESと呼ばれ、OpenGL 4.1 / 4.0 / 3.3 / 3.2とまったく同じレベルにあります。


1

OpenGLやDXに触れることなく、優れたゲームプログラマになれます。あなたが学ばなければならないことは、Unityのような適切なゲームエンジンを適切に使用することです。ただし、より低レベルに進み、ゲームエンジンの動作を理解する場合は、OpenGLを学習する必要があります。「品質」の面ではあまり得られないので、学習目的になります。

私のアドバイスは、おそらくあなたのキャリア(プロまたはインディー)で何をするゲームエンジンcozを使用することを学ぶことです。また、学習目的でのみOpenGLのようなグラフィックライブラリを学ぶことです。(または、ゲームエンジンを作成または変更する場合)


1

OpenGLを学ぶ必要のあるさまざまな理由の多くは既に他の人から既に語られていると思います。OpenGLが確実に定着するのはなぜでしょうか。 Valveは最近Linuxの開発とサポートを開始しました。これは何を意味するのでしょうか?それは、ほとんどの開発者がOpenGLの使用を開始することを意味します。

現在でも、OpenGLはほとんどの機能をより早く入手し、多くの異なるプラットフォームでサポートされており、多くの人がそれが未来であることに同意しています。


まあ、実際にはopenGL自体は途方もなく遅いペースで動きます。そして、ValveがLinux上にソースエンジンを持っているからといって、OpenGLを使用しても意味がありません。
CobaltHex

まあ、それはドライバー間のすべての矛盾に対処することの問題です。openglのプログラミングドライバーはお尻に大きな痛みを伴いますが、何があってもバグが発生する可能性がありますが、人気が出れば、それよりも少なくなる可能性があります
-dreta

1
@CobaltHex、実際には、それは多くのことを意味します。ビデオゲーム業界の方向を実際に決定する巨大な会社がプラットフォームを選択し、しっかりとその背後に立っているとき、私は他の人もそれに追随するだろうと確信しています。
jcora

一部はそうだろうと確信しているが、OSXの蒸気を見てください
CobaltHex

それは非常に異なる状況です。ベースのGabenはすでに、W8に失望しており、基本的にプラットフォームを切り替えていると述べています。OSXとは対照的に、Linuxは上、自由アクセス可能である多種のハードウェアの多様性と偉大な開発者コミュニティを持っています。ValveのゲームがWindowsのOpenGLではるかに高速に動作し、LinuxのOGLでさらに高速に動作することは言うまでもありません。
jcora

1

ここにこすります。DirectXは、WindowsやXBoxコンソールなどのMicrosoftベースのシステムに制限されています。

一方、OpenGLは、あるバージョンまたは別のバージョンのほぼすべてで実行されます。

「学ぶべき」という限り、グラフィックプログラマーになるつもりなら、簡単な答えは両方を学び、超高速レンダラーを書きたいなら、マントル/バルカンを学ぶことです(気弱な人向けではありません) 。

ただし、ゲームを作りたいだけの場合は、気にしないでください。UnityまたはUnrealで開発を使用することで、はるかに生産的な学習ができます。


0

「親指をいじる」段階であり、「次のエンジンをコーディングするために何を使用すべきか」段階ではないようです。OpenGLを学習することもDirect3Dを学習することもお勧めしません。

物事を簡単にする高レベルのライブラリを見つけて、最初に学ぶ必要があると思うものの山をじっと見つめるのではなく、やり始めてください。

OpenGLで生産性を発揮する前に、ベクトル演算、テクスチャマッピングなどの高レベルの概念に慣れる必要があります。したがって、Ogre3D、Unity、Panda3Dなど、プラットフォームに適したライブラリを選択して、作成を開始します。あなたがされたらやってなく見つめ、あなたはそれが理にかなって学ぶために次のことだものを見ることができます。

OpenGLまたはDirect3Dは、学ぶべきことのそのリストの非常に遅い時期にポップアップ表示されるに違いない。


0

今日のニュース(GL4.3 / ES3)から明らかなように、OpenGLは廃止されず、投資する価値があります。他に何もなければ、LinuxまたはMax OSを対象とする場合、OpenGLとESモバイルドメインで支配的。

それはさておき、長期的には両方のAPIを学習することを真剣に検討する必要があります。両方のAPIの知識はあなた自身の個人的な開発にとってより良いでしょう。唯一の本当の問題は、最初に学ぶべきものであり、OpenGLの方が簡単なので、それが決定です。

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