Vincent 3D Rendering Library

Open Source Graphics Libraries for Mobile and Embedded Devices

Vincent 3D は、Windows CE 用の OpenGL ES 1.1, EGL 1.1 ソフトウェア実装のライブラリです。
ソフトウェア実装ですので、ハードウェアが OpenGL ES をサポートしている環境であっても、 ハードウェアを利用するわけではありませんので低速です。お間違いのないように。
Vincent 3D は Common Lite プロファイルの適合テストにパスしています。 (Common プロファイルは、精度損失のため1つのテストに失敗します。)
Vincent 3D の内部処理は固定小数点演算となっていますが、インターフェイスは浮動小数点を受け付けるため、 Common プロファイルに対応しています。(このためライブラリ名は libGLES_CM となっています。)
なお、内部処理が固定小数点演算となっているため、浮動小数点演算器を持たないハードウェアでも利用できるものと思います。(未確認)
以下の拡張機能をサポートしています。(OpenGL ES 1.1 では必須のものを含む)
  • GL_OES_fixed_point
  • GL_OES_single_precision
  • GL_OES_read_format
  • GL_OES_query_matrix
  • GL_OES_point_size_array
  • GL_OES_point_sprite
  • GL_OES_compressed_paletted_texture
Vincent 3D には独自の ug という補助ライブラリが用意されています。 ug は、GLU と GLUT(GLAUX) を OpenGL ES 向けに簡易に実装したようなライブラリです。
ウィンドウの作成、イベント処理の他、 GLU の gluPerspective, gluLookAt に相当する関数が用意されています。 box, cone, cube, disk, sphere, torus, tube といったプリミティブもサポートしています。
Windows CE 4.2, Windows Mobile 5.0, Windows Mobile 6.0 等で使用することができます。
オリジナルでは SIP をサポートしていない SmartPhone(Standard) では動作しませんでしたので、 プログラムを修正しています。

redbook サンプルアプリケーション

OpenGL 赤本のサンプルプログラムを OpenGL ES 1.1 用に書き換えたサンプルプログラムが用意されています。
このサンプルは、画面の回転に対応しています。
元々 Pocket PC 2003(Windows CE 4.2)用に移植されているため、SmartPhone には不向きなキーボード入力やマウス入力を想定したものとなっています。
アプリケーション共通キー操作
  • 'c', 'C' ... 画面セーブ
    BMP 形式でスナップショットを保存できます。(デフォルトのファイル名は Screenshot.bmp です。)
    SIP が邪魔をしてフルサイズの画像をセーブするのは難しいかもしれません。
  • 'Esc' ... アプリケーション終了

aargb

aargb

  • 'r', 'R' ... 20度回転

alpha3D

alpha3D

  • 'a', 'A' ... 初期化後、アニメーション開始
  • 'r', 'R' ... シーンのリセット

checker

checker


colormat

colormat

  • LEFT ボタン ... カラーマテリアル変更(赤)
  • MIDDLE ボタン ... カラーマテリアル変更(緑)
  • RIGHT ボタン ... カラーマテリアル変更(青)

cube

cube


double

double

  • LEFT ボタン ... 回転開始
  • MIDDLE ボタン、RIGHT ボタン ... 停止

fog

fog

  • 'f', 'F' ... Fog モード変更(GL_LINEAR/GL_EXP/GL_EXP2)

hello

hello


light

light


lines

lines


material

material


mipmap

mipmap


model

model


movelight

movelight

  • LEFT ボタン ... 光源を30度回転

planet

planet

  • 'd' ... 自転を10度進める
  • 'D' ... 自転を10度戻す
  • 'y' ... 公転を5度進める
  • 'Y' ... 公転を5度戻す

polyoff

polyoff

  • 't' ... 視点を 0.5 近づける
  • 'T' ... 視点 を 0.5 遠ざける
  • 'f' ... polyfactor を 0.1 減らす
  • 'F' ... polyfactor を 0.1 増やす
  • 'u' ... polyunits を 0.1 増やす
  • 'U' ... polyunits を 0.1 減らす
  • LEFT ボタン ... x 方向に 5 度回転
  • MIDDLE ボタン ... y 方向に 5 度回転
  • RIGHT ボタン ... 終了

robot

robot

  • 's' ... 肩の回転角を 5 度増やす
  • 'S' ... 肩の回転角を 5 度減らす
  • 'e' ... 肘の回転角を 5 度増やす
  • 'E' ... 肘の回転角を 5 度減らす

scene

scene


smooth

smooth


texbind

texbind


texsub

texsub

  • 's', 'S' ... 部分領域更新
  • 'r', 'R' ... リセット

torus

torus

  • 'x', 'X' ... X 軸に 30 度回転
  • 'y', 'Y' ... Y 軸に 30 度回転
  • 'i', 'I' ... リセット
※ ug の実装の問題で、キー入力が無視されます。

varray

varray

  • LEFT ボタン ... pointer/interleaved 切り替え
  • MIDDLE ボタン、RIGHT ボタン ... ARRAYELEMENT/DRAWELEMENTS/DRAWARRAY 切り替え

wrap

wrap

  • 's', 'S' ... S 方向 WRAP 切り替え(GL_CLAMP_TO_EDGE/GL_REPEAT)
  • 't', 'T' ... T 方向 WRAP 切り替え(GL_CLAMP_TO_EDGE/GL_REPEAT)

備考

  • Advanced/W-ZERO3[es] WS011SH (Microsoft Windows Mobile 6 Classic 日本語版) およびエミュレータ(Pocket PC 2003, Windows Mobile 5.0 Pocket PC, Window Mobile 5.0 Smartphone, Windows Mobile 6 Classic, Windows Mobile 6 Professional, Windows Mobile 6 Standard) で動作確認しました。
  • スナップショットは Advanced/W-ZERO3[es] で動かしたものを MyMobiler を使って撮りました。





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

[Namazu TOPメニュー]