3D Rendering and Computation with Renderscript
Renderscriptとはローレベルの3Dレンダリングと演算処理を目的でAndroid3.0(Honeycomb)から追加された技術。
HoneycombのGoogle BooksとYoutubeアプリがRenderscriptを使ったらしい。(Youtubeの3Dギャラリーは確かに派手な感じできれいだ)
・ハードウェアアクセラレータ上で3Dレンダリングする簡単な描画API
・C99に似た言語(Cではない)
・クロスプラットフォーム
「babukuma.rs」ファイルをコンパイルすると
・「.bc」ファイル
- 「<project_root>/res/raw/babukuma.bc」
- プラットフォームに依存しない中間コード(bytecode)
- Java側では「R.raw.babukuma」で参照する。
・Javaのclassファイル
- 「<project_root>/gen/<package>/ScriptC_babukuma.java」
・「.d」ファイル
- 「<project_root>/gen/<package>/babukuma.d」
- このファイルについてはマニュアルに
三つのファイルが吹き出される。
その他の調査。。
「<android_sdk_root>/platform-tools/llvm-rs-cc」
- Renderscript用LLVMコンパイラらしい
「<android_sdk_root>/platforms/android-11/renderscript/include」
- Renderscript用ヘッダファイル「.rsh」が存在
- ユーザが作る「.rs」ファイルでincludeして使用。
「<android_sdk_root>/platforms/android-11/renderscript/clang-include」
- C言語のヘッダファイルが入っている。
- ユーザが直接に使うことはないと思う。
RenderscriptがNDK(特にOpenGL処理)機能の一部を役割を代わりに使うことはできると思うが、NDK処理を全て対処することのできないと思う。
特に外部のライブラリ連携は難しそうなので。。(例えば Renderscript + OpenCVとか)
もうしできるんであれば誰か教えてほしいな。。