ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2013年10月16日水曜日

libpdでパッチ開いて鳴ったわー

鳴ったぜ.

libpdのJNI側のソースコードやAudio glueとサンプルプログラムを見比べてたら形が見えてきた.

2013年10月9日水曜日

Desktop環境(Mac)でJava上のlibpd


ハマり中~

PdBase.openAudio 等のオーディオ系のメソッドは,libpdに同梱されたJNIのNative関数を呼んでいます.
  1. 生のlibpdをデスクトップ環境向けにビルドするとNative関数の中身はカラッポ.jni/z_jni_plain.c
  2. Android向けにビルドすると,これが jni/z_jni_opensl.c に置き換えられる.
  3. PortAudio branch版のlibpdでのデスクトップ向けビルドでは, jni/z_jni_pa.c に置き換えられる.

2013年9月26日木曜日

やっぱり3Dは避けて通れなかった

映像的な面でのモチベーションとして,色々なデザインモチーフやVFX的効果を取り入れて動きを出し,画面いっぱいを使って楽しさを演出したいというイメージをもって進めています.

プログラマブルシェーダ使いたさ故にイキナリOpenGL ES 2.0で作り始めてるのは,そんな自分の中のイメージを楽に具現化できる機能というか可能性を感じるからで,全くGPUプログラミングの経験がない自分でも楽に試作を重ねられるGLSL Sandboxは大いに活用させてもらってます.

2013年9月16日月曜日

libGDXでOpenGL ES 2.0でシェーダ動いた

やればやるほど出口の見えなかったOpenGLでのグラフィック実装ですが,
libGDXを使いはじめてようやく軌道に乗ってきました.

libGDXはJavaベースでOpenGL ESを使ったゲームを作るライブラリですが,
マルチプラットフォームで開発できるので,PC上でもOpenGL ES 2.0で
テストができて超ラクチン.今までテスト環境に困ってたのは何だったんだ.

libGDXは,工程はラップせずに手段をラップする感じのフレームワーク.
ですので自由度がかなり高いと思われる一方,私のような初心者が触るには
敷居のほうも正直高い.
日本語のドキュメントはあんまりないので,主に海外のサイトを見て回って
使い方を覚える感じです.

OpenGLの使い方と並行して,キャラクターの書き込みプロセスや
状態遷移に関するメッセージの渡し方を考えてると,
何気にそれっぽくオブジェクト指向で書けてる気がしてきました,

で,とりあえずグラフィック面では「ここまで出来れば一段落」と思っていた
フラグメントシェーダの実装を形にするところまで辿り着きました.

先日の記事でGLSL Sandboxに投稿したエフェクト.



2013年9月14日土曜日

staticフィールドってなんぞー

VC++で挫折して以来触ってこなかったオブジェクト指向言語ですが,
Androidでのソフト開発も、ちゃんとJavaを理解してないとサンプルコードが解読できない!
OpenGLみたいな高度なAPIだとなおさら混乱混乱.

AndroidのContextの扱い方でエラーとか警告とか出まくったので,
もう初心のつもりで基本から.クラスのstaticフィールドの実験.

2013年9月10日火曜日

OpenGLESGLSLSGLEELSEG

いまAndroid上でOpenGL ES 1.0を使ってグラフィックの試作をしているのですが,何をするにも実機に流し込んで動作させてやる必要があって少し面倒.

ちょっとした描画やエフェクトのテスト程度のものは,開発環境(Mac OS XのDesktop画面)上で適当にできたりすると楽だなーと思いはじめました.

一般的なデスクトップPC環境で「JavaでOpenGLをやろう」と言いはじめる際にそれっぽくまとまってそうなのは,JOGLというOpen GLのラッパー.
JOGLは,2009年に開発が終了したver.1.1.1と現行バージョンの2.0が存在しますが,なんか2.0がうまく動かなかったのでとりあえず1.1.1のほうを使いはじめました.