OpenGL のバージョンについて

[OpenGL 4.2] [OpenGL 4.1] [OpenGL 4.0]
[OpenGL 3.3] [OpenGL 3.2] [OpenGL 3.1] [OpenGL 3.0]
[OpenGL 2.1] [OpenGL 2.0]
[OpenGL 1.5] [OpenGL 1.4] [OpenGL 1.3] [OpenGL 1.2] [OpenGL 1.1]


OpenGL は、かつては上位互換のライブラリでした。 OpenGL 3.0 までは、以前のバージョンに含まれる標準機能は、以降のバージョンで使用可能です。 例えば、OpenGL 1.1 の頂点配列機能は、OpenGL 1.2 以降でも使用できます。
つまり、このことは OpenGL 2.X は、OpenGL 1.X の機能を全て含むことを意味しています。

OpenGL 1.2 以降では、ARB_imaging サブセットがオプションで使用できる環境もあります。

永らく上位互換を維持してきた OpenGL ですが、 肥大化した OpenGL の仕様をシェイプアップするために、 OpenGL 3.0 では過去のバージョンとの互換性に関して見直しが行われ、 将来削除が予定される非推奨機能がまとめられました。
これらは冗長なものであったり、シェーダで置き換え可能な機能です。
OpenGL 3.1 からはこれらの機能は拡張機能としてまとめられ、標準機能からは削除されました。
しかし、OpenGL 3.2 からは再び変更され、互換プロファイルとしてまとめられました。


  • OpenGL 4.2 2011年8月8日にリリース(14番目のリリース)


    • テクスチャの単一レベルにアトミックカウンタおよびロード/ストア/アトミックリード・モディファイ・ライト操作でシェーダを有効にします。 これらの機能は、単一のレンダリングパスの順序に依存しない透過性のためのバッファオブジェクトの各ピクセルのカウンタを維持するために、例えば、結合することができます。
    • GPU-テッセレーションされたジオメトリをキャプチャし、複雑なオブジェクトを効率的に再配置および複製できるようにするために変換フィードバックの結果の複数のインスタンスを描画します。
    • 大幅なパフォーマンス向上のためにGPUに全体のテクスチャを再ダウンロードすることなく、圧縮されたテクスチャの任意のサブセットを変更する。
    • シェーダステージの間でデータを転送するときに特に役立ち、大幅に減少し、メモリのストレージおよび帯域幅で効率的なシェーダ処理のための単一の32ビット値に複数の8ビットおよび16ビットの値をパッキング。


    次の新機能がサポートされました。

    • BPTC 圧縮テクスチャ
      BPTC 圧縮テクスチャフォーマットをサポートしました。
      拡張機能の GL_ARB_texture_compression_bptc 相当の機能が標準機能となりました。

    • 圧縮テクスチャのパッキング/アンパッキング
      glPixelStore モードに圧縮テクスチャのためのパッキングとアンパッキング機能が追加されました。
      固定ブロックサイズの圧縮テクスチャ向けの拡張です。

      • GL_UNPACK_COMPRESSED_BLOCK_WIDTH
      • GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
      • GL_UNPACK_COMPRESSED_BLOCK_DEPTH
      • GL_UNPACK_COMPRESSED_BLOCK_SIZE
      • GL_PACK_COMPRESSED_BLOCK_WIDTH
      • GL_PACK_COMPRESSED_BLOCK_HEIGHT
      • GL_PACK_COMPRESSED_BLOCK_DEPTH
      • GL_PACK_COMPRESSED_BLOCK_SIZE

      拡張機能の GL_ARB_compressed_texture_pixel_storage 相当の機能が標準機能となりました。

    • シェーダアトミックカウンタ
      シェーダのアトミックカウンタの機能をサポートしました。
      拡張機能の GL_ARB_shader_atomic_counters 相当の機能が標準機能となりました。

    • テクスチャイメージ不変
      mipmap 完全を保証するためのメカニズムをサポートしました。
      拡張機能の GL_ARB_texture_storage 相当の機能が標準機能となりました。

    • インスタンストランスフォームフィードバック描画
      トランスフォームフィードバックオペレーション結果をマルチインスタンス描画する機能をサポートしました。
      拡張機能の GL_ARB_transform_feedback_instanced 相当の機能が標準機能となりました。

    • インスタンス描画のためのバッファオブジェクトのオフセット

      拡張機能の GL_ARB_base_instance 相当の機能が標準機能となりました。

    • シェーダステージのイメージのロード/ストア
      OpenGL Shading Language built-in functions allowing loads from and stores to texture images from any shader stage, and application control over the ordering of image load/store operations relative to other OpenGL pipeline operations accessing the same memory
      拡張機能の GL_ARB_shader_image_load_store 相当の機能が標準機能となりました。

    • GLSL 4.20
      New OpenGL Shading Language features with no OpenGL API impact (ARB_conservative_depth and ARB_shading_language_420pack - see the OpenGL Shading Language Specification for details).
      拡張機能の GL_ARB_conservative_depth, GL_ARB_shading_language_420pack 相当の機能が標準機能となりました。

    • 内部フォーマットのサンプル数の問い合せ
      レンダーバッファ、テクスチャの内部フォーマットのサンプル数の問い合せ機能をサポートしました。
      拡張機能の GL_ARB_internalformat_query 相当の機能が標準機能となりました。

    • マップバッファのアラインメントの問い合せ
      glMapBuffer, glMapBufferRange が返すポインタの最小64バイトアラインメントの問い合せ機能をサポートします。
      拡張機能の GL_ARB_map_buffer_alignment 相当の機能が標準機能となりました。

    OpenGL 4.2 コアプロファイルで新たに推奨しないもの:

    • GL_NUM_COMPRESSED_TEXTURE_FORMATS
    • GL_COMPRESSED_TEXTURE_FORMATS

    OpenGL 4.1 で推奨しない機能はそのまま残っていますが、まだ削除されていません。

    資料


  • OpenGL 4.1 2010年7月26日にリリース


  • OpenGL 4.1 は DirectX11 を超える機能のサポートと、OpenGL ES 2.0 互換機能の追加が大きな特徴です。

    次の新機能がサポートされました。

    • Support for OpenGL Shading Language 4.10.
      OpenGL 4.1 は GLSL 4.10 をサポートします。

    • OpenGL ES 2.0 互換
      OpenGL 4.0 に含まれない OpenGL ES 2.0 の特徴を追加し、OpenGL ES 2.0 互換性が改良しました。
      OpenGL ES 2.0 アプリケーションの移植が容易になりました。
      拡張機能の GL_ARB_ES2_compatibility 相当の機能が標準機能となりました。

    • プログラムオブジェクトのバイナリ取得
      拡張機能の GL_ARB_get_program_binary 相当の機能が標準機能となりました。

    • テクスチャとレンダーバッファの要求サイズの増加
      各テクスチャとレンダーバッファに要求されるサイズの最小値が大きくなりました。

      トークン従来の最小値新しい最小値
      GL_MAX_3D_TEXTURE_SIZE 256 2048
      GL_MAX_TEXTURE_SIZE 1024 16384
      GL_MAX_ARRAY_TEXTURE_LAYERS 256 2048
      GL_MAX_CUBE_MAP_TEXTURE_SIZE 1024 16384
      GL_MAX_RENDERBUFFER_SIZE 1024 16384
      GL_MAX_RECTANGLE_TEXTURE_SIZE 1024 16384

    • 異なったシェーダステージを定義する別々にコンパイルされたシェーダオブジェクトの mix-and-match 能力
      拡張機能の GL_ARB_separate_shader_objects 相当の機能が標準機能となりました。

    • GLSL 仕様のシェーダのための精度要件の制限を明確化
      拡張機能の GL_ARB_shader_precision 相当の機能が標準機能となりました。

    • バーテックスシェーダの入力に 64bit float コンポーネントを対応、およびそのための API を追加
      拡張機能の GL_ARB_vertex_attrib_64bit 相当の機能が標準機能となりました。

    • ジオメトリシェーダ出力、マルチフレームバッファアタッチメント、 浮動小数点ビューポート領域のためのマルチビューポート出力
      拡張機能の GL_ARB_viewport_array 相当の機能が標準機能となりました。


    なお、OpenGL 4.1 の新機能で推奨しない機能はありません。 OpenGL 4.0 で推奨しない機能はそのまま残っていますが、まだ削除されていません。

    次のトークンが変更になりました。(互換性のために古いトークンも使えます。)

    • Changed Tokens

      新しいトークン古いトークン
      GL_ACTIVE_PROGRAMGL_CURRENT_PROGRAM

  • OpenGL 4.0 2010年3月11日にリリース


  • OpenGL 4.0 は新たにテッセレーション評価シェーダとテッセレーションコントロールシェーダの2つのシェーダを追加したことが大きな特徴です。

    OpenGL 4.0 のコアプロファイルと互換プロファイルは、OpenGL 3.3 のそれぞれのプロファイルに対して上位互換です。
    互換プロファイルをサポートするか否かは実装に依存します。

    次の新機能がサポートされました。

    • Support for OpenGL Shading Language 4.00 および texture query lod
      OpenGL 4.0 は GLSL 4.00 をサポートします。
      GLSL 4.00 は、新しいテクスチャ関数(textureLOD)による自動LOD計算値を返す機能の追加を含みます。
      拡張機能の GL_ARB_texture_query_lod 相当の機能が標準機能となりました。

    • draw buffers blend
      それぞれの色出力に対して、ブレンド方程式とブレンド関数を設定できるようになりました。
      拡張機能の GL_ARB_draw_buffers_blend 相当の機能が標準機能となりました。

    • draw indirect
      バッファオブジェクトメモリから DrawArraysInstanced か DrawElementsInstancedBaseVertex に引数を渡すことができるようになりました。
      拡張機能の GL_ARB_draw_indirect 相当の機能が標準機能となりました。

    • gpu shader5
      現世代のGPU(GL_ARB_gpu_shader5)の能力をサポートする GLSL 4.00 の新しい機能と関連する API が追加されました。
      拡張機能の GL_ARB_gpu_shader5 相当の機能が標準機能となりました。

    • gpu shader fp64
      ベクトル、マトリクスを含む倍精度浮動小数点の uniform と、 シェーダで倍精度の浮動小数点のデータ型をサポートしました。
      拡張機能の GL_ARB_gpu_shader_fp64 相当の機能が標準機能となりました。

    • sample shading
      ピクセルがマルチサンプリングの時に 実装がユニークなセットの最小の数のフラグメント計算入力を使用するように 明らかに要求する能力が追加されました。
      拡張機能の GL_ARB_sample_shading 相当の機能が標準機能となりました。

    • shader subroutine
      インダイレクトサブルーチンコールをサポートしました。 多くのサブルーチンを含む単一のシェーダに対して、 APIを通してどのサブルーチンが呼ばれるかを動的に選択できるようになりました。
      拡張機能の GL_ARB_shader_subroutine 相当の機能が標準機能となりました。

    • tessellation shader
      パッチ(固定サイズの頂点集合)に適用される新しいテッサレーションステージと2つの新しい対応するシェーダタイプ (テッサレーションコントロールシェーダ、テッサレーション評価シェーダ) が追加されました。
      拡張機能の GL_ARB_tessellation_shader 相当の機能が標準機能となりました。

    • texture buffer object rgb32
      3コンポーネントの32bitバッファテクスチャフォーマット RGB32F、RGB32I、RGB32UI がサポートされました。
      拡張機能の GL_ARB_texture_buffer_object_rgb32 相当の機能が標準機能となりました。

    • texture cube map array
      キューブマップ配列テクスチャ (多くのキューブマップレイヤを含むかもしれない2次元の配列テクスチャ) がサポートされました。 キューブマップ配列テクスチャは、 キューブマップレイヤのそれぞれはユニークなキューブマップ画像の集合です。
      拡張機能の GL_ARB_texture_cube_map_array 相当の機能が標準機能となりました。

    • texture gather
      テクスチャルックアップ時のリニアフィルタリングに使われる2×2フットプリントを決定し、 そのフットプリントの4つのテクセルの最初のコンポーネントから成るベクトルを返す 新しいテクスチャ機能(textureGather)がサポートされました。
      拡張機能の GL_ARB_texture_gather 相当の機能が標準機能となりました。

    • transform feedback2
      追加の変換フィードバック機能が追加されました。
      • フィードバック関連ステートをカプセル化する変換フィードバックオブジェクト
      • 変換フィードバック操作を停止、再開する能力
      • プリミティブ数の問い合わせなしに変換フィードバックモードで 得られたプリミティブを描画する能力

      拡張機能の GL_ARB_transform_feedback2 相当の機能が標準機能となりました。

    • transform feedback3
      追加の変換フィードバック (頂点属性をバッファオブジェクトに書く方法の柔軟性と 複数の別々の頂点ストリームの新しいサポート)が強化されました。
      拡張機能の GL_ARB_transform_feedback3 相当の機能が標準機能となりました。


    なお、OpenGL 4.0 の新機能で推奨しない機能はありません。 OpenGL 3.3 で推奨しない機能はそのまま残っていますが、まだ削除されていません。


