2013.01.22

【OpenGL】Androidにて頂点テクスチャを試す

そんな技術があるなんて知らんかった。

頂点テクスチャとは

OpenGLのVertexShederでテクスチャを使い情報を渡すこと。

自分的には人体モデルにてスキニングを行いたいわけだが
ボーン情報を一括してVertexShederに渡したいわけです。
しかし、取得できるメモリに上限があるらしく上限が決められてしまう。
自分だと64個くらいしか確保できない。

これ以上渡すには頂点情報をテクスチャ化して
VertexShederにてTexture2Dを使って取得し
大量のメモリを使用できるようなります。

概略的には以下のページを見るとわかりやすいと思います。
Link:OpenGLでGPUスキニング【頂点テクスチャ編】 - とあるPGの研究記録Ⅱ(レコーダー)

Androidで実装してみたが…

これは素晴らしいと思い、実装してみました。
しかし、VertexShederのコンパイルでエラーとなってしまいます。

どうも、テストで使っているGalaxy S2はVertexShederでのtexture2Dは使えないようです。
Link:function texture2D not supported on target - Google グループ
どうもこの機能を使うと省電力CPUでは無理があるとのこと。

この機能を使えるかを確認するには MAX_VERTEX_TEXTURE_IMAGE_UNITS の値を確認するといいらしい。
調べてみると見事に0でした。

この値はほかの端末でも0みたいなので頂点テクスチャ機能は
現在のスマフォでは実装不可能なようです。
Link:制限を調べるなど。 - ちょっとしたメモなど


そんなわけで頂点テクスチャの実装はできなかったけど
この技術は3Dでは基本の処理っぽいので理屈を理解できただけでも良しとしましょう。

[aws asin="484433008X"]

ニャッキ格闘列伝 > プログラム >

前の記事:
次の記事:

関連記事

コメントリスト

コメントなし

コメント



*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

こんなタグが使えるみたいよ:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>