質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

16283閲覧

OpenGL系ライブラリが多すぎ!頭の中を整理したい。

tiwatiwa

総合スコア70

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2016/04/13 17:25

編集2016/04/14 14:12

OpenGLを一昨日から勉強し始めました。(言語はC++です)
とりあえずいろいろ動かしてみようと思ったのですが、「○○が定義されていません」のエラーがたくさん出てきて困っています。
(ライブラリがいろいろありすぎです><)

そこで、OpenGLのライブラリを整理したいと思い質問させていただきました。
ざっと調べると下のようなライブラリを見つけました。
・どのように分類されているのか
・なにができるのか
・どのように使い分けるのか

などを教えてください。
(まとめられているサイトなどがあればURLだけでもありがたいです。)

OpenGL
GLUT
OpenGL ES
GLSL
HLSL
GLKit
OpenCV
GLFW
OpenAL
glpng
webGL
・・・まだまだあると思います。

名前が似てるので分類されている?
仲間1:OpenGL、OpenGL ES、OpenCV、OpenAL
仲間2:GLUT、GLSL、HLSL、GLFW みたいな?

=========================================================
追加で質問を失礼します。
「opengl インストール」で検索すると、OpenGLではなくGLUTのインストール設定方法が出てきます。
OpenGLとGLUTは同じものと考えていいのでしょうか?
また、<opengl.h>をインクルードして使うにはどうすればいいのでしょう。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

まずどんな環境で実行するのか、OpenGLのバージョンは何を使うのかを決めたほうが良いと思います。
特にWindowsではそのままではOpenGL関連の定義がほぼ無いため、OpenGLの関数等を使用する事はできません。
今ならOpenGL ES2.0以降から入るのをお勧めします。

##OpenGLとその亜種

  • OpenGL

バージョンによって使える機能が異なります。使用するバージョンに注意しましょう

  • OpenGL ES
    携帯電話や車載器などの組み込みシステム向けのOpenGLのサブセットです。
    OpenGL ES 1.1と OpenGL ES 2.0以降では全く互換性はありません。
    組み込みシステム向けといってもデスクトップPCでも実行できる環境は整っていて(ANGLEやGPUベンダーの出しているSDKなど) Webブラウザ(WebGL)などでも使用でき実行できる環境が一番多いです。

  • WebGL
    OpenGL ES 2.0をJavaScriptへほぼそのまま移植したものです。

  • GLSL
    OpenGL 2.0やOpenGL ES2.0以降で使用するGPU内で実行するプログラムを書くための言語です。
    OpenGL ES2.0以降やWebGLを使う場合はGLSLの記述が必須になります。

##補助ライブラリ
OpenGLはウインドウを表示したりOpenGLを使用するためのコンテキストを生成したり、入力イベントを処理したりする機能はないため、それらを簡単に扱うための補助的なライブラリがよく使われます。

  • GLUT

古くからあるクロスプラットフォームなウインドウ、コンテキスト生成や入力イベントの処理+αのライブラリです。OpenGL2.0以降では使えない機能があります。

  • GLFW
    クロスプラットフォームな割と新しめのウインドウ生成、コンテキスト生成、入力イベント処理ライブラリです。

  • GLKit
    iOSやOSXなどのApple環境専用のOpenGL補助フレームワークです。

  • glpng
    知りません。

##無関係

  • HLSL
    DirectXを勉強したことがあるのであれば説明は不要ですね。
  • OpenCV
    Open な Computer Visionライブラリです。高度な画像解析などを行うためのライブラリです。
  • OpenAL
    Open な Audio Libraryです。APIはOpenGLに似せて作られていますが、OpenGLと直接関係ありません。

投稿2016/04/15 16:09

satoren

総合スコア109

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

ベストアンサー

ご質問の内容を読むに、はじめたばかりという印象を受けました(はじめて1日とも書いてありますし・・・)。

さて、手っ取り早いところは、一冊OpenGLの基礎本を読んでしまうのが一番はやいでしょう。
いろいろ記載されていますが、そんなに一度に理解するひつようはありません。まずは、OpenGLの根本を理解するのがいちばんはやいかと。

ちなみに、いくつか出てきたキーワードを整理すると、

  1. OpenGL 基本の3D処理エンジンライブラリです。さまざまなOSで現在は利用できます。
  2. OpenGL ES 「Open GL」の組み込み用のサブセットライブラリです。できることはOpenGLとにていますが、組み込み用のため、関数の一部が使えないなどの制限があります(昔は・・・今はかわってるかも?)。
  3. GLUT OpenGLをもっと使いやすく?、便利に使えるように、OpenGLの関数を拡張したライブラリです。
  4. webGL OpenGL ESのAPIと同じような事を、Canvasで利用できるようにした、WEB用のライブラリです。

と、この通り、基本は、OpenGLをまずはきちんと、学習すれば、必然的に、他の役割などわかってくるかと思います。

とりあえずいろいろ動かしてみようと思ったのですが、「○ ○が定義されていません」のエラーが」・・・

との事、いろいろ実際に動かしたい気持ちはわかりますが、きちんと、そして効率よく学習したいならば、まずはポリゴンを1つ表示させる事など、簡単なOpenGLのサンプルなどを、書籍のチュートリアルなどを追って学習されるのが早いかと。

何せ、いろいろな聞き慣れないキーワードも多い、3D関連の世界ですのが、あきらめずにがんばってください。
ちなみに、私はあきらめて、そして絵心的な、デザインセンス的な、そんな所の不足もあり、途中で挫折した口です。。。

投稿2016/04/13 19:36

ItoTomonori

総合スコア1283

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiwatiwa

2016/04/14 14:21

回答ありがとうございます。ちょっと目の前が明るくなりました。 また、OpenGLチュートリアルでおすすめの本があれば教えてください。 (DirectXは勉強したので、3Dの基礎は大丈夫なはずです)
guest

0

OpenCVやOpenALはOpenGLとは関係ないかなぁ、連携はできるけど。

まずOpenGLがあり、そのサブセットがあり、またC以外の言語から使うためのバインディングがあります。
それから、ラッパーが多数存在します。
まずその区別をつけましょう。

OpenGLのラッパーとしてはSFMLが有名かな。GLFWもラッパーだけどちょっとラッパーと呼ぶには低レイヤーというか・・・。あと、OpenGLを用いたGUIライブラリもあり、これはImgui
https://github.com/ocornut/imgui
が有名かな

投稿2016/04/14 13:42

yumetodo

総合スコア5852

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiwatiwa

2016/04/14 14:23

ライブラリたちはみんな全く別物なのですね。 Imguiですね。調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問