4.0 仕様書の和訳

  • OpenGL 3.3 2010年3月11日にリリース


  • OpenGL 4.0 と 既存 GPU ハードウェアで OpenGL 4.0 機能を最大限サポートする OpenGL 3.3 を同時に発表しました。

    OpenGL 3.3 のコアプロファイルと互換プロファイルは、OpenGL 3.2 のそれぞれのプロファイルに対して上位互換です。
    互換プロファイルをサポートするか否かは実装に依存します。

    次の新機能がサポートされました。

    • Support for OpenGL Shading Language 3.30 および shader bit encoding
      OpenGL 3.3 は GLSL 3.30 をサポートします。
      また、浮動小数点値のビットエンコーディングの取得/設定のための GLSL 組み込み関数を含みます。 (拡張機能の GL_ARB_shader_bit_encoding 相当の機能が標準機能となりました。)

    • blend func extended
      フラグメントシェーダの2つのカラー出力 (1つはソースカラー、もう1つはソースかディスティネーションカラーのどちらかのブレンド係数) に対応した新しいブレンド機能が追加されました。
      拡張機能の GL_ARB_blend_func_extended 相当の機能が標準機能となりました。

    • explicit attrib location
      名前付けられたバーテックスシェーダ入力のアトリビュートロケーションと 名前付けられたフラグメントシェーダ出力の色番号を事前にシェーダで指定できる機能が追加されました。 これで、アプリケーションはグローバルに特定の意味を割り当てることができます。 シェーダで属性に付けられた名前を知る事なしに、 拡散色や頂点の法線のように、 特定のアトリビュートロケーションに割り当てることができます。
      拡張機能の GL_ARB_explicit_attrib_location 相当の機能が標準機能となりました。

    • occlusion query2
      簡単な真偽値による遮蔽問い合わせ (より一般的なカウンタベースの問い合わせよりも十分なケースが多いため) が追加されました。
      拡張機能の GL_ARB_occlusion_query2 相当の機能が標準機能となりました。

    • sampler objects
      サンプラーオブジェクト(テクスチャ画像データからサンプラーステートを切り離します)が追加されました。
      サンプラーはテクスチャユニットにバインドされ、 そのテクスチャユニットのサンプリングステートに置き換わります。 サンプラーは同時に1つ以上のテクスチャユニットにバインドすることができます。 (1セットの共有されたサンプリングパラメータで異なるテクスチャにアクセスすることができます。) また、同じテクスチャ画像データを異なるサンプリングパラメータでサンプリングすることもできます。
      拡張機能の GL_ARB_sampler_objects 相当の機能が標準機能となりました。

    • texture rgb10 a2ui
      新しいテクスチャフォーマット(unsigned 10_10_10_2 整数型テクスチャ)が追加されました。
      拡張機能の GL_ARB_texture_rgb10_a2ui 相当の機能が標準機能となりました。

    • texture swizzle
      固定機能のテクスチャ環境に適応される前か、シェーダに返すテクスチャコンポーネントのスウィズル機能が追加されました。
      拡張機能の GL_ARB_texture_swizzle 相当の機能が標準機能となりました。

    • timer query
      レンダリングパイプラインを止めずに GL コマンドのセットを完全に完成するのにかかる時間を決定する オブジェクトベースの問い合わせメカニズムが追加されました。
      拡張機能の GL_ARB_timer_query 相当の機能が標準機能となりました。

    • instanced arrays
      頂点配列属性のインスタンス化機能が追加されました。
      頂点配列属性ごとに「divisor」配列を指定することができ、 divisor値が非ゼロの場合、属性はインスタンス化されます。 インスタンス化された属性はいつものように頂点毎に属性値を取得設定するのではなく、 divisor値回の概念的な描画コール毎に取得設定されます。
      拡張機能の GL_ARB_instanced_arrays 相当の機能が標準機能となりました。

    • vertex type 2_10_10_10
      2つの新しい頂点属性データフォーマット(singed/unsigned 2_10_10_10)が追加されました。
      拡張機能の GL_ARB_vertex_type_2_10_10_10_rev 相当の機能が標準機能となりました。



    なお、OpenGL 3.3 の新機能で推奨しない機能はありません。 OpenGL 3.2 で推奨しない機能はそのまま残っていますが、まだ削除されていません。

  • OpenGL 3.2 2009年8月3日にリリース


  • OpenGL 3.2 はジオメトリシェーダのサポートと、プロファイルの導入、DirextX からの移植性を考慮した機能追加が大きな特徴です。

    OpenGL 3.2 では、コアプロファイルと互換プロファイルを定義しました。
    互換プロファイルをサポートするか否かは実装に依存します。

    • Core Profile
      OpenGL 3.1 と上位互換。(OpenGL 3.0 以前とは非互換)
    • Compatibility Profile
      OpenGL 3.1 + GL_ARB_compatibility と上位互換。(OpenGL 3.0 以前と上位互換)

    OpenGL 3.1 で従来の固定機能パイプラインによる描画機能は、 GL_ARB_compatibility 拡張機能としてコアから外されましたが、OpenGL 3.2 ではこれを互換プロファイルとして定義しなおしました。

    次の新機能がサポートされました。

    • Support for OpenGL Shading Language 1.50.
      OpenGL 3.2 は GLSL 1.40 と 1.50 をサポートします。

    • BGRA vertex component ordering.
      頂点配列で BGRA コンポーネントをサポートします。 これは DirectX 10 の DXGI_FORMAT_B8G8R8A8_UNORM と同じ並びです。
      拡張機能の GL_ARB_vertex_array_bgra 相当の機能が標準機能となりました。

    • Drawing commands allowing modification of the base vertex index.
      ベース頂点インデックスの変更をサポートします。
      拡張機能の GL_ARB_draw_elements_base_vertex 相当の機能が標準機能となりました。

    • Shader fragment coordinate convention control.
      フラグメント座標系の変換機能をサポートします。
      例えば、GLSL では layout qualifier で origin_upper_left や pixel_center_integer に変更できます。 (デフォルトのフラグメント座標は、lower-left で XY の位置は (0.5, 0.5) です。 DirextX 10 のフラグメント座標は、upper-left で XY の位置は (0.5, 0.5) です。)
      拡張機能の GL_ARB_fragment_coord_conventions 相当の機能が標準機能となりました。

    • Provoking vertex control.
      FLAT シェーディングにおけるプリミティブカラーを決定する頂点を変更する機能です。
      OpenGL では、最後の頂点のカラーをプリミティブカラーに使用しますが、 これを最初の頂点のカラーに変更することができます。(QUAD は実装依存) DirectX では、最初の頂点のカラーをプリミティブカラーに使用します。
      拡張機能の GL_ARB_provoking_vertex 相当の機能が標準機能となりました。

    • Seamless cube map filtering.
      CUBE マップのサンプリングは、(s, t, r) 座標からサンプリングを行う面を決定した後は通常の2Dテクスチャの処理を行います。 このため、補間は面の境界部分で不連続になります。 これを隣接する面の間でも補間する拡張機能です。
      拡張機能の GL_ARB_seamless_cube_map 相当の機能が標準機能となりました。

    • Multisampled textures and texture samplers for specific sample locations.
      2Dテクスチャ, 2Dテクスチャ配列でマルチサンプリングをサポートします。
      拡張機能の GL_ARB_texture_multisample 相当の機能が標準機能となりました。

    • Fragment depth clamping.
      デプス値をクランプする機能をサポートします。 これにより奥行き方向でのクリッピング(near面/far面)が行われません。 (上下左右の4面はクリッピングの対象です。)
      主にシャドウボリュームの描画に有効な機能です。
      拡張機能の GL_ARB_depth_clamp 相当の機能が標準機能となりました。

    • Geometry shaders.
      ジオメトリシェーダをサポートします。
      拡張機能の GL_ARB_geometry_shader4 相当の機能が標準機能となりました。

    • Fence sync objects.
      フェンス同期オブジェクトをサポートします。
      拡張機能の GL_ARB_sync 相当の機能が標準機能となりました。

    OpenGL 3.2 コアプロファイルで新たに推奨しないもの:

    • GL_MAX_VARYING_COMPONENTS
    • GL_MAX_VARYING_FLOATS

    なお、OpenGL 3.2 互換プロファイルでは、新たな推奨しない機能はありません。

    次のトークンが変更になりました。(互換性のために古いトークンも使えます。)

    • Changed Tokens

      新しいトークン古いトークン
      GL_PROGRAM_POINT_SIZEGL_VERTEX_PROGRAM_POINT_SIZE

  • OpenGL 3.1 2009年3月24日にリリース


  • OpenGL 3.1 からは OpenGL ES 2.0 のようにプログラムパイプライン(シェーダ)による描画機能のみとなりました。 一部の例外を除き、OpenGL 3.0 で推奨されない機能として定義された 従来の固定機能パイプラインによる描画機能は GL_ARB_compatibility 拡張機能に移りました。
    このため、 GL_ARB_compatibility 拡張機能をサポートしていない環境では、 従来の固定機能パイプラインを用いたプログラムは実行できないことに注意してください。

    例外:
    • 1.0 より大きな LINE_WIDTH はサポートされます。


    次の新機能がサポートされました。

    • Support for OpenGL Shading Language 1.30 and 1.40
      OpenGL 3.1 としては GLSL 1.30 と 1.40 をサポートします。
      少なくとも GLSL 1.30 以降のバージョンが実装されます。 実際に実装されている GLSL のバージョンは、SHADING_LANGUAGE_VERSION で確認してください。

    • Instanced rendering with a per-instance counter accessible to vertex shaders
      拡張機能の GL_ARB_draw_instanced 相当の機能が標準機能となりました。

    • Data copying between buffer objects
      バッファオブジェクト間のデータコピー
      拡張機能の GL_ARB_copy_buffer 相当の機能が標準機能となりました。

    • Primitive restart
      拡張機能の GL_NV_primitive_restartが標準機能となりました。
      ただし、PRIMITIVE_RESTART はサーバステートとなり、 NV バージョンとはトークンが異なります。

    • texture image units
      バーテックスシェーダで少なくとも16個の texture image units が利用できます。

    • Texture buffer objects
      テクスチャバッファオブジェクトのサポート。
      拡張機能の GL_ARB_texture_buffer_object 相当の機能が標準機能となりました。

    • Rectangular textures
      レクタングルテクスチャのサポート。
      拡張機能の GL_ARB_texture_rectangle 相当の機能が標準機能となりました。

    • Uniform buffer objects
      拡張機能の GL_ARB_uniform_buffer_object 相当の機能が標準機能となりました。

    • Signed normalized texture component formats
      SIGNED_NORMALIZED タイプのサポート。


    なお、OpenGL 3.1 の新機能で推奨しない機能はありません。


