OpenGL 1.xと2.xの違いは何ですか?


13

OpenGL 1. *と2. *の違いを示す良いチュートリアルはありますか?

どの関数を呼び出してはならないかを知ることは非常に役立ちます(glBegin()など)。


1
あなたの質問を言い換えさせてください。固定機能レンダリングとシェーダーの違いは何ですか?
-EnabrenTane

3
ただし、これはまったく別の質問です。
ヤリコンパ

回答:


11

OpenGL.org入門ページには、さまざまなチュートリアルへのリンクをたっぷり使って、概要を説明しています。

要するに、OpenGL 2.0は、固定機能(1.x)と完全にプログラム可能な(2.x +)世界の間に存在します。シェーダーを追加しながら、OpenGL 1.xのすべてを引き続き使用できます。(3.x +)に進むと、すべての種類の古い固定機能システムが非推奨になり始めるため、両方の世界を混合するのではなく、クリーンスタートする方が良い場合があります。

また、これが以前に質問されていなかったことにも驚いています。または、少なくとも、クイック検索で見つけることができませんでした。


バージョン固有のチュートリアルが見つかりません。(3.0を除く)
t123

そのページからは、「チュートリアルと使い方ガイド」の下にたくさんのリンクがありますが、基本的には、OpenGL 1.xと「その他」から選択できます。
ヤリコンパ

tm1rbrt @:すべての有効な1.xのチュートリアルがあるので、あなたは、2.1のための具体的なチュートリアルを見つけることができません、まだ有効な2.1のチュートリアル。3.xで中断する唯一の理由は、APIが削除されたためです。2.1時代のシェーダーベースのチュートリアルをお探しの場合は、lighthouse3dチュートリアルが役立ちます。ただし、3.xハードウェアは2006年以来存在しており、現在でもマザーボードやCPUに組み込まれていることに注意してください。したがって、未来は2.xの世界ではありません。今後のチュートリアルでは、通常3.x以上に焦点を当てます。
ニコルボーラス

3

OpenGLのバージョンは、によって、大規模、あるいない Direct3Dのバージョンのように。古いコードは、新しいバージョンでも引き続き機能します(1つ例外があります)。したがって、OpenGL v1.4はOpenGL 2.1で正常に機能します。OpenGLバージョンは、減算ではなく加算です。

OpenGL 2.0および2.1は、OpenGL Shading Languageでシェーダーを追加します。また、浮動小数点テクスチャ、2のべき乗以外のテクスチャなど、他の機能もいくつか追加されます。完全なリストは、OpenGL 2.1仕様自体に記載されています。「バージョン」セクションをご覧ください。以前のバージョンから何が変わったのかがわかります。

APIの変更に関するルールの唯一の例外はOpenGL 3.1です(はい、3.1ではなく、3.0です)。OpenGL 3.0では、多くのAPIが「非推奨」として指定されました。これは、OpenGLを担当する委員会であるARBがこれらの機能を後のバージョンから削除できることを意味します。この削除はOpenGL 3.1で発生しました。3.0仕様には非推奨のものの大きなリストがあり、3.1仕様はそれに応じて削減されます。

気にする必要はないことに注意してください(少なくともWindowsとLinuxでは。MacOSXは異なります)。以前に削除されたすべての機能が返される「互換性」モードで問題なく実行できます。OpenGLの実装は互換性コンテキストをサポートする必要はありません(Mac OS X Lionはサポートしていません。要求に応じて2.1または3.2コアをサポートします)が、それらはすべてまだサポートしています。古いアプリケーションとの後方互換性のためだけに。


OpenGL 4. *について何か追加できますか?
Kromsterは

@Krom:言うことはあまりありません。1.xから2.xに移行するように、何も削除されませんでした。
ニコルボーラス

0

opengl 1.xと2.xのチュートリアルはあると思いますが、機能や使いやすさなどでそれらがどのように異なるかを示すチュートリアルはおそらくないでしょう。

特定のOpenGLバージョンのチュートリアルを検索し、同様のチュートリアルを見つけて、自分で比較するのが最善かもしれません。


真剣に誰が私のコメントをランダムに投票し続けますか?
LizardGamer

なぜここでダウン投票するのですか?良い答えではありませんが、下票ですか?わからない。質問は非常に一般的ではない何かを本当に望んでいます...違いを示すためのチュートリアル、それはほとんどチュートリアルが行うことではありません...
Notabene

@LizardGamer数日前にgamedev.SEに参加したことがわかりましたので、「ようこそ!」と言いたいと思います。ただし、次のFAQを実際に読む必要があります。gamedev.stackexchange.com / faqこの回答は、与えたくない種類の回答の完璧な例です。あなたの質問と答えの両方で、より具体的かつ間違いなく建設的になるようにしてください。FAQは、このサイトの目的と、探しているコンテンツの種類を理解するのに役立ちます。幸運を!
Amplify91

@notabeneこの答えは、実際には質問に答えません。それが与える唯一の提案は、基本的に「答えを探す」です。明らかに、OPはここで質問することで既にそれを行っています。
-Amplify91

@ Amplify91私が持っている唯一の歓迎に感謝します、そして私はすでにFAQを読みました、私はそれが尋ねないことの例である方法を見つけませんか?さらに、openglのバージョンの比較に関連するチュートリアルを見たことがないので、質問に答えています。
LizardGamer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.