# brief
- rgb改成色彩平面上的uv,另外平面也是有边界的,用2个basecolor来划出
# introduction
- motivation:画面(holly wood movie, game)色调有限,所以有文章提出可以用2个channel来encode framebuffer
- 1 channel for full luminance, other for hue/saturation encoding
# 22.2 texture encoding algorithm
## 22.2.1 color plane estimation
- 要做的是找到一个平面,能尽可能你和cube空间中的颜色
- srgb->linear:来回转换都用2power,因为只是用来编码存储,所以快速解码有好处
- 不适用perceptually correct linear RGB(用luminance,u,v来定义的),因为会更耗
- 虽然不用perceptually correct space,但是可以scale一下,让重要的hue有更高的权重
- 实验用的scaling factor是0.5 red, 1 green, 0.25 blue(试过用算灰度的那套weight,但是发现有些texture还是用全相等的weight好)
- 然后就是要用最小二乘来找出合适的平面
- 有一点没看懂,说什么最后一步要把由于weight导致的distortion给revert
# 22.2.2 computing base color
- 首先平面是平面这点定义了,而且由于一定过(0,0,0)所以平面只用一个normal就能定义
- 所有的颜色在2个basecolor向亮中间的空间
- 找base color,把8个edge依次和plane算交点,取最近非0的2个就对了
# 22.2.3 luminance encoding
- 这么想反而很奇怪了,为啥要单独encoding luminace,为啥不直接encode平面上的uv?
# 22.2.4 Hue estimation and encoding
- 感觉这里是特意要fully directly存luminance
- 所以2个channel一个是灰度luminance。blend factor和2个basecolor确定了一条轴,luminance用来在这个轴上调强度