Two Channel Color Compression

Discussion in 'Rendering Technology and APIs' started by jpla007, Jul 1, 2015.

  1. jpla007

    Joined:
    May 20, 2015
    Messages:
    6
    Likes Received:
    0
    To reduce memory I am experimenting with two channel color compression reflection cubemaps - for example only using two channels to represent an RGB color. Has anyone else tried this? How were your results?

    I was looking at this: http://www.codersnotes.com/graphics/two-channel

    Unfortunately with this approach I can't find a great set of coefficients that work well.

    I tried using James Blinn's approach but then having a constant hue looks really bad.

    I also tried packing RGB24 to RGB16 but the banding I got was terrible...

    Anyone else have any ideas about this?
     
  2. Simon F

    Simon F Tea maker
    Moderator Veteran

    Joined:
    Feb 8, 2002
    Messages:
    4,560
    Likes Received:
    157
    Location:
    In the Island of Sodor, where the steam trains lie
    A way to find coefficients is to compute the covariance matrix of the colour data (which will be a 3x3 symmetric matrix) and then calculate the eigenvalues/eigenvectors. Pick the two vectors corresponding to the larger two eigenvalues, and those will be the axes for your two directions. You'll need to scale etc, but I hope you get the idea.
     
  3. Novum

    Regular

    Joined:
    Jun 28, 2006
    Messages:
    335
    Likes Received:
    8
    Location:
    Germany
  4. sebbbi

    Veteran

    Joined:
    Nov 14, 2007
    Messages:
    2,924
    Likes Received:
    5,293
    Location:
    Helsinki, Finland
  5. Novum

    Regular

    Joined:
    Jun 28, 2006
    Messages:
    335
    Likes Received:
    8
    Location:
    Germany
    Maybe de-interleave before using the cubemap? Yeah, not ideal, I know.
     
  6. Khipu

    Joined:
    Sep 1, 2015
    Messages:
    2
    Likes Received:
    0
    Cubemaps are pre-convolved one could just gather the 4 neighbors and do the reconstruction in the PS. Corner and Edge might be a bit ugly, but those might better be padded either way.
     
  7. Barbarian

    Regular

    Joined:
    Jun 27, 2005
    Messages:
    289
    Likes Received:
    15
    Location:
    California, USA
    BC6 is your best bet. 1 byte pixel, good quality, supports HDR and hardware filtering. It would be hard to beat that.
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...