ユーザ用ツール

サイト用ツール


opengl:opengllist

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
opengl:opengllist [2014/04/16 20:47] – [OpenGL ES 3.0] ogaopengl:opengllist [2014/04/20 01:25] – [OpenGL ES 3.1] oga
行 39: 行 39:
     * Pixel Shader の Program サイズは、Color 64 step + Texture 32 step の合計 96 step のみ     * Pixel Shader の Program サイズは、Color 64 step + Texture 32 step の合計 96 step のみ
     * Texture Fetch 制限が分離 (同じテクスチャを複数読める) ただし上限あり     * Texture Fetch 制限が分離 (同じテクスチャを複数読める) ただし上限あり
-    * Fog など固定機能を併用する+    * Fog / AlphaTest など固定機能を併用する
     * 汎用補間 Register (varying) はなく Texcoord0~ を流用する。     * 汎用補間 Register (varying) はなく Texcoord0~ を流用する。
  
行 70: 行 70:
 Mobile 向け GPU の高機能化に伴い、新しい世代の GPU 用に策定された API です。 Mobile 向け GPU の高機能化に伴い、新しい世代の GPU 用に策定された API です。
  
-OpenGL 3.x のモバイル向け API で、DirectX でいえば Direct3D 10 に相当します。+OpenGL 3.x のモバイル向け API で、DirectX でいえば Direct3D 10 世代に相当します。
  
 Desktop 向けではこの世代から完全に Shader only となり、固定機能や古いシェーダー機能などレガシー API を削除しました。 Desktop 向けではこの世代から完全に Shader only となり、固定機能や古いシェーダー機能などレガシー API を削除しました。
行 96: 行 96:
  
  
 +機能的には Direct3D10 /  OpenGL 3.3 から機能を削減したものに相当します。
 +削除された機能でわかりやすいのは GeometryShader でしょう。
 +Direct3D 10 の目玉のひとつでしたが、OpenGL で対応したのは OpenGL 3.2 からです。
 +OpenGL 3.0/3.1 には GeometryShader がなかったので、OpenGL ES 3.0 によく似ているといえます。
  
 +シェーダープログラムの汎用化が進み、
 +リソースはすべてバッファとして統合されました。
  
 +カラーチャンネルも R G B A (x y z w) が等しい扱いとなりました。
 +D3D9/GL2 世代までは Color と Alpha で差がありました。
 +1ch Texture は Luminance か Alpha の 2択。D3D10/GL3 世代からは、1ch は基本的に R (x) で統一。
  
 +VertexShader , PixelShader の機能的な区別も完全に無くなっています。
  
  
 +ところが Mobile 向け GPU の多くは OpenGL ES 2.0 (ShaderModel 3.0) の時点で Unified Shader 化されたものが多かったので、
 +それほど目新しさがありません。
 +MRT 対応化など、最低要件を引き上げたことが重要なポイントといえるでしょう。
  
  
  
  
 +===== OpenGL ES 3.1 =====
  
 +バージョン番号は 0.1 とマイナーなアップデートですが、
 +仕様的には OpenGL ES 3.0 よりもさらに 1世代上に相当します。
  
 +OpenGL ES 3.1 は Direct3D 11 / OpenGL 4.x のモバイル向け API です。
 +最大の特徴は Compute Shader に対応したこと。
  
 +ただし Tessellator は存在しておらず、Direct3D 11 の特徴のひとつであった HalShader / DomainShader がありません。
 +Tessellator は Rasterizer と同じで HW 固定機能のサポートが必要です。
 +ハードウエアの負担を減らしつつ、効果的な機能を優先したためではないかと考えられます。
  
 +また OpenGL ES 3.0 世代の GPU は OpenCL に対応しているものが少なくありません。
 +すでに ComputeShader を走らせるだけの機能が GPU に備わっていたことも理由のひとつといえるのではないでしょうか。
  
 +  * [[http://wlog.flatlib.jp/archive/1/2014-3-18|2014/03/18 OpenGL ES 3.1 は OpenGL 4.x 相当で ComputeShader に対応]]
  
  
- +^ OpenGL        ^ GLSL       ^ 
- +| OpenGL ES 2.0 | GLSL 1.0   | 
- +| OpenGL 2.0    | GLSL 1.1   | 
- +| OpenGL 2.1    | GLSL 1.2   | 
- +| OpenGL 3.0    | GLSL 1.3   | 
- +| OpenGL 3.1    | GLSL 1.4   | 
- +| OpenGL 3.2    | GLSL 1.5       | 
- +| OpenGL ES 3.0 | GLSL 3.0 (es)  | 
- +| OpenGL ES 3.1 | GLSL 3.1 (es)  | 
 +| OpenGL 3.3    | GLSL 3.3   | 
 +| OpenGL 4.0    | GLSL 4.0   | 
 +| OpenGL 4.1    | GLSL 4.1   | 
 +| OpenGL 4.2    | GLSL 4.2   | 
 +| OpenGL 4.3    | GLSL 4.3   | 
 +| OpenGL 4.4    | GLSL 4.4   |
  
  
opengl/opengllist.txt · 最終更新: 2014/10/26 15:57 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki