findvis, findpix2 ver.0.5.0


○ findvis (findpix) とは

 OpenGL は、サブセットを許さないものですが、ハードウェアの違いにより、サポートしている機能に違いがあります。そのため、全ての環境で同じアプリケーションが動作するとは限りません。
 より多くのマシンで動作するプログラムを作成するには、様々なハードウェアでサポートしている機能についての情報を得ることが重要となります。
 findvis は、使用している X サーバのサポートしている情報を得るためのプログラムです。

 findpix とは、小田@QNESさんの作成された Windows NT 版の findvis です。
 findpix は、X サーバのビジュアルに相当するピクセル・フォーマットに関す る情報を得るためのプログラムです。
 findpix2 は、Windows 9x,Me/NT,2000,XP で動作するように、findpix を修正したものです。
 同様のプログラムに、永谷真澄さんの PIXELFMT があります。

より詳しくは、ここをクリックしてください。


○ findvis の出力結果の解説

 findvis の出力結果は、OpenGL をサポートしているビジュアルごとに表示さ
 れます。行の先頭は、ビジュアル ID が表示されます。
 
 [フレーム・バッファのレベル]
  overlay ....... オーバーレイ(上層のフレーム・バッファ)
  underlay ...... アンダーレイ(下層のフレーム・バッファ)
       ...... 通常のフレームバッファ(レベル0)

    補足)・フレーム・バッファのレベルは、上記の3つのうちのいづれかになり
        ます。
         ・残念ながら overlay, underlay をサポートしているシステムは、多
          くはありません。
 
 [カラー・モード]
  CI bit ........ カラー・インデックス・モードのビット数
  RGBA r/g/b/a .. RGBAカラー・モードのR/G/B/Aの各ビット数

    補足) カラー・モードは、CI, RGBA のどちらかになります。

 [その他の情報]
  db ............ ダブル・バッファ(前後バッファ)
  stereo ........ ステレオ・バッファ(左右バッファ)
  aux num ....... 補助カラー・バッファの数
  Z depth ....... デプス・バッファのビット数
  S depth ....... ステンシル・バッファのビット数
  accum r/g/b/a . アキュムレーション・バッファのR/G/B/Aの各ビット数

    補足)・各ビジュアルで、サポートされていない場合は、表示されません。
       ・aux をサポートしているシステムは、ほとんどありません。

 [SGI拡張]
  samples num ... SGI マルチ・サンプリング数

    補足) IRIX 5.3 の OpenGL で拡張されたものですが、詳細は不明です。


 例えば、findvis を Indigo2 Extreme で実行すると、次のような結果が出力
 されます。

 0x20, overlay, CI 2
 0x21, overlay, CI 2
 0x22, overlay, CI 4
 0x23, CI 4, db, Z 20, S 4
 0x24, RGBA, 1/2/1/0, db, Z 20, S 4, accum 16/16/16/16
 0x25, CI 8, Z 20, S 4
 0x27, RGBA, 3/3/2/0, Z 20, S 4, accum 16/16/16/16
 0x28, CI 12, db, Z 24
 0x29, CI 12, db, Z 20, S 4
 0x2a, CI 12, Z 24
 0x2b, CI 12, Z 20, S 4
 0x2c, RGBA, 4/4/4/0, db, Z 24, accum 16/16/16/16
 0x2d, RGBA, 4/4/4/0, db, Z 20, S 4, accum 16/16/16/16
 0x2e, RGBA, 8/8/8/0, Z 24, accum 16/16/16/16
 0x2f, RGBA, 8/8/8/0, Z 20, S 4, accum 16/16/16/16
 0x31, RGBA, 8/8/8/0, accum 16/16/16/16

 解説)・16種類のビジュアルをサポートしています。
      ・overlay をサポートしています。
      ・アルファ・プレーンは、サポートされていません。
      ・デプス・バッファは最大で24bitです。
      ・ステンシル・バッファは4bitです。この時、デプス・バッファは20
        bitとなります。 
      ・accum をサポートしています。

○ findpix2 の出力結果の解説

 findpix2 の出力結果は、まずディスプレイ情報が表示されます。その後に、
 ピクセルフォーマットごとに情報が表示されます。行の先頭は、ピクセルフォー
 マットの番号が表示されます。

 [ディスプレイ情報]
  Display N x M . ディスプレイのサイズ
  color n bits .. カラーバッファのビット数
  color n ....... 色数

    補足)・color n bits または color n のいづれかが表示されます。


 <<<ピクセルフォーマット情報>>>  [pixelformat番号]   # の後に、pixelformat 番号が表示されます。   先頭が $ 表記になっているものは、ChoosePixelFormat で選択出来なかっ   たものです。( ) 内がChoosePixelFormat で帰ってきた pixelformat 番号。   (version 0.3.2 以降)  [フレーム・バッファのレベル(レイヤ・タイプ)]   overlay ....... オーバーレイ(上層のフレーム・バッファ)   underlay ...... アンダーレイ(下層のフレーム・バッファ)        ...... 通常のフレームバッファ(レベル0) 補足)・フレーム・バッファのレベルは、上記の3つのうちのいづれかになり     ます。 ・現在、使われていない旧形式です。新しい形式は、レイヤ情報を ご覧ください。  [カラー・モード]   CI bit ........ カラー・インデックス・モードのビット数   RGBA r/g/b/a .. RGBAカラー・モードのR/G/B/Aの各ビット数 [r/g/b/a]. R/G/B/A の各ビットがカラービットの第何ビット目から 割り当てられているか 補足) カラー・モードは、CI, RGBA のどちらかになります。  [その他の情報]   db ............ ダブル・バッファ(前後バッファ)   stereo ........ ステレオ・バッファ(左右バッファ)   aux num ....... 補助カラー・バッファの数   Z depth ....... デプス・バッファのビット数   S depth ....... ステンシル・バッファのビット数   accum r/g/b/a . アキュムレーション・バッファのR/G/B/Aの各ビット数 補足)・各ピクセルフォーマットで、サポートされていない場合は、表示さ     れません。  [バッファ情報]   WIN ........... Window に描画可能(デバイスDCに描画可能)   BMP ........... メモリ・ビットマップに描画可能(メモリDCに描画可能)   GDI ........... GDI関数 を使ってDCに描画可能   GL ............ OpenGL をサポート   GFMT .......... ピクセル形式がジェネリック形式   GACC .......... GFMT と共にセットされている場合、ジェネリック形式           をアクセラレート(OpenGL 1.1以上)   PAL ........... パレット使用デバイスでRGBAカラーを使用   SPAL .......... ハードウェア・パレット   SWCP .......... バッファがスワップされるときに、バックバッファを           フロントバッファにコピー(OpenGL 1.1以上)   SWEX .......... バッファがスワップされるときに、バックバッファと           フロントバッファと交換(OpenGL 1.1以上)  (補足)   IDC ドライバ、MCD ドライバで、ハードウェアアクセラレータが働く条件   は、次の通りです。          | GFMT | GACC |   ------------+------+------+-----------   IDCドライバ |  0 |  - |Accelerated   ------------+------+------+-----------   MCDドライバ |  1 |  1 |Accelerated   ------------+------+------+-----------   * 上記以外の組み合わせは、"Not Accelerated."  [レイヤ情報]   SWL ........... wglSwapLayerBuffers をサポート   overlay bit .... オーバーレイプレーン数   underlay bit ... アンダーレイプレーン数
 <<<レイヤプレーン情報>>>  オーバーレイまたはアンダーレイプレーンを持つピクセルフォーマットの  場合、ピクセルフォーマット情報の次の行には、レイヤプレーン情報が表示  されます。  [プレーン番号]   o ............. オーバーレイプレーン番号(1 から 最大15)   u ............. アンダーレイプレーン番号(1 から 最大15)  [カラー・モード]   CI bit ........ カラー・インデックス・モードのビット数   RGBA r/g/b/a .. RGBAカラー・モードのR/G/B/Aの各ビット数 [r/g/b/a]. R/G/B/A の各ビットがカラービットの第何ビット目から 割り当てられているか 補足) カラー・モードは、CI, RGBA のどちらかになります。  [その他の情報]   db ............ ダブル・バッファ(前後バッファ)   stereo ........ ステレオ・バッファ(左右バッファ)   aux num ....... 補助カラー・バッファの数   Z depth ....... デプス・バッファのビット数   S depth ....... ステンシル・バッファのビット数   accum r/g/b/a . アキュムレーション・バッファのR/G/B/Aの各ビット数   T r/g/b ....... 透過色R/G/B(カラー・モードの場合)   T index ....... 透過色インデックス番号(CI モードの場合) 補足)・各ピクセルフォーマットで、サポートされていない場合は、表示さ     れません。  [バッファ情報]   GDI ........... GDI関数 を使ってDCに描画可能   GL ............ OpenGL をサポート   SWEX .......... ダブルバッファで SwapBuffer の際、フロントバッファ           とバックバッファを入れ替えます。   SWCP .......... ダブルバッファで SwapBuffer の際、バックバッファ           の内容をフロントバッファにコピーします。   SHD ........... メインプレーンのデプスバッファと共有   SHS ........... メインプレーンのステンシルバッファと共有   SHA ........... メインプレーンのアキュムレーションバッファと共有
 例えば、findpix2 を実行すると、次のような結果が出力されます。 Find Pixelformat : OpenGL for Windows 9X,Me/NT,2000,XP ver. 0.2.1 K.Oda ver. 0.3.1 T.Teranishi ver. 0.3.2 K.Oda and T.Teranishi ver. 0.4.0 T.Teranishi ver. 0.5.0 T.Teranishi Display 1152 x 864 : color 32 bits # 1, RGBA 8/8/8/0, Z 32, S 8, accum 16/16/16/0, WIN, BMP, GDI, GL, GFMT # 2, RGBA 8/8/8/0, Z 16, S 8, accum 16/16/16/0, WIN, BMP, GDI, GL, GFMT # 3, RGBA 8/8/8/0, db, Z 32, S 8, accum 16/16/16/0, WIN, GL, GFMT # 4, RGBA 8/8/8/0, db, Z 16, S 8, accum 16/16/16/0, WIN, GL, GFMT # 5, CI 32, Z 32, S 8, WIN, BMP, GDI, GL, GFMT # 6, CI 32, Z 16, S 8, WIN, BMP, GDI, GL, GFMT # 7, CI 32, db, Z 32, S 8, WIN, GL, GFMT # 8, CI 32, db, Z 16, S 8, WIN, GL, GFMT # 9, RGBA 8/8/8/0, Z 32, S 8, accum 16/16/16/0, BMP, GDI, GL, GFMT #10, RGBA 8/8/8/0, Z 16, S 8, accum 16/16/16/0, BMP, GDI, GL, GFMT #11, CI 24, Z 32, S 8, BMP, GDI, GL, GFMT #12, CI 24, Z 16, S 8, BMP, GDI, GL, GFMT #13, RGBA 5/6/5/0, Z 32, S 8, accum 11/11/10/0, BMP, GDI, GL, GFMT #14, RGBA 5/6/5/0, Z 16, S 8, accum 11/11/10/0, BMP, GDI, GL, GFMT #15, CI 16, Z 32, S 8, BMP, GDI, GL, GFMT #16, CI 16, Z 16, S 8, BMP, GDI, GL, GFMT #17, RGBA 3/3/2/0, Z 32, S 8, accum 11/11/10/0, BMP, GDI, GL, GFMT #18, RGBA 3/3/2/0, Z 16, S 8, accum 11/11/10/0, BMP, GDI, GL, GFMT #19, CI 8, Z 32, S 8, BMP, GDI, GL, GFMT #20, CI 8, Z 16, S 8, BMP, GDI, GL, GFMT #21, RGBA 1/1/1/0, Z 32, S 8, accum 5/6/5/0, BMP, GDI, GL, GFMT #22, RGBA 1/1/1/0, Z 16, S 8, accum 5/6/5/0, BMP, GDI, GL, GFMT #23, CI 4, Z 32, S 8, BMP, GDI, GL, GFMT #24, CI 4, Z 16, S 8, BMP, GDI, GL, GFMT  解説)・32 bit TRUECOLOR の結果です。   ・24 個の全てのピクセルフォーマットでOpenGLが利用できます。   ・Window 表示ができるピクセルフォーマットは8つあります。   ・アルファ・プレーンは、サポートされていません。   ・デプス・バッファは最大で32bitです。

○ OpenGL と Mesa の違い

 現在、Mesa は overlay, underlay をサポートしていません。また stereo もサポートしていません。デプス・バッファ、ステンシル・バッファはソフトウェアによる実装のため、割り当てられるビット数は比較的多くなっています。(*1)
 ハードウェアにアルファ・プレーンがなくとも、ソフトウェアによって実装していますので、全ての混合処理が可能となっています。(*2)

 Mesa では、ダブル・バッファのビジュアルで、同じビットのシングル・バッファが確保できます。

 Mesa では、CI モードを findvis で発見することができません。これは、Mesa の側の問題ですが、findvis を Mesa に対応した方がいいのかもしれません。(Mesa では、環境変数で CI モードのビジュアルを指定します。)

 OpenGL では、CI モードのビジュアルと、RGB モードのビジュアルを少なくとも1つずつはサポートすることになっていますが、Mesa ではその限りではありません。裏を返せば、OpenGL の実装に最低必要なビジュアルすらサポートしていない X サーバであっても、Mesa なら動かすことができます。

 Mesa はソフトウェアで、カラー・バッファを除いた重要なバッファのサポートを行っています。そのため、バッファ関係で問題になることは、あまりありません。
 例えば、overlay がなくとも、それが必要になることは少ないでしょう。


 *1) Mesa 1.2.7 では、デプス・バッファは 16bit になりました。
     Mesa 1.2.8 では、overlay に対応しています。

 *2) Mesa 1.2.7 では、24bit モードでなければ、A プレーンをサポートしなく
 なりました。これは、高速化のためだと考えられますが、残念です。

○ findvis (findpix2) の入手方法

 Indigo2 IMPACT には、標準で findvis がインストールされてます。  (オンライン・マニュアルもあります。)

 findvis は、

ftp://ftp.sgi.co.jp/pub/sgi/opengl/contrib/visinfo.tar.Z
 から取り出せます。

 findpix2 は、

http://www.asahi-net.or.jp/~yw3t-trns/public/opengl/findpix2.exe
 から取り出せます。(Lha 自己解凍形式)

○ findvis(findpix2) の出力結果の入手方法

 本資料は、
http://www.asahi-net.or.jp/~yw3t-trns/public/opengl/findvis.zip
 から取り出せます。

○ 注意事項

 findvis (findpix) の出力結果は、コピー、使用は自由に行えますが、使用にあたっては使用者自信の責任の下に行って下さい。編集者および OpenGL-ML のメンバは何の保証もしませんし、本資料を使用したことによって生じた損害を補償する義務も負いません。
 編集者および OpenGL-ML のメンバは、本資料に不備があったとしても、それを修正する義務を負いません。
 本資料は、予告なく修正、追加を行うことがあります。

RED 最新版について

 最新版は、このページから入手することができます。


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

[Namazu TOPメニュー]