ボリュメトリック データを 8 ビット GL_LUMINANCE テクスチャとしてロードしています。
OpenGL ES 2.0 で 16 ビットの輝度テクスチャを直接ロードする方法について質問を投稿しましたが、解決策が得られませんでした。したがって、16 ビット データをロードするために、次のように 16 ビット値を 8 ビットに再スケーリングしようとしています。
newvol[i] = 255 * (oldVol[i] + 32768)/66536;
16ビットデータがSigned shortになっていることを確認しました。以下に示すデータセットでは、最小/最大値が (-32768, 32516) であることがわかりました。
しかし、上記の変換では、以下の断面図に示すようにアーティファクト (クリッピング?) が生成されます。
変換が間違っていませんか?8ビットに変換するより良い方法はありますか?