microsoft / DirectXTex

DirectXTex texture processing library
https://walbourn.github.io/directxtex/
MIT License
1.83k stars 448 forks source link

How to assemble a cubemap from pre-generated images per mipmap level #73

Open ziriax opened 6 years ago

ziriax commented 6 years ago

Hello,

If I understand it correctly, one uses Texassemble to combine multiple images into a DDS file, and Texconv to generate mipmap levels.

But how can we assemble a DDS when we already have custom pre-generated images for each mipmap level? It seems Texconv can only generate the mipmap levels, not copy from existing images?

In the DirectX June 2010 SDK a GUI tool for this existed, the DirectX Texture Tool (DXTEX.EXE), that allowed manually loading images into each mipmap level. We want to automate this process.

Any help is appreciated :-)

Thanks a lot, Peter

walbourn commented 6 years ago

It shouldn't be difficult to extend texassemble to let you provide miplevels explicitly. I didn't see the value in having it do mipmap generation when you can just do that with texconv on the resulting DDS. It is a little tricky in terms of usability for the tool (should it just resize to the target mip level size or should it fail out?), but it's certainly doable.

ziriax commented 6 years ago

Thanks. We tried to use your tools to generate a Prefiltered Mipmap Radiance Environment Map from separate mipmap images for each, but it seems we better use a tool that directly generates these PMREM DDS files. What tool is not yet clear. You are not planning to add such a tool? :-)

walbourn commented 6 years ago

For the SimplePBR12 sample, we initially used this to create the IBL cubemaps which a number of folks reference as a starting point.

ziriax commented 6 years ago

Thanks for the feedback. I was hoping to find a tool for the technique described in this paper from Activision, as it seems it is so fast that it can actually be done at loading-time. But the modified cubemap gen tool will certainly do for now.

walbourn commented 6 years ago

There are two other tools to consider:

cmft which is an open source utility. It has both a command-line and a GUI interface.

Lys is a commercial tool for generating the cubemaps, and supports writing BC6 DDS files.

walbourn commented 6 years ago

Another project to consider is IBLBaker,

ziriax commented 6 years ago

Yes, that one is adviced by the glTF PBR group.

I have a pull request ready that can generate a cubemap from the premade MIP level images, but since I don't think my code is up to your quality standards, I am not sure if I should submit it :-) It is a bit hacky, when you ask it to build a cubemap but you provide more than 6 images, it assumes you passed all MIP levels, and then disables resizing and checks if all the images have correct downscaled sizes. Maybe a flag is needed to make this explicit.

On Thu, 1 Feb 2018, 19:25 Chuck Walbourn, notifications@github.com wrote:

Another project to consider is IBLBaker https://github.com/derkreature/IBLBaker,

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Microsoft/DirectXTex/issues/73#issuecomment-362357048, or mute the thread https://github.com/notifications/unsubscribe-auth/ACR1b0IWiUKh8VM-EayJHt4rZJqzjw8Nks5tQgF9gaJpZM4ReTGl .

walbourn commented 2 months ago

This seems like something that can be added to texassemble