WolfgangEngel

Hi,

in general it looks like there are the same DXT texture compression formats as for DX9. I assume those compression formats do not work with the new

DXGI_FORMAT_R9G9B9E5_SHAREDEXP & DXGI_FORMAT_R11G11B10_FLOAT

formats
In real-life (TM) I always have to store texture data in DXT compressed formats ... if I want to opt for a better color quality in compressed formats, nothing seems to have changed between DX9 and DX10 ... is that correct

Thanks in advance,
- Wolf



Re: Direct3D 10 DXT compressed Textures

Ralf Kornmann

Yes there is no block compression for floating point textures.






Re: Direct3D 10 DXT compressed Textures

WolfgangEngel

Hey :-) thanks! I need to work with a few assumptions here :-) without DX10 drivers ...



Re: Direct3D 10 DXT compressed Textures

lowelllynnduke

This spurred a question for me personally. On <insert console here> we used RGBE for our HDR textures and had to do all sorts of tricks to circumvent DXT's compression so that when decoding RGBE in the shader we got decent results.

However, we found that ultimately RGBE was too expensive to decode in our situation if we wanted to keep our heads above 30Hz.

My question is, moving forward over the next 2+ years, what will be the best DX10 HDR formats to use for the frame buffer, diffuse textures, cube maps etc... I'm looking for an optimal balance between speed/memory consumption and quality for interactive games in the next 2+ years I.e, where are we headed with HDR formats with DX10

I'm implementing an HDR framework for DX10, but I want a format that is practical for a full fledged game, not just a pretty teapot. ;)

Any thoughts/suggestions would be greatly appreciated.






Re: Direct3D 10 DXT compressed Textures

WolfgangEngel

:-) .. it depends on your requirements. If you run a renderer without gamma correction == gamma 1.0 ... you are pretty lost. Here is a list of formats:
- the new RGBE format and RGB can not convert to gamma 1.0
- a common format for HDR textures is DXT1 + quarter size L16 with the exponent ... two problems: bilinear filtering can be a bit screwed, but maybe you can live with that .... second gamma correction is tough
- DXT1 + a scale and exponent value for each of the color channels in the header: you have to hack the DDS header for this ... the trick here is to store the scale and exponent values in gamma 1.0 but the rgb values in gamma 2.2 ... when the texture is fetch and than converted to gamma 1 and now that it is in gamma 1.0 space the scale and exponent are applied
I implemented this on PS3, XBOX 360, DX9 and soon on DX10. You need a texture converter for this that offers this functionality and a few other controls that allows artist some artistic behaviour :-).

If someone from MS would ask me today what my most favourite feature in DX10 is that I am missing: a nice HDR format with gamma correction ... every next-gen game runs with gamma 1.0.

You can hear more of this in the tutorial "Core Techniques and Algorithms in Shader Programming" on GDC 2007 (www.coretechniques.com .... soon available).





Re: Direct3D 10 DXT compressed Textures

lowelllynnduke

Thanks for the reply!

Interesting. I understand most of your response, but am not quite sure what you mean by "gamma correction == gamma 1.0" and I don't want to be "pretty lost". :) Could you elaborate a little more on that for my own understanding Gamma 2.2

Now, the part about DX1 + quater size L16 containing the exponent is very familary to me. We in fact could live with a few of the artifacts from bilinear filtering on the 360, but it's not ideal. I hope our next run at HDR texture is better. We are consistently mulitplying global intensity values with all or our LDR textures/cubemaps, etc.. to try and get them to the correct range of HDR, but it's a managment nightmare. We constantly have to tune and tweak HDR to keep it from over blooming or being too dark. I know a lot of it has to do with the fact that all of our assets are really LDR (normal RGB textures) that are being artificially scaled up into the HDR range. The main reason for this is that there isn't really an art package that allows the artist to view/edit RGBE images...at least not when production began. So really our whole art pipeline and tools is still in LDR. That's why I'm looking for the best bet in DX10... so thank you for your response.

In terms of DX10, I was leaning towards the RGBE format since I'm familiar with it, but again, not sure what you mean by the verbage "cannot convert to gamma 1.0".

Oh, and thanks for the link www.coretechniques.com... I axiously await that.

I sincerely appreciate your response!

-L






Re: Direct3D 10 DXT compressed Textures

WolfgangEngel

Hi,

it is actually www.coretechniques.info not com ... :-). For the gamma explanation I think the following article is the best:

http://www.sjbrown.co.uk/ article=gamma

The main idea is to remove gamma correction while you fetch the texture (... this is supported by hardware) so that all the lighting shadowing, filtering etc. all happens without gamma corrected textures. If you achieve this, the whole scene looks much more natural and real (Gears of War, Halo 3, Crysis might all do this). One of the challenges with this -apart from the whole art pipeline :-)- is to combine HDR textures and gamma control.

- Wolf