2013-07-30 11 views
11

私はVisual Studio 2010でWindows 7を実行しています。OpenGLのバージョン(#include)はバージョン1.1で、合理的な現在のバージョン - バージョン3や4のようなもので作業したいと考えています。現在のバージョンのOpenGL for Windows C++をインストールするにはどうすればよいですか?

その状態になるためには何が必要ですか? http://www.opengl.org/sdk/のOpenGL SDKページでは、SDKをダウンロードすることは許可されていないと言われており、OpenGL wikiのhttp://www.opengl.org/wiki/Getting_Startedには、あなたが既にそれを持っていると言われています。グラフィックスカードメーカーのDLLをダウンロードできるサイト。しかし、確かに、私は一緒に作業するつもりの各グラフィックカードのために取り組んでいるゲームの別のバージョンを構築する必要はありません。

StackOverflowには、少なくとも私が従うことができる方法で表現されているものはありません。私はちょうど私が実行できるインストーラへのダウンロードリンクがほしいです、それは私に合理的に最新のOpenGL APIを残すでしょう...私はどこに行くのですか?

更新: OpenGLには、SDKがない、つまり.DLL、.lib、およびヘッダーのパッケージが含まれていない、ある種のideosyncraticイディオムがあるようです。私はDirectXを使用しています。

+2

"SDKをダウンロードできません*"これはSDKではないからです。彼らはOpenGLが正式にサポートされている実際のSDKを持っていると考えるように人々を吸い込みたいので、SDKを「SDK」と呼んでいます。それは、ウェブサイトメンテナーがリンクを張っている、ライブラリの貧弱なアップデートです。 wikiの「はじめに」ページでは、これがどのように動作するかを正確に説明しています。OpenGLアプリケーションを他の誰かのシステム上で動作させたい場合は、最近のドライバもインストールする必要があります。しかし、それはどんなグラフィックアプリケーションにも当てはまります。 –

+1

それは私が理解しようとしていることです。最新の方法でOpenGLを使用するには、何をインストールして#includeする必要がありますか? opengl32.libはどこで入手できますか?どのヘッダファイルが必要なのか、どこで入手すればよいのですか?それがSDKを持っていない場合は、どのような機能があるのか​​、またその機能について知ることができますか? – ExOttoyuhr

+3

「SDK」は単に「ライブラリ」の素晴らしい名前です。 "* opengl32.libはどこで入手できますか?*" Getting Startedページは非常に明確です。 "Visual StudioとほとんどのWindowsコンパイラには、このライブラリが付属しています。"あなたにそれにリンクするように言ったのは、*の後の文章でした。ヘッダーの状況については、「機能の取得」の部分で説明しています。あなたがリンクしたページを*読んでください*。特定の用語をスキャンしたり、「ダウンロードする」を検索したりしないでください。実際に行って、それが何を言っているのか理解しています。 –

答えて

18

まず題したWikiページへの便利なリンクが含まれ、それはだこれはOpenGLの仕組みではないからです。 OpenGL自体は、ドライバが提供し、プログラムが使用できるAPIを記述する単なるドキュメントの集まりです。ただし、APIの実際の実装はオペレーティングシステムのコンテキストで行われます。それで、APIをOSから独立させたいのであれば、少し難しくなります。 DirectXは、ある特定のOSに対してのみ設計されているので、簡単です。そのOSはWindowsであり、DirectXは基礎となるOSの一部に対して書かれることを意味します。これは、SDKの開発を管理しやすくします。

OpenGLは何をしていますか?さて、OSのいくつかの部分はとても寛大で、プログラムで利用できるようにする必要があります。最も簡単な形式では、このインターフェースはちょうど1つの関数、GetProcAddressを提供していたはずです。OpenGL仕様で見つかったすべての関数について、OpenGLドライバの実際のものへのポインタがその関数によって得られている可能性があります。しかし、ほとんどのプログラマが怠け者であり、簡単な方法で行っていると言っています。"OpenGLのバージョン1.1での現在の仕様です。 GetProcAddressによってロードされる拡張機能を介して公開します。結局のところ、どれくらいの新機能が存在するのでしょうか... "。多くのことが分かります。

とにかく、OSのサポートを提供するすべてのコンパイラは、OSに付属するすべてのAPI用のインターフェイスライブラリを提供することになっています。 Windowsの場合はOpenGL-1.1です。 OpenGLインタフェースライブラリに実際のバージョンバンプが必要な場合は、OSの更新を意味します。しかし、それは新しいDirectXのバージョンがOSアップデートと共に出荷されるDirectXとあまり違いはありません。 MicrosoftがOpenGLをサポートする理由を見ていないことだけです。したがって、OpenGL-1.1は表面上に見えるものであり、我々はそれに対処しなければなりません。また、コンパイラの出荷には含まれているので、実際のSDKをダウンロードする必要はありません。

さて、どのようにこれらの機能をから後で OpenGLのバージョンにするのですか? Well:GetProcAddress。それはそれを行う公式の方法です。実際の詳細は問題のOSに依存するが、OpenGLはOSに依存しないため、確定 OpenGL SDKにすることはできません。だから、正式にあなたがしなければならないものです:

  • は、使用して関数ポインタをロード
  • それを保持するための関数ポインタ変数を定義使用したい機能ごとにhttp://opengl.org/registry
  • からそれ以降のバージョンのOpenGLのヘッダをダウンロードGetProcAddress

もちろん最新のOpenGLを使いたい場合は、面倒です。そこで、あなたのために第三者のツールを開発した人もいます。そしてプログラマとして関心をお持ちのすべての場合、これらのツールはSDKのように動作します。これまでのところ最も一般的な選択です(残念ながら、OpenGLの出血の点では完全に問題がないわけではありません)。これはGLEWです。 GLEWの使用は非常に簡単です。プロジェクトのソースファイルと一緒にhttp://glew.sourceforge.net

  • 置きglew.cとglew.hから

    1. ダウンロードGLEWを:私は静的にリンクされ、それを使用することをお勧めします。
    2. コンパイルされたソースのリストにglew.cを追加します。 GLEW_STATICプリプロセッサマクロ定義をプロジェクトのグローバルコンパイラフラグに設定するようにしてください。
    3. 代わり#include <GL/gl.h>
    4. 権の使用#include "glew.h"、あなたのプログラム呼び出しglewInit()

    に今いくつかのアドバイスOpenGLのウィンドウを作成した後:あなたは本当にに学ばなければならないが(それを脱脂ない)ドキュメントを参照してください。私が書いたことのすべてはあなたがリンクしている参考文献に記載されています。

  • +0

    ニースの回答ですが、「静的にリンクすることをおすすめします」 - なぜですか? –

    +0

    シェイクスピアのように自分のウィキを読みたいなら、シェイクスピアのように書くべきです。私は読ませようとしましたが、未定義の言葉を使って奇妙な免責事項に執着し、あきらめました。しかし、地球上で何が起こっているのかを説明してくれてありがとうございます。あなたがここで提供した背景は、少なくともAPIが存在すると思った非イニシアチブには認識できない形式ではありませんでした。しかし、今後の議論から、私はOpenGLが私が探していたものではないことを理解しました。実際、私はSDLと混同していました。 – ExOttoyuhr

    3

    OpenTKフレームワーク(C#)とJOGLフレームワーク(Java)で作業している限り、OpenGLのバージョンはグラフィックスカードによって決まりますが、実際にはDirectX SDKにはドキュメントが含まれています。私のラップトップは、私のデスクトップ上でOpenGL 1.1をサポートしているだけで、最新のバージョンをサポートしていることは分かっています。

    ラップトップには、I5 procを搭載したIntel IGPがあります。

    デスクトップにはRadeon 6950HDがあります。

    +0

    のバージョンを1.1よりも最新のものにするために私が何をしているのか把握しようとしています... – ExOttoyuhr

    +1

    申し訳ありませんが、私はあなたの質問に誤解しました。フレームワークがgl 1.1で動作していると報告していたため、ライブラリが1.1以上の機能を持っていなかったことを心配していました。あなたが必要とするものに応じて、あなたのためにOpenGLコンテキストを持つウィンドウを作成するラッパーを検討したいかもしれません。 FreeGlutが気になります。 http://freeglut.sourceforge.net/ – kicks

    +0

    OpenGL用のヘッダファイルとライブラリの最新版を入手したかったのです。しかし、私はそれをあきらめています。もしこれが難しいのであれば、私は実際の図書館で働くことはどんなものなのか想像することができます。 – ExOttoyuhr

    8

    私はあなたが精通しているあなたは、ほとんどのライブラリで

    を提供するリンクを引用して答えてみましょう、あなたは、単にヘッダファイルを#include、ライブラリがプロジェクトまたはメイクファイルにリンクされていることを確認し、そしてそれをすべて働くOpenGLはそのようには機能しません。 この説明とは無関係な理由から、プラットフォーム固有のAPI呼び出しを介して関数を手動でロードする必要があります。 この定型作業は、さまざまなOpenGLロードライブラリで行われます。これらはこのプロセスを円滑にします。を使用することを強くお勧めします。あなたがダウンロードすることができない理由

    この通路は、いくつかの集中管理されたライブラリと(DirectXのではなく)実装ではありませんすべてのOpenGLのOpenGL Loading Library

    関連する問題