LoginSignup
7
6

More than 3 years have passed since last update.

OpenGLについてしらべてみた

Posted at

OpoenGL5年ぶりくらいなんで思い出す作業も兼ねてここに記しておこうかと思う。思うだけ。
この記事の続き物みたいなものなんでSDLを使用する。

調べたこと

OpenGLについての勘違い

自分は今まで、世にあるグラフィックボードをOpenGL側がサポートして描画のあれこれを管理していると思っていた。
しかし、実際にはOpenGL側が定めた仕様に対してハードウェア側が対応するというかたちになっているらしい
一応覚えておいて損はないと思うのでφ(..)メモメモ


OpenGLのプロファイルについて

参考URL OpenGL Context
OpenGLは3.0まで下位互換があったらしい。
OpenGL1.1の環境で2.1の実装コードを動かしても問題なく動作するが、3.1以降は機能の廃止という概念が存在し、一部機能が廃止された。
Profileを指定することによって3.1以降でも廃止された機能使えるようにできるするのがOpenGLのプロファイルという概念
Core ProfileとCompatibilityの2つが存在し、それぞれ

種類 概要
Core Profile 廃止された機能は無効
Compatibility Profile 廃止された機能も許可

という意味合いになっている


周辺のライブラリとか

GLFW

OpenGL Framework
ライセンス
zlib/libpng license

オープンソースでマルチプラットフォームなOpenGLのフレームワーク
OpenGL,OpenGL ES, Vulkanに対応していて、ウィンドウ・コンテキスト・入力・イベント・サーフェスの作成用APIを提供してくれる

余談 サーフェスについて

以下のURLが参考になった
http://glassonion.hatenablog.com/entry/20150831/1441027769

OpenGL では描画処理を行うバックバッファのことをフレームバッファ、描画処理結果を表示するフロントバッファのことをレンダーバッファといいます。またグラフィックが表示されている空間のことをサーフィス(Surface)と呼びます。

バッファ周りの理解は結構ぼんやりとした感じだったので、図解してくれていてとてもイメージしやすかった


GLEW

OpenGL Extension Wrangler Library
ライセンス
Modified BSD License/Mesa 3-D License(MIT)/Khronos License(MIT)

C/C++で構成されたオープンソースでクロスプラットフォームなOpenGLの拡張機能をロードするためのライブラリ
拡張機能の読み込みが非常に簡単にできる
2019/11/17時点ではOpenGL4.6(最新バージョン)に対応している
とりあえずglewInitしておけばおk

glewExperimental

glewExperimental = GL_TRUE;

部分的にサポートを有効にすることができる
コアプロファイルを指定した時に使う?

glew 公式ページ


GLM

OpenGL Mathematics
ライセンス
Happy Bunny License/MIT License
http://glm.g-truc.net/copying.txt

C++で構成されたヘッダーオンリーの数学ライブラリ(ヘッダーオンリーすごいなぁ)
GLSLライクな文法になっているらしい


参考にしたサイトとか

OpenGLに入門する前に知っておきたかったこと
https://kamino.hatenablog.com/entry/opengl-prior-knowledge
OpenGLプログラミング
https://ja.wikibooks.org/wiki/OpenGLプログラミング
OpenGL ES入門 その1 -描画の仕組みとバッファ-
http://glassonion.hatenablog.com/entry/20150831/1441027769

本当はポリゴン描画のところまで書き留めておきたかったのだけど、コードの量が結構多くなりそうだったのでやめた

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6