What's the difference between .hdr and .dds


  1. I want to setup a HDR environment. Is it possible to use a “.hdr”-File? What’s the difference between .dds, .env and .hdr?

  2. With dds, I can setup an environment like in the example.
    How can I scale the texture (in my example it is very low quality).
    How can I set my object “on the ground”?

Best regards,


The file size is the main difference.

but is it possible to use a .hdr-file for my Babylon environment / skybox?

Yep: https://playground.babylonjs.com/#CGA05F#76
(from Available Textures in the Playground - Babylon.js Documentation)

1 Like

The main issue is the lack of pre processing giving wrong rendering when using .hdr with pbr materials.

.dds can store mip maps and prefiltered ones so it is a good fit but might get a bit big.

We then propose an alternative with .env (that you can generate in the sandbox from .dds) integrating both quality and thinner sizes.

1 Like

Doesn’t .env & .hdr also have the advantage of running on mobile, while .dds does not?


is there an example with environment & Skybox and .hdr-file? For example country.hdr?


Hey, can you please explain this affirmation/ question :sweat_smile:
I am asking this because I’m using dds images for environment in multiple projects and till now I didn’t notice that dds is not working in mobile, or I missunderstood?

Do you think it’s possible to generate .env from a .hdr as well? Or is it not relevant?

Unfortunately no, cause we need pre processed textures with the correct mipmaps according to roughness and we can not do the pre processing in Babylon as it takes usually too long and breaks the webgl renderer.

So you first need to generate a pre filtered .dds then convert it to .env

1 Like

About .dds they work on mobile as long as they are uncompressed.

How can I place my model on the “ground” of the skybox (HDR environment)?

you need to create a box, place the model inside it and use the texture as the interior of it. You would also need to use local cube map to simulate a better reflection:

See Section: Using local cubemap mode of Obtain Reflections and Refractions - Babylon.js Documentation