gillesferrand / Unity-RayTracing

Demo of volume rendering a data cube in Unity by performing ray tracing on the GPU
63 stars 17 forks source link

16 bit volumes #3

Closed snout-o closed 4 years ago

snout-o commented 7 years ago

Hi, thanks for sharing this code it's been very useful to me studying your implementation. One thing I did wonder is that your code expects 8 bit volumetric data but I will it work with 16 bit data such as grayscale pixel data from a series of DICOM files?

Thanks again!

gillesferrand commented 7 years ago

Hi, you're welcome, I'm glad the demo is useful. Sorry for my slow answer... I'm working with 8-bit data for simplicity mainly, and it's sufficient for the visualization needs, but in principle you could adapt the loader script to use a higher dynamic range. However: you'll have to take care of endianness, and the 3D texture I'm using (Alpha8) is only 8-bit, so the precision would be lost. There actually exists a floating point texture format (RFloat) but Unity wouldn’t let me create 3D textures with it.

gillesferrand commented 6 years ago

Update: it is now possible to create floating-point 3D textures. The loader has been updated to handle both uint8 data (as TextureFormat.Alpha8) and float32 data (as TextureFormat.RFloat).

snout-o commented 4 years ago

Outstanding, thanks! My projects have moved on in the proceeding years since opening this ticket but it's brilliant to see your continued commitment to the codebase. Cheers 👍