2016-12-13 12 views
0

iOSのメタルでは、放射照度マップにHDR画像(.hdrまたは.exr形式)を使用するワークフローがありますか?放射照度マップにHDR画像を使用するワークフローはありますか?

+1

共有指数の表現をMetalのピクセル形式(MTLPixelFormatRGB9E5Float'や 'RGBA16Float'など、いずれもフィルタリング可能)のいずれかに変換することで、HDRファイルをRGBE形式で読み込むことができます。そこから、サンプルをサンプリングしてシェーダで使用します。 – warrenm

+0

クールな豆。いつものようにウォーレン。 – dugla

答えて

1

共有指数表現をMetalのピクセル形式(MTLPixelFormatRGB9E5FloatやRGBA16Floatなど、どちらもフィルタリング可能)に変換することで、HDRファイルをRGBE形式で読み込むことができます。そこから、サンプルをサンプリングしてシェーダで使用します。

+0

ウォーレン、1つの問題。 HRDファイルは、r:g:b:e = 8:8:8:8(32ビット)です。対応するメタルピクセルフォーマットは、r:g:b:e = 9:9:9:5(32ビット)です。私はこれをどう扱うかについては少し不明です。私の考えは、rgbeでソーステクスチャを作成し、次にmyTexture.makeTextureView(pixelFormat :)を使用してrgba16Floatに変換することでした。 – dugla

+1

私はいくつかの手動変換が必要だと思います(RGBE8888から中間の16bpcまたは32bpcの色に変換した後、RGBE9995に戻って量子化するか、RGBA16Floatで直接16bpcの値を使用します) )。特に、私の知る限りでは、この変換はMetalテクスチャビューや 'vImageConvert_AnyToAny'ではサポートされていません。 – warrenm

関連する問題