githubEdit

FastHDR Environment Lighting

Ultra-fast, high-quality HDR environment lighting for 3D web scenes. 10x faster than EXR, 95% less GPU memory, works great on mobile and low-end devices. Available in Unity and Blender.

Beautiful environment lighting that loads in milliseconds, uses almost no VRAM, and requires zero CPU processing β€” perfect for every device, including low-end phones and tablets.

:::tip At a glance Your environment lights up in 134 ms instead of 1,200 ms. Your GPU uses 12 MB instead of 256 MB. Your users download 2 MB instead of 6 MB. Your main thread does nothing β€” zero processing, zero frame drops. And it looks identical to what you see in your editor. :::

Why FastHDR?

FastHDR is a GPU-native environment map format built on KTX2 supercompression (UASTC HDR 4x4). Unlike EXR, FastHDR files stream directly to GPU memory β€” no decompression on the main thread, no frame drops, no stalling. No other web 3D framework offers this β€” it's a Needle Engine exclusive.

Here's what that means in practice:

  • Budget phones stay smooth. A $150 Android that chokes on a 256 MB EXR texture runs FastHDR without breaking a sweat β€” because it only needs 12 MB of VRAM vs 256 MB with EXR

  • Pages load instantly. Your 4K environment is ready in 134 ms. That's faster than most images on the web

  • No stutter, ever. Traditional HDRIs block the main thread for decompression and mip generation. FastHDR skips all of that β€” the GPU handles everything directly

  • Smaller downloads. 75% smaller than EXR. Your users on mobile data will thank you

  • Every device, every browser. No special libraries, no polyfills, no fallbacks. It just works

  • Full quality. Pre-computed PMREM gives you physically accurate reflections and lighting β€” no shortcuts

Size & Performance Comparison

EXR

UltraHDR

FastHDR 🌡

2K File Size

5.6 MB

2.1 MB

1.9 MB ⭐

3x smaller

2K GPU Memory

64 MB

69 MB

3 MB ⭐

21x less

4K Load Time

~1,261 ms

~268 ms

~134 ms ⭐

10x faster

4K File Size

21.2 MB

8.2 MB

7.3 MB ⭐

3x smaller

4K GPU Memory

256 MB

277 MB

12 MB ⭐

21x less

CPU Processing

Heavy

Heavy

None ⭐

zero work

Frame Drops

Likely

Likely

None ⭐

zero frame drops

Perfect for:

  • Mobile-first 3D experiences

  • Product configurators with realistic reflections

  • Architectural visualization

  • Any scene where loading speed and quality both matter

  • Every device β€” from budget phones to high-end desktops, everyone benefits from faster loading and lower memory usage

Quick Start

:::tip Works with Unity and Blender FastHDR is available in both Unity and Blender integrations starting with Needle Engine 4.17.0. :::

In Unity or Blender

Use any .exr file β€” Needle Engine handles the rest:

  1. Open your Needle Engine project

  2. Set your scene's Environment Lighting to any .exr HDRI

  3. When you build for production, Needle Engine's optimization pipeline automatically converts it to FastHDR

  4. That's it! Your deployed scene loads with ultra-fast, high-quality lighting

No extra setup required β€” FastHDR conversion happens automatically during the Needle Engine build optimization step.

Via HTML Attribute

For code-only or three.js projects, use pre-processed FastHDR files from the Needle HDR Libraryarrow-up-right:

You can also use built-in presets without any URL:

Free HDR Library

Browse 27+ free FastHDR environments at cloud.needle.tools/hdrisarrow-up-right β€” indoor studios, outdoor landscapes, cityscapes, and more. All ready to use, all in FastHDR format.

How It Works

Traditional HDR workflows load a large .exr file, decompress it on the CPU, generate PMREM mip levels, and then upload to the GPU. This is slow, blocks the main thread, and consumes huge amounts of VRAM.

FastHDR eliminates all of this. During Needle Engine's production build optimization:

  1. PMREM is pre-computed β€” no runtime mip generation

  2. KTX2 UASTC HDR 4x4 β€” GPU-native compressed texture format

  3. Hardware transcoding β€” the GPU decompresses the data directly, no CPU work

  4. Web worker loading β€” file fetching and parsing happen off the main thread

The result: your lighting appears almost instantly with zero impact on frame rate.

Common Questions

Do I need to change my workflow? No. If you're using Unity or Blender, your existing HDRI environment maps are automatically converted to FastHDR during the production build optimization step.

Can I use my own custom HDRIs? Yes. When using Unity or Blender, any .exr file you assign as environment lighting will be converted to FastHDR automatically when building for production.

Does FastHDR work on all devices? Yes. The KTX2 UASTC HDR format is supported across all modern browsers and GPUs. This is what makes it especially great for low-end devices.

What about three.js / React-Three-Fiber projects? FastHDR files (.ktx2) can be loaded directly with three.js KTX2Loader. See the three.js integration docsarrow-up-right for details.

Can I use FastHDR for just the background, or just lighting? Yes. The background-image and environment-image attributes are independent β€” you can use FastHDR for one or both.

See Also

Last updated