1
私はのrenderScriptカーネルに浮動小数点数の配列を転送するために、次のコードを使用します。レンダスクリプトで半精度を使用するには?
float[] bufName = new float[3];
bufName [0] = 255;
bufName [1] = 255;
bufName [2] = 0;
Allocation alloc1 = Allocation.createSized(mRs, Element.F32(mRs), 3);
alloc1.copy1DRangeFrom(0, 3, mtmd);
ScriptC_foo foo = new ScriptC_foo(mRs);
foo.set_gIn(alloc1);
そして、次のように私はfoo.rs
ファイルでgIn
を定義しています
rs_allocation gIn;
私は働きたいです16ビットの浮動小数点数を使用します。私はこれに割り当て作成を変更する必要があることを知っている:
Allocation alloc1 = Allocation.createSized(mRs, Element.F16(mRs), 3);
しかし、私は割り当てにbufnameを配列をコピーするための解決策を見つけることができません。どんな助けもありがとうございます。
ご回答いただきありがとうございます。 'Float.valueOf(f).shortValue()'は整数を(短い)数値に変換します。私は小数部分を保ちたい。 – MTMD
それは確かにロングショットでした。 'Float'メソッドの1つを使ってintビットに変換し、次に短いビットに縮小することができます。 –
ネイティブRenderScript APIを使用して、ハーフ・フロートを割り当てにコピーすることができます。 –