自分はiPhoneユーザーなんだけど、AndroidアプリはJavaで書けるし、SDKも無料で手に入るので挑戦してる。(エミュレーターもついてるよ)
AndroidSDKダウンロードはこちらより
そんで、どうせならopengGL ESにも手を出そうかと。
でもopenGLについてもほとんど知らないので、初歩的なことからメモしてく予定。
まず、Androidに限らず、JavaでopenGLを扱う場合の注意点。メモリ管理の問題。
ご存知のように、Javaではガーベッジコレクタが勝手にアクセスの無いメモリを回収するので、メモリの開放とか考えずにコーディングできる。(組み込み系プログラマにJavaプログラマがバカにされちゃう理由でもあるね)
でも、この機能がopenGLでは邪魔になるようで。(openGL自体はCでできてる)
ということで、3Dオブジェクト用のメモリを確保するには、javaのガーベジコレクションの影響を避けるためにjava.nio.BufferクラスのByteBuffer型を使う必要があるらしい。
FloatBuffer型もあるけど、ByteBuffer型でないとメモリの並べ方を指定できないのでByteBuffer型を使う。
例えば、0x12345678をメモリに並べるには2つの方法があって、ビッグエンディアン(0x12, 0x34, 0x56, 0x78)とリトルエンディアン(0x78, 0x56, 0x34, 0x12)がある。
で、二つのどっちかは分からないけど、プログラムを動作させるハードウェア固有の並べ方でメモリを使う必要がある。
4つの頂点のバッファを確保する場合はこんな感じ(floatの4バイト×3Dベクトルだから3つ×頂点の数4つ)
ByteBuffer byteBuffer= ByteBuffer.allocateDirect(4 * 3 * 4);
動作させるハードウェア用の並び方に指定。
byteBuffer.order(ByteOrder.nativeOrder());
ByteBuffer型から、FloatBuffer型を作る
FloatBuffersquare = byteBuffer.asFloatBuffer();
後は、これに頂点の値を並べたfloat型の配列を突っ込めばOK。
javaでのopenGLの関数の基本的な呼び出し方法は普通のopenGLとほとんど共通みたいだ。
参考サイト
関連記事
書籍『OpenCV 3 プログラミングブック』を購入
ZBrushのZScript入門
Super Resolution:OpenCVの超解像処理モ...
写真から3Dメッシュの生成・編集ができる無料ツール『Auto...
ZBrushの練習 手のモデリング
UnityでShaderの入力パラメータとして行列を渡す
ZBrushでアヴァン・ガメラを作ってみる 脚のトゲの作り直...
PythonでBlenderのAdd-on開発
R-CNN (Regions with CNN featur...
SculptrisとBlenderで作ったGodzilla ...
スクラッチで既存のキャラクターを立体化したい
ブログの復旧が難航してた話
MetaHumanの頭部をBlenderで編集できるアドオン
ZBrushでアヴァン・ガメラを作ってみる
リアルタイム レイトレーシングAPI『DirectX Ray...
ブログをGoogle App EngineからAmazon ...
Unity Scriptコーディング→Unreal Engi...
Unityで強化学習できる『Unity ML-Agents』
Managing Software Requirements...
Faster R-CNN:ディープラーニングによる一般物体検...
ZBrushのハードサーフェイス用ブラシ
ジュラシック・パークのメイキング
ZBrushトレーニング
ちょっと凝り過ぎなWebキャンペーン:全日本バーベイタム選手...
Unity ARKitプラグインサンプルのチュートリアルを読...
ZBrushでゴジラ2001を作ってみる 側頭部のボリューム...
ZBrushからBlenderへモデルをインポート
『Follow Finder』 (Google Labs)
OpenMayaのPhongShaderクラス
uvでWindows11のPython環境を管理する
3Dスキャンしたテクスチャから照明を除去するUnityツール...
WordPressの表示を高速化する
ZBrush 4R7
テンソル
胡蝶蘭の原種
Adobe Photoshop CS4 Extendedの3...
Unityからkonashiをコントロールする
Google Colaboratoryで遊ぶ準備
UnityでPoint Cloudを表示する方法
MeshroomでPhotogrammetry
OpenCV 3.1のsfmモジュールのビルド再び
ZBrushでアマビエを作る その2


コメント