2012年4月26日木曜日

OpenGL FAQ 2. はじめに


OpenGL FAQ 2. はじめに

2.005  3Dグラフィックスの情報をどこで見つけることができますか?

comp.graphics.algorithms FAQはOpenGLに特有ではない3Dグラフィックス情報を含んでいます。

一般OpenGLと3Dグラフィックス情報のために、高度グラフィックスプログラミングテクニック使用OpenGLは情報のよいオンラインソースです。

優秀な一般的なコンピュータ・グラフィックステキストはコンピュータ・グラフィックスです: 原則と実行、ジェームズフォーリーなどによる第2版 ISBN 0-201-12110-7。 しかし、この本は、それを販売用に持つために、印刷を離れているかもしれません いくつかのオンラインの本小売店まだ思われ 。 amazon.comを試してください。 2001年1月にリリースのために計画された3番目の版があるかもしれません

基本的なベクトル、行列、および四つ一組操作を実行するためのDelphiコードは、ここで見つけられえます。

ここにはリニアの代数学ソースコードのための別のソースがあります。

2.010  どこで例、チュートリアル、ドキュメントや他の OpenGL 情報を見つけることができますか?

OpenGLは、日付に、最も広く文書化された3DグラフィックスAPIです。 情報はウェブと印刷の至る所であります。 OpenGL情報のすべてのソースを徹底的にリストすることが不可能です。 従って、このFAQは、他のOpenGLサイトへの多くのリンクを管理する情報とサイトの大きい倉庫へのリンクを提供します。

OpenGL組織Webページ

SGIのOpenGLウェブサイトおよび(見たところ)SGIの他のOpenGLウェブサイト。

HP OpenGL主題インデックス 。

OpenGL基本FAQ

OpenGLゲーム開発者のFAQ。 OpenGLについての情報だけでなく、OpenGLゲーム開発者のFAQは、OpenGLゲーム開発者のメーリングリストに申し込むことについての情報を持っています。

EFnet #OpenGL FAQ

サミュエルPaikは、マイクロソフトウェブサイトについてのOpenGL情報にリンクの大きい宝庫を作成しました。

OpenGLorgウェブサイトは現在のOpenGL指定およびマニュアルのページを持っています。 OpenGLスペックv1.1をWebページとオンラインでみなすことができます。

いくつかのプラットフォームのためのOpenGLインプリメンテーションの宝庫

GLUTソースコード配布はいくつかの有益なOpenGL例とデモを含んでいます

Codeguruは小ささを管理するけれども、成長することは有益なOpenGLサンプルコードでリストしました。

OpenGLについての優秀な情報を3dfxハードウェアで特に含んでいます。

NeHe Webページは、他のサイトおよび多くの有益なチュートリアルへの多くのリンクを持っています。 多くの人々はこのサイトが有益なのを発見しました。

Win32OpenGLプログラミングについての情報のためのブレーンホッジのWebページを見てください。

インタラクティブなOpenGLチュートリアルはここで見つけられえます。

OpenGLチュートリアルと記事についてgamedev.netをチェックしてください。

2.020  どんなOpenGL本が入手可能ですか?

OpenGLにいくつかの本があるけれども、最も尊敬された2は、「赤い」および「青色の」本です:

OpenGLプログラミングガイド、第3版、メーソン求婚
ISBN 0-201-60458-2(別名赤い本)

OpenGL参照マニュアル、第3版、デイブなどShreiner(エディタ)
ISBN 0-201-65765-1(別名青い本)

これらの本の3番目の版は、OpenGL1.2を説明します。 オリジナルと再版は、1.0と1.1をそれぞれ説明します。

OpenGL赤本はオンラインです。

ここのOpenGL参照マニュアルのために、2つのソースです:

HPウェブブラウズ可能なOpenGL参照マニュアル、第2版(OpenGL1.1のために)。
OpenGL参照マニュアルと同様なマニュアルのページ。

赤と青い本だけでなく、Xウィンドウのための緑色の本で見てください プログラミングするおよび マイクロソフトWindowsプログラミングのための白書 。 www.opengl.orgを訪問してOpenGL本のより徹底的なリストにウェブサイトを得させることができます。

2.030  どんな OpenGL チャットルームとニュースグループが利用できますか?

