計算法線貼圖中的RGB像素表示的法線方向
RGB 顏色值用于存儲矢量的 X、Y、Z 方向,其中的 Z 為“向上”(與 Unity 通常使用 Y 作為“向上”的慣例相反)。此外,紋理中的值視為經(jīng)過減半處理,即添加了 0.5 的系數(shù)。這樣就能存儲所有方向的矢量。因此,為了將 RGB 顏色轉(zhuǎn)換為矢量方向,必須乘以 2,然后減去 1。例如,RGB 值 (0.5, 0.5, 1) 或十六進(jìn)制的 #8080FF 將得到矢量 (0,0,1),這便是用于法線貼圖的“向上”,并表示模型表面沒有變化。這就是您在此頁面前面的法線貼圖“示例”的平面區(qū)域中看到的顏色。
//RGB=>法線方向
R*2-1=X
G*2-1=Y
Z*2-1=Z
//法線方向=>RGB
(X+1)/2=R
(Y+1)/2=G
(Z+1)/2=B
鏈接:https://www.cnblogs.com/kingBook/p/11399792.html
RGB顏色提取灰度值
這里用一個比較常用的基于人眼感知的灰度值提取公式。
color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722
這個公式是由人眼對不同顏色敏感度不同得來的,這里無需過多計較,直接把提取出來的灰度值作為高度值即可。