美文网首页
RGBM编码

RGBM编码

作者: wishes2018 | 来源:发表于2019-11-27 16:36 被阅读0次

    代码如下:

    
    float MaxRange = 8;
    
    float4 EncodeRGBM(float3 rgb)
    
    {
    
      float maxRGB = max(rgb.r,max(rgb.g,rgb.b));
    
      float M = maxRGB / MaxRange;
    
      M = ceil(M * 255.0) / 255.0;
    
      maxRGB = M * MaxRange;
    
      return float4(rgb / maxRGB, M);
    
    }
    
    float3 DecodeRGBM(float4 rgbm)
    
    {
    
        return rgbm.rgb * rgbm.a * MaxRange;
    
    }
    
    

    RGBM编码的核心思想就是进行归一化,把>1.0的数值转化到[0,1]区间内。

    通过maxRGB把RGB值归一化,通过MaxRange把maxRGB归一化成M。输出的rgbm属于[0,1]区间。

    相关文章

      网友评论

          本文标题:RGBM编码

          本文链接:https://www.haomeiwen.com/subject/btapwctx.html