Most 3D scenes are lit by an HDRI – this is called image-based lighting. We found a way to make HDRI loading in three.js and Needle really nice.
HDR environments in the FastHDR format load 10x faster than EXR and 5x faster than UltraHDR. They also use 95% less GPU memory, and don't cause stuttering during loading.
On this page, you find free-to-use environments in this format. You can use them in Needle Engine, or any three.js-based app.
"KTX2-supercompressed Prefiltered Mipmapped Radiance Environment Maps in UASTC HDR 4x4 format" just doesn't roll off the tongue, but if you want to learn more, stay tuned for our technical deep-dive.
FastHDR is strictly better than EXR/HDR and in most cases also better than the UltraHDR (gainmap) format. It loads much faster than both. GPU memory is 90% lower. File sizes are 90% smaller than EXR and comparable with UltraHDR.
We're working on a way for you to process your own HDRIs into the FastHDR format. We'll let you know once custom HDRI → FastHDR processing is available!
KTX2 uses hardware-accelerated compression formats that stream directly to VRAM. Other files need to be expanded into giant bitmaps on the CPU. So even with UltraHDR files being smaller on disk, they load much slower and need more memory.
EXR and HDR files are large. A 2k file clocks in at about 5 MB, while a 4k file is around 20–25 MB. FastHDR files, on the other hand, are usually 75% smaller – 2 MB for 2k, 7 MB for 4k resolution.
FastHDR files are KTX2 files in the UASTC HDR 4x4 format. It's a supercompression format specified by the Khronos Group. Files can be transcoded to a GPU-friendly format on every platform.
FastHDR loads without any frame drops. Your page will feel more responsive, with faster load times and smoother transitions.