ユーズネットニュースグループ〈OpenGLプログラミングに捧げられた〉はcomp.graphics.api.openglです。

#OpenGL IRCチャンネルはOpenGL議論に捧げられます。

2.040  ソースコードのある OpenGL 実装にはどのようなものがありますか?

岩石台地ライブラリはOpenGL相似物です。 それは同一のインタフェースをOpenGLに持っています。 それが「OpenGL」と呼ばれえない唯一の理由は、その創造者がOpenGL ARBからライセンスを購入しなかったからです。

OpenGLサンプルインプリメンテーションはまた入手可能です。

2.050  OpenGL を利用するにはどんなコンパイラが使用できますか?

OpenGLプログラムは一般に、CとC++によって書かれます。 OpenGLのプログラムを作ることができます Delphi(1パスカル似の言語)、基本的な, Fortran、エイダ、および他 。

Borland

BorlandコンパイラによってOpenGLをプログラミングすることは同じです 1つの例外を持つどのような他のコンパイラとでも : OpenGLアプリはランタイムでフローティングポイント例外を引き起こすかもしれません。 これらの無害なエラーを使用不可にするためには、OpenGL機能を呼ぶ前に、以下をアプリに追加してください:

_control87(MCW_EM、MCW_EM);

Borlandユーザーは、4.0バージョンがボックスの外のOpenGL1.0をサポートすることにだけ気づいている必要があります。 それが入手可能になる時には、OpenGL v1.1、またはv1.2を使うために、マイクロソフトからOpenGL SDKをダウンロードしてください。

Borland-対応を生成するために、Borlandのimplibユーティリティを使用してください。 LIB輸出ライブラリ から マイクロソフト対応である 。 DLLライブラリ。 もしマイクロソフトフォーマットによってaccidentlyにリンクするならば。 LIBファイル、あなたは、以下のようなリンカエラーを受け取ります:

C:¥BORLAND¥BCC55¥LIB¥GLUT32。 LIB'はinvalis OMFレコード、タイプ0x21を含んでいます  (ことによるとCOOF)

bornews.borland.comユーズネットニュースサーバーは、グラフィックスに付随している2ニュースグループを持っています: borland.public.delphi.graphicsとborland.public.cppbuilder.graphics。


誰がNB 、カナダの子供をサポートするための資格

Borlandコミュニティは、Borlandコンパイラ問題に対処するFAQのオンラインのソースです。

どのようにBorland C++ビルダーの商業用のバージョンを通してOpenGLを使うかの情報のために、スコットHeimanのWebページを訪問してください。 自由なバージョンについての情報のために、ここに行ってください。

ジョンジェイコブズによるOpenGLへのDelphi開発者のガイドが入手可能な本。 作者はこの本のためのWebページを管理します。

ここで、DelphiからOpenGLを使うことについての情報が見つけられうることとDelphi3D Webページで。 Delphiを通してOpenGLを使うためのコードとユーティリティは入手可能です。

Visual Basic

ここには、どのようにVisual Basicを通じてOpenGLを使うかの情報を持つ3つのサイトがあります:



2.060  OpenGLプログラムをコンパイルして、実行するために何を必要としますか?

以下はC/C++用法に特にあてはまります。

OpenGLプログラムをコンパイルし、リンクするために、OpenGLヘッダーファイルとライブラリが必要です。 OpenGLプログラムあなたを実行するのには、機器に特有な共有されたまたは動的にロードされたOpenGLライブラリ、またはベンダ具体的なOpenGLインストール可能クライアントドライバー(ICD)が必要であるかもしれません。 また、GLUとGLUTライブラリのための包括ファイルとライブラリが必要であるかもしれません。 これらのファイルを得て、ライブラリが、どのOpenGLシステムプラットフォームを使っているかに依拠する所。

OpenGL組織はOpenGL開発者とエンドユーザーファイルにリンクのリストを管理します。 そこから必要なもののほとんどをダウンロードできます。

マイクロソフトWindows9x、NT、および2000の下で:

もしVisual C++を使っているならば、.libは、それによってリンクするためにファイルするだけでなく、編者はOpenGLとGLUのための包括ファイルによって来ます。

GLUTのために、これらのファイルをダウンロードしてください。 glut.hをコンパイラにインストールしてください ディレクトリ、コンパイラのlibディレクトリのglut32.lib、およびglut32.dllを、Windowsシステムディレクトリに含めている (Windows9xのためのc:¥windows¥system、またはWindowsNT/2000のためのc:¥winnt¥system32)。

要約において、完全にインストールされたWindows OpenGL開発環境はこれのように見えます:

ファイル 位置
gl.h
glut.h
glu.h
[コンパイラ]¥include¥gl
Opengl32.lib
glut32.lib
glu32.lib
[コンパイラ]¥lib
Opengl32.dll
glut32.dll
glu32.dll
[システム]

[コンパイラ]がコンパイラディレクトリ(c:¥Program Files¥Microsoft Visual Studio¥VC98などの)であり、[システム]がWindows9x/NT/2000システムディレクトリである所(c:¥winnt¥system32やc:¥windows¥systemなど)。

もしOpenGLを加速するハードウェアプラットフォームにいるならば、機器のためのICDをインストールする必要があるでしょう。 これはハードウェアで出荷したかもしれないか、またはハードウェアベンダのWebページからそれをダウンロードできます。 ベンダは置換または付加もgl.hに提供できて、それは定義と宣言をベンダ具体的なOpenGL拡張に提供します。 詳細については、このFAQにおいて拡張セクションを見てください。

もしopengl.libやglut.libなどのファイルを見るならば、これらは、マイクロソフトWindowsのためのSGIの未サポートであったライブラリです。 それらは使われるべきではありません。 ハードウェア加速を使うために、マイクロソフトライブラリは推奨されます。 SGIライブラリについてのより多くの情報は、ここで見つけられえます。 いつも、すべてのマイクロソフトライブラリ(例えば、glu32.lib、glut32.lib、opengl32.lib)またはすべてのSGIライブラリによってリンクしてください(例えば、glu.lib、glut.lib、およびopengl.lib)。 マイクロソフトlibariresとSGIライブラリの結合を使うことができません。 しかし、ライブラリの両方のセットを同じシステムにインストールできます。 もしSGIの.libファイルを使うならば、システムフォルダにインストールされた対応した.dllファイルが必要でしょう。 (すなわち、opengl.libに対してリンクするのには、ランタイムでopengl.dllがインストールされることが必要です)。

コンパイラに、OpenGL、GLU、およびGLUTライブラリによってリンクするのを指示する必要があります。 Visual C++6.0において、プロジェクトメニューの設定ダイアログボックスによってこれを遂行できます。 リンクタブにスクロールしてください。 オブジェクト/ライブラリモジュール編集ボックスにおいて、glut32.lib、glu32.lib、およびopengl32.libを、存在するどのようなテキストの終わりにでも追加してください。

UNIXまたはUNIX似のオペレーティングシステムのために:

もし標準の位置で使うために必要なヘッダーファイルとライブラリを見つけないならばコンパイラとリンカをそれらの位置に適切-私で向ける必要があることと-Lオプション。 リンクするライブラリは、リンク時間で-lオプションで指定されなければなりません; -lglut-lGLU-lGL-lXmu-lX11は典型的です。

もしGLUTを使いたいならば、それをダウンロードする必要があります。 もし前コンパイルされたバイナリを見つけることができないならば、ソースをダウンロードし、それをコンパイルしたいでしょう。 GLUTは多くのプラットフォームを容易に基にし、どのように、作りつけることをするかを説明して多くのREADMEファイルによって来ます。 GLUTコンパイラはimakeユーティリティを使い、それは、それを、新しいプラットフォームのGLUTを建てることが容易にします。

Linux、Macintosh、および他のシステムのために:

岩石台地は、多くのプラットフォームで入手可能な自由なOpenGL似のライブラリです。 具体的なプラットフォームのためのOpenGLについての情報のためのOpenGL組織のWebページで開発者セクションもチェックしてさしつかえありません。

2.070   なぜコンパイル、リンク時または実行時にエラーになるのか解りません。


Fのランスで大恐慌の影響

ほとんどがどちらからでもエラーステムをコンパイルすることと接続すること 正しくインストールされたOpenGL開発環境を持たないシステム 、またはどこで包括とライブラリファイルを見つけるかをコンパイラに知らせることの失敗。

もしWindows9x/NT/2000環境においてこれらの問題に遭遇しているならば、すべてのファイルをそれらの正しい位置にインストールし、リンカに、.libファイルを見つけるのを正しく指示したことを保証するために、上で問題2.060を読んでください。

また、#includeを置く必要があることに注意してください #includeの前の<windows.h>ステートメント <GL/gl.h> 。 マイクロソフトは、システム 具体的な呼出し会議を使うDLL を必要としますそれはほとんどのWin32Cコンパイラのためのデフォルト呼び出し会議ではありません。従って、それらは、標準外のCシンタックスに拡大するいくつかのマクロによってgl.hのOpenGL呼び出しを解説しました。 これはマイクロソフトのCコンパイラにシステム呼び出し会議を使わせます。 windows.hに含まれる包括ファイルのうちの1つは、マクロを定義します。

Win32開発者のための別の警告: マイクロソフトVisual C++(そしてたぶん ほとんどの他のWin32Cコンパイラ )によって、標準のWin32アプリケーションエントリポイントが、4つのパラメータを持つWinMainであること、メインより(int argc、雑用**argv)。 Visual C++は、構文解析されたコマンドラインで標準のWin32アプリケーション入力、および呼び出しメインを構文解析するためにコードを含む選択肢を持っています; これはWin32アプリケーションの代わりにコンソールアプリケーションと呼ばれます。 もしネットからコードをダウンロードし、それを築こうとするならば、アプリケーション、コンソール、またはWin32の右の種類を築くためにコンパイラを設定したことを確かめてください。 これはリンカオプションまたはpragmasによってコントロールできます。 マイクロソフトVisual C++は、エントリポイントとアプリケーションタイプをコントロールするための以下のpragmasをサポートします:

以下の//使用1:  #pragmaコメント(リンカ、「/入力:mainCRTStartup」)#pragma以下のコメント(リンカ  、「/入力:wmainCRTStartup」)#pragmaコメント(リンカ、「/入力:WinMainCRTStartup  」)#pragmaコメント(リンカ、「/ENTRY:wWinMainCRTStartup」)//使用1:  #pragmaコメント(リンカ、「/サブシステム:Windows」)#pragmaコメント(リンカ、「/  サブシステム:コンソール」)

以下は、エラーおよびそれらの可能な原因と解決策のテーブルです。 それはマイクロソフトVisual C++ユーザーにターゲットとされるけれども、エラーのタイプは一般にどのようなプラットフォームにでもあてはまるかもしれません。

例エラーテキスト 可能な原因と解決
d:¥c++¥file.c(20): 警告C4013: 不確定な『glutDestroyWindow』; ならば 外部のリターンint 
d:¥c++¥file.c(71): 警告C4013: 不確定な『glMatrixMode』; ならば 外部のリターンint 
d:¥c++¥file.c(71): エラーC2065: 『GL_MODELVIEW』: 申告していない識別子
しませんでした #include gl.h、glu.h、またはglut.h 

GLUTソースファイルはするべきです:
#include<GL/glut.h>
Non-GLUTソースファイルはするべきです:
#include<GL/glu.h>
#include<GL/gl.h>

c:¥program files¥micro softビジュアルstudio¥vc98¥include¥gl¥gl.h(1152): エラーC2054: 予期される'WINGDIAPI'に続いている『(』
c:¥program files¥micro softビジュアルstudio¥vc98¥include¥gl¥gl.h(1152): エラーC2085: 『APIENTRY』: フォーマルなパラメータリストのnot
しなかった #include windows.h か、またはgl.hの後にそれを含みました。

ソースがその使用GLUTとMFCをファイルしないけれども、OpenGLに電話をかける するべきです:
#include<windows.h>
#include<GL/gl.h>

d:c++¥file.c(231): 警告C4305: 『初期設定』: 『浮かぶ』'const2倍'からの切頭 浮動小数点定数(例えば1.0)は、2倍タイプするために、履行を怠ります。 これは、Visual C++において以下によって使用不可にできる無害な警告です:
#ifdef WIN32
#pragma警告身体障害: 4305)

0 件のコメント:

コメントを投稿