|
发表于 2009-8-9 14:02:00
|
显示全部楼层
Re:求助:关于透明贴图
刚刚写的 试试这个
struct Color
{
unsigned char Alpha, Red, Green, Blue;
}
Color ProcessColor(const Color& colorIn)
{
Color colorOut;
// 获得传入颜色中值最大的那个分量
unsigned char ucMax = max(max(colorIn.Red, colorIn.Green), colorIn.Blue);
// 求饱和度
float sat = 255.f / (float)ucMax;
// 传出颜色的透明度为传入颜色的亮度
colorOut.Alpha = (0.299f * colorIn.Red) + (0.587f * colorIn.Green) + (0.114f * colorIn.Blue);
// 颜色饱和
colorOut.Red = colorIn.Red * sat;
colorOut.Green = colorIn.Green * sat;
colorOut.Blue = colorIn.Blue * sat;
return colorOut;
} |
|