昨年の 11月頃に掲載していた RenderScript のソースコードが
Galaxy Nexus Android 4.0 で動作しなかったので修正しました。
・flatlib_ap02a.zip
・flatlib_ap02b.zip
・flatlib_ap02c.zip
・flatlib_ap02d.zip
Constant (Uniform) の初期値を Java から書き込んでいる部分が
原因でした。RenderScript 上で書きこまなければならなかった
ようで、そのように修正しています。
例えば ap02d では RenderScript 側で初期化用の関数を作成し
Java から invoke で呼び出しています。
// RenderScript ~ void setup() { vconst->CameraPosition.x= 0.0f; vconst->CameraPosition.y= 0.0f; vconst->CameraPosition.z= 3.0f; vconst->CameraPosition.w= 0.0f; ~ }
最後に初期化コードを呼び出しておく。
// Java ~ mScript.set_rstate( rstate ); mScript.bind_vconst( geometry_const ); mScript.bind_mconst( material_const ); mScript.bind_light( light_const ); mScript.invoke_setup(); // 初期化関数の呼び出し mRS.bindRootScript( mScript );
関連エントリ
・Android 3.x RenderScript で 3D モデルのライティング
・Android 3.x RenderScript (5) 任意の 3D モデルを描画する
・Android 3.x RenderScript (4) script で頂点を書き換える
・Android 3.x RenderScript (3) 独自シェーダーの割り当てとメッシュの描画(2D)