2011年4月7日木曜日

Renderscript調査

From Evernote:

Renderscript調査

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とか)
もうしできるんであれば誰か教えてほしいな。。