2:1の正距円筒(エクイレクタングラー)HDRIをオンラインでキューブマップの面に変換——.hdrまたは.exrパノラマを放り込むだけで、本物のHDR立方体面が6枚戻ってきます。ファイルをアップロードすることは一切ありません。
HDRIをここにドロップ
クリックで選択 · .hdr / .exr · 最大 50 MB
1.0を超える値もそのまま残ります。.hdrや.exrはリニアな浮動小数点にデコードされ、floatのままリサンプリングされたうえでRadiance RGBEとして再エンコードされるので、太陽の丸い光源も明るい空もキューブマップの中で失われません。
デコード、キューブ投影、ZIPパッキングはすべて、あなたのマシン上のWeb Workerで実行されます。HDRIがアップロードされることは一切ありません——待ち行列もアカウントも不要です。
Radiance .hdrとOpenEXR .exrのどちらも、最大50MBまで扱えます。half-floatのEXRは、キューブ投影が始まる前に32bit floatへ拡張されます。
キューブマップの面を、Unityの Skybox/6 Sided スロット名、Three.jsの px/nx/py/ny/pz/nz、OpenGLの pos_x/neg_x のいずれかで命名——使っているローダーが期待する形式に合わせられます。
Radianceデータには唯一絶対の正しい明るさというものがないため、スライダーで各面を −5〜+5 stopsの範囲でトーンマップしてプレビューできます。ZIP内の浮動小数点キューブマップ自体は変更されません。
ライティング用のRadiance .hdr面6枚に加えて、同じキューブマップを8bit PNGにトーンマップしたものも取得できます——LDR面しか受け付けないエンジン向けです。
2:1の正距円筒HDRIを上のボックスにドラッグするか、クリックして選択してください。ファイルはローカルで読み込まれるため、デバイスの外に出ることはありません。
512・1024・2048pxのキューブマップ面から選び、太陽を好きな位置に持ってこられるようキューブを0〜360°回転させます。
「HDRキューブマップに変換」をクリック。ワーカーがHDRIをfloatにデコードしたうえで6面すべてをレンダリングし、面ごとに進捗を報告します。
Unity・Three.js・OpenGL向けに命名された、6枚のRadiance .hdr面をZIPで取得——8bit版が必要ならトーンマップ済みPNGも入手できます。
このHDRキューブマップ変換ツールは、両方のコンテナ形式を1本の浮動小数点パイプラインに通すので、エクイレクタングラーからキューブマップへの変換はEXRでも.hdrでも面のジオメトリがまったく同じになります——違うのはデコーダーだけです。Radiance .hdrはRGBEとして読み込まれてfloatに展開され、.exrは32bit floatで読み込まれ、half-floatファイルは先に拡張されます。輝度のみのEXRも4チャンネルに展開されます。
ソースは2:1の正距円筒である必要があります——4096×2048、8192×4096など、幅が高さのちょうど2倍であれば構いません。ファイルは最大50MB:すべてメモリ上でデコードされ、4Kのfloatソースだけですでに約130MBに展開されます。キューブマップの面は512・1024・2048pxの正方形で出力され、ソースの高さ以下に抑えるとアップスケールによるぼやけを避けられます。
メインのダウンロードは、RGBEとして格納された6枚のRadiance .hdr面です——3つの8bit仮数部と共有の指数部という構成で、これが.hdrが1.0をはるかに超える値を運べる仕組みです。これこそがイメージベースドライティング(IBL)に必要なもの——このキューブマップをサンプリングするレンダラーは、太陽が空より数千倍も明るいことをそのまま見られるので、反射やシャドウのコントラストが正しく仕上がります。
トーンマップ済みPNGのZIPはあくまで副次的なもので、意図的にロッシー(不可逆)です——各面はスライダーのstops値で露出をかけられ、Reinhard圧縮、ガンマエンコードされたうえで8bitに量子化されます。ターゲット側がLDR面しか受け付けない場合——素のWebGLスカイボックスやCubeTextureLoaderの背景など——に使ってください。これでシーンをライティングしてはいけません。露出でクリップされた情報は二度と戻りません。
| 出力 | 含まれる内容 | 最適な用途 |
|---|---|---|
| 6 × .hdr 面(ZIP) | Radiance RGBEのfloat、フルダイナミックレンジ | IBL、反射プローブ、HDRスカイボックス |
| 6 × .png 面(ZIP) | 8bit sRGB、指定した露出でトーンマップ済み | LDRスカイボックスの背景、プレビュー |
| ページ上のサムネイル | 256pxのトーンマップ済みプレビュー | 向きの確認、継ぎ目の発見 |
UnityはRadiance .hdrをHDRテクスチャとしてインポートします。Unityプリセットで書き出し、各面を同じ名前のSkybox/6 Sidedスロットにドラッグしたうえで、Lighting → Environmentでそのマテリアルを割り当ててください。ハイライトがクランプされないよう、テクスチャ形式はHDRのままにしておきます。
BlenderのEnvironment Textureノードは正距円筒やミラーボール画像を投影する仕組みで、バラバラの6面を扱う想定にはなっていないため、キューブマップはBlenderの世界入力として自然な形式ではありません。これらの面はキューブ面を求めるエンジン向けに取っておき、1枚の画像に戻したい場合はキューブマップ→パノラマ変換ツールを使ってください。
HDRCubeTextureLoader(three/examples/jsm/loaders)は6枚の.hdr面を読み込みます: new HDRCubeTextureLoader().setPath('/cube/').load(['px.hdr','nx.hdr','py.hdr','ny.hdr','pz.hdr','nz.hdr'], (tex) => { scene.environment = tex; }); Three.jsプリセットでこの順序どおりに書き出し、そのあとPMREMGeneratorに通してください。
手元に何があるかでツールを選んでください。8bitのJPG・PNG・WebPパノラマはキューブマップ変換ツール向けです——同じキューブ投影、LDRピクセル、PNG面——このページのデコーダーはそもそもそれらを受け付けません。.hdrや.exrはこのページ向けです:8bitを経由させると、HDRIをHDRIたらしめているレンジそのものが失われてしまいます。
まだHDRIがない場合は、AI HDRI作成ツールがテキストプロンプトからRadiance .hdrを書き出します——LDRソースのコンテナなので、実測した太陽光の強度ではなく、背景やソフトなライティング素材として扱ってください。それでもこのページでキューブマップに変換できます。逆方向、つまり6枚の面を1枚の2:1画像に戻したい場合はキューブマップ→パノラマ変換ツールを使ってください。
AI HDRI作成ツールでプロンプトから360°環境マップを生成し、そのRadiance .hdrをこのページに持ってきて6枚のキューブマップ面に切り出しましょう。
はい。6枚の.hdr面は、ソースからデコードされた浮動小数点の値をそのまま保持します——入力はリニアfloat、出力はRadiance RGBE——なので、1.0をはるかに超える明るさのピクセルもキューブマップの中に残ります。
いいえ、あなたのHDRIがデバイスの外に出ることはありません。デコード、キューブ投影、ZIPパッキングはすべてブラウザ内のWeb Workerで行われます——アップロードという工程自体が存在しません。
はい、OpenEXRの.exrはRadiance .hdrとまったく同じように変換されます。half-floatのEXRはまず32bit floatに拡張されたうえで、同じキューブマップ投影を経ます。
露出スライダーは表示用のコントロールであり、ダウンロードする.hdrキューブマップ面を変更することは一切ありません。サムネイルを再トーンマップするだけで、同じ露出が任意のPNG ZIPには焼き込まれます。
キューブマップ変換には2:1の正距円筒ソースが必要なので、幅が高さのちょうど2倍でないHDRIは、デコード後に拒否されます。ミラーボールプローブは先に再投影してください。
Skybox/6 SidedマテリアルならUnity、px/nx/py/ny/pz/nzならThree.js、pos_x/neg_xならOpenGLを選んでください。Unityプリセットは、各キューブマップ面をそれが入るスロットの名前で命名します——Unityの直感に反するLeft [+X]も含めて——なので名前どおりにスロットに合わせるだけです。
4KのHDRIなら1024pxが安全な既定値です。Radiance面は容量が大きく——2048pxの面はZIP化前で約16MBあります——ソースの高さが十分なときだけ、それ以上を選んでください。
6枚の面を1枚の2:1画像に統合するのは別のツール、キューブマップ→パノラマ変換ツールの役割です。8bitの面を前提にしているので、トーンマップ済みPNGの書き出しを渡してください。