注意: 洋書です。
3.0, 3.1 対応(第7版)




注意: 洋書です。

プログラミングガイド(第7版)
OpenGL Shading Language(第3版)
2冊セット

  • OpenGL 3.0 2008年8月11日にリリース


  • OpenGL 3.0 で フル 3.0 コンテキストを使用する場合は完全上位互換です。 (OpenGL 1.0 から OpenGL 2.1 までの全ての機能を含みます。)

    前方互換コンテキストを使用する場合は、推奨されない機能(OpenGL 2.1 までの機能の多く)がサポートされずエラーが発生します。
    前方互換コンテキストをサポートする場合、 拡張機能の WGL_ARB_create_context等を用いることで前方互換コンテキストを使用することができます。

    次の機能拡張が実装されました。

    • OpenGL Shading Language
      OpenGL Shading Language 1.30 (GLSL 1.30)以降のサポートが必須となりました。 GLSL 1.10, 1.20 も推奨されませんが、サポートしています。

    • API support for the new texture lookup, texture format, and integer and unsigned integer capabilities of the OpenGL Shading Language 1.30 specification
      拡張機能の GL_EXT_gpu_shader4が標準機能となりました。

    • Conditional rendering
      拡張機能のGL_NV_conditonal_renderが標準機能となりました。

    • Fine control over mapping buffer subranges into client space and flushing modified data
      拡張機能のGL_APPLE_flush_buffer_rangeが標準機能となりました。

    • Floating-point color and depth internal formats for textures and renderbuffers
      拡張機能の GL_ARB_color_buffer_float 相当の機能が標準機能となりました。
      拡張機能の GL_NV_depth_buffer_floatが標準機能となりました。
      拡張機能の GL_ARB_texture_float 相当の機能が標準機能となりました。
      拡張機能の GL_EXT_packed_floatが標準機能となりました。
      拡張機能の GL_EXT_texture_shared_exponentが標準機能となりました。

    • Framebuffer objects
      拡張機能の GL_EXT_framebuffer_objectが標準機能となりました。

    • Half-float (16-bit) vertex array and pixel data formats half float pixel
      拡張機能の GL_NV_half_floatが標準機能となりました。
      拡張機能の GL_ARB_half_float_pixel 相当の機能が標準機能となりました。

    • Multisample stretch blit functionality
      拡張機能の GL_EXT_framebuffer_multisampleが標準機能となりました。
      拡張機能の GL_EXT_framebuffer_blitが標準機能となりました。

    • Non-normalized integer color internal formats for textures and renderbuffers
      拡張機能の GL_EXT_texture_integerが標準機能となりました。

    • One- and two-dimensional layered texture targets
      拡張機能の GL_EXT_texture_arrayが標準機能となりました。

    • Packed depth/stencil internal formats for combined depth+stencil textures and renderbuffers
      拡張機能の GL_EXT_packed_depth_stencilが標準機能となりました。

    • Per-color-attachment blend enables and color writemasks
      拡張機能の GL_EXT_draw_buffers2が標準機能となりました。

    • RGTC specific internal compressed formats
      拡張機能の GL_EXT_texture_compression_rgtcが標準機能となりました。

    • Transform feedback
      拡張機能の GL_EXT_transform_feedbackが標準機能となりました。

    • Vertex array object
      拡張機能の GL_APPLE_vertex_array_objectが標準機能となりました。

    • sRGB framebuffer mode
      拡張機能の GL_EXT_framebuffer_sRGBが標準機能となりました。



    次の機能が非推奨となりました。(将来、削除される予定です。)

    • Application-generated object names
      buffer, query, texture objects は glGen* で作成しなければなりません。 glGen* で返された値でないものを使用すると INVALID OPERATION が発生します。

    • Color index mode [OpenGL ES 相当]
      カラーインデックスモードは推奨されません。

    • OpenGL Shading Language versions 1.10 and 1.20
      GLSL 1.10, 1.20 は推奨されません。これらは推奨しない API に依存するためです。 GLSL 1.30 以降を使用してください。

    • Begin / End primitive specification [OpenGL ES 相当]
      glBegin/glEnd でプリミティブを定義するのは推奨されません。 属性配列を使用してください。 しかしながら、glVertexAttrib*と現在の頂点属性は、属性配列に省略時の値を提供するために保有されます。

    • Edge flags and fixed-function vertex processing [OpenGL ES 2.0 相当]
      glColorPointer, glEdgeFlagPointer, glFogCoordPointer, glIndexPointer, glNormalPointer, glSecondaryColorPointer, glTexCoordPointer, glVertexPointer, glEnableClientState, glDisableClientState, glClientActiveTexture は推奨されません。 属性配列に置き換わっているものは属性配列を使用してください。

      glFrustum, glLoadIdentity, glLoadMatrix, glLoadTransposeMatrix, glMatrixMode, glMultMatrix, glMultTransposeMatrix, glOrtho, glPopMatrix, glPushMatrix, glRotate, glScale, glTranslate は推奨されません。 シェーダで同等の処理を行って下さい。

      glEnable/glDisable による GL_RESCALE_NORMAL, GL_NORMALIZE の有効化/無効化処理は推奨されません。 シェーダで同等の処理を行って下さい。

      テクスチャ座標の自動生成機能 glTexGen* と glEnable/glDisable による GL_TEXTURE_GEN_* の指定は推奨されません。 シェーダで同等の処理を行って下さい。

      glMaterial*, glLight*, glLightModel*, glColorMaterial と glEnable/glDisable による GL_LIGHTING の指定は推奨されません。 GL_VERTEX_PROGRAM_TWO_SIDE, glLIGHTi と GL_COLOR_MATERIAL の指定は推奨されません。 シェーダで同等の処理を行って下さい。

      全ての頂点配列、マルチテクスチャ、マトリックス、マトリックススタック、法線とテクスチャコーディネート、 ライティングのステートは推奨されません。 シェーダで同等の処理を行って下さい。

      エッジフラグは常に TRUE として扱います。

      glFrontFace、glClampColor、glShadeModel は非推奨ではないことに注意してください。

    • Client vertex arrays
      全ての頂点属性配列は デフォルトの頂点属性配列オブジェクト(ネームがゼロ)は推奨されません。
      バッファオブジェクトまたは頂点配列オブジェクトがバインドされていない状態で glVertexAttribPointer を呼ぶと、 INVALID OPERATION エラーが発生します。

    • Rectangles [OpenGL ES 相当]
      glRect* は推奨されません。他のプリミティブで代用してください。

    • Current raster position [OpenGL ES 相当]
      glRasterPos*, glWindowPos* と 関連ステートは推奨されません。

    • Two-sided color selection [OpenGL ES 相当]
      表面と裏面の色分けは推奨されません。

    • Non-sprite points [OpenGL ES 2.0 相当]
      GL_POINT_SMOOTH, GL_POINT_SPRITE と関連ステートは推奨されません。
      点は常にポイントスプライトが有効となります。

    • Wide lines and line stipple
      glLineWidth は非推奨ではありませんが、1.0より大きな値は INVALID_VALUE エラーが発生します。
      glLineStipple と glEnable/glDisable による GL_LINE_STIPPLE の指定は推奨されません。

    • Quadrilateral and polygon primitives [OpenGL ES 相当]
      GL_POLYGON, GL_QUADS, GL_QUAD_STRIP、非三角形ポリゴンのラスタライズ化および関係ステートは推奨されません。

    • Separate polygon draw mode
      glPolygonMode の GL_FRONT と GL_BACK の どの面がラスタライズされても、多角形は同じモードでいつも描かれます。

    • Polygon Stipple [OpenGL ES 相当]
      glPolygonStipple と glEnable/glDisable による GL_POLYGON_STIPPLE の指定、 および関係ステートは推奨されません。

    • Pixel transfer modes and operations
      all pixel transfer modes, including pixel maps, shift and bias, color table lookup, color matrix, and convolution に関係するコマンドおよび関係ステートは推奨されません。

    • Pixel drawing [OpenGL ES 相当]
      glDrawPixels と glPixelZoom は推奨されません。

    • Bitmaps [OpenGL ES 相当]
      Bitmaps は推奨されません。

    • Legacy OpenGL 1.0 pixel formats
      glTexImage* や他のコマンドで、内部形式として 値1、2、3、および4 を指定することは推奨されません。

    • Legacy pixel formats
      全ての外部形式、内部形式の GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY は推奨されません。

    • Depth texture mode
      GL_DEPTH_TEXTURE_MODE は推奨されません。 GLSL 1.30 ではデプステクスチャサンプラーは (r, r, r, 1) を常に返します。

    • Texture wrap mode CLAMP [OpenGL ES 相当]
      テクスチャパラメタの GL_TEXTURE_WRAP_S、GL_TEXTURE_WRAP_T、 GL_TEXTURE_WRAP_R で GL_CLAMP の使用は推奨されません。

    • Texture borders [OpenGL ES 相当]
      glTexImage* のボーダーは常に 0 でなければなりません。 glTexParameter で GL_TEXTURE_BORDER_COLOR を指定することや、 texture wrap モードで GL_CLAMP_TO_BORDER を指定すること、 および関連ステートは推奨されません。

    • Automatic mipmap generation
      自動ミップマップ生成機能である glTexParameter で GL_GENERATE_MIPMAP を指定することおよび関連ステートは推奨されません。

    • Fixed-function fragment processing [OpenGL ES 2.0 相当]
      glAreTexturesResident, glPrioritizeTextures, glTexParameter で GL_TEXTURE_PRIORITY を指定することは推奨されません。
      glTexEnv で GL_TEXTURE_ENV に関連するパラメータの設定は推奨されません。
      glEnable/glDisable で GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_CUBE_MAP を設定することは推奨されません。
      glEnable/glDisable で GL_COLOR_SUM を設定することは推奨されていません。
      glEnable/glDisable で GL_FOG を設定することや glFog と関連パラメータの設定、および関連ステートは推奨されていません。

    • Alpha test [OpenGL ES 2.0 相当]
      glAlphaFunc と glEnable/glDisable で GL_ALPHA_TEST を設定すること、および関連ステートは推奨されません。

    • Accumulation buffers [OpenGL ES 相当]
      glClearAccum と glClear で GL_ACCUM_BUFFER_BIT を設定すること、および関連ステートは推奨されません。
      glAccum は推奨されません。
      アキュムレーションバッファのコンポーネントサイズを示すフレームバッファステートの GL_ACCUM_*_BITS および関連ステートは推奨されません。
      GLX や WGL のようなウィンドウバインディング API では、アキュムレーションバッファをサポートしないものを選択するか、 あるいはアキュムレーションバッファを無視します。

    • Context framebuffer size queries
      フレームバッファサイズを示す GL_RED_BITS, GL_GREEN_BITS, GL_BLUE_BITS, GL_ALPHA_BITS, GL_DEPTH_BITS, GL_STENCIL_BITS は推奨されません。

    • Evaluators [OpenGL ES 相当]
      glMap*, glEvalCoord*, glMapGrid*, glEvalMesh*, glEvalPoint* と glEnable/glDisable で全ての evaluator map の設定、および関連ステートは推奨されません。

    • Selection and feedback modes [OpenGL ES 相当]
      glRenderMode, glInitNames, glPopName, glPushName, glLoadName, glSelectBuffer, glFeedbackBuffer, glPassThrough および関連ステートは推奨されません。

    • Display lists [OpenGL ES 相当]
      glNewList, glEndList, glCallList, glCallLists, glListBase, glGenLists, glIsList, glDeleteLists および関連ステートは推奨されません。

    • Hints
      glHint で GL_PERSPECTIVE_CORRECTION_HINT, GL_FOG_HINT, GL_GENERATE_MIPMAP_HINT を設定することは推奨されていません。

    • Attribute stacks [OpenGL ES 相当]
      glPushAttrib, glPushClientAttrib, glPopAttrib, glPopClientAttrib, GL_MAX_ATTRIB_STACK_DEPTH, GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, GL_ALL_ATTRIB_BITS, GL_CLIENT_ALL_ATTRIB_BITS は推奨されません。

    • Unified extension string
      glGetString で GL_EXTENSIONS を指定することは推奨されません。

    • Token names and queries
      これまでに言及していない推奨しないステートに対するトークンとクエリーの全て。 推奨しないステートであるエントリーポイントについてのクエリー。


    次のトークンが変更になりました。(互換性のために古いトークンも使えます。)


    • Changed Tokens

      新しいトークン古いトークン
      GL_COMPARE_REF_TO_TEXTUREGL_COMPARE_R_TO_TEXTURE
      GL_MAX_VARYING_COMPONENTSGL_MAX_VARYING_FLOATS
      GL_MAX_CLIP_DISTANCESGL_MAX_CLIP_PLANES
      GL_CLIP_DISTANCEiGL_CLIP_PLANEi


注意: 洋書です。
3.0, 3.1 対応(第7版)

  • OpenGL 2.1 2006年8月2日にリリース


  • 次の機能拡張が実装されました。

    • OpenGL Shading Language
      OpenGL Shading Language 1.20 (GLSL 1.20)以降のサポートが必須となりました。

    • Non-Square Matrices
      glUniformMatrix{2x3, 3x2, 2x4, 4x2, 3x4, 4x3}fv が実装されました。

    • Pixel Buffer Objects
      拡張機能のGL_ARB_pixel_buffer_object 相当の機能が標準機能となりました。

    • sRGB Textures
      拡張機能のGL_EXT_texture_sRGB 相当の機能が標準機能となりました。



注意: 洋書です。
第6版

  • OpenGL 2.0 2004年9月7日にリリース


  • 次の機能拡張が実装されました。

    • Programmable Shader
      OpenGL Shading Language 1.10 (GLSL 1.10) が標準機能となりました。

      拡張機能の GL_ARB_shader_objects, GL_ARB_vertex_shader, GL_ARB_fragment_shader, GL_ARB_shading_language_100 相当の機能が標準機能となりました。

      標準化にともない、API の一部が変更になりました。 (例: glHandleARB -> gluint, glCreateShaderObjectARB -> glCreateShader 他)

    • Multiple Render Targets
      拡張機能のGL_ARB_draw_buffers 相当の機能が標準機能となりました。
      GL_ARB_fragment_program, GL_ARB_fragment_shader に対して複数のバッファへの書き込みを可能とします。

    • Non-Power-Of-Two Textures
      拡張機能のGL_ARB_texture_non_power_of_two 相当の機能が標準機能となりました。
      テクスチャサイズにおける2のべき乗の制限が緩和されました。

    • Point Sprites
      拡張機能のGL_ARB_pint_sprite 相当の機能が標準機能となりました。
      ポイントスプライトのテクスチャ座標の原点を決定するためにglPointParameterに GL_POINT_SPRITE_COORD_ORIGINが追加されました。
      GL_UPPER_LEFTは左上が原点(デフォルト)。GL_LOWER_LEFTは左下が原点です。

    • Separate Blend Equation
      拡張機能のGL_EXT_blend_equation_separateが標準機能となりました。
      RGB と A で別々に blend equation の設定が可能となりました。

    • Separate Stencil
      拡張機能のGL_ATI_separate_stencilが標準機能となりました。
      表面と裏面でのステンシル処理を個々に設定することができます。
      GL_INCR_WRAP, GL_DECR_WRAP が追加されました。
      主にステンシルシャドウ用のシャドウボリュームのレンダリングに用います。

    • その他
      • glSecondaryColor3
        A を 1.0 に変更(以前は 0.0)











[3D TOPメニュー]
[OpenGL] [irisGL] [VRML] [作品集] [イエローページ]
[書籍紹介] [DVD]
[この Web ページについて] [アンケート] [予定]
[OpenGLストア]

[Namazu TOPメニュー]