D3DX颜色函数

D3DX颜色函数

 
1:D3DXFresnelTerm ()计算菲涅耳系数。
定义:
FLOAT WINAPI D3DXFresnelTerm(FLOAT CosTheta,    FLOAT RefractionIndex);
参数:
CosTheta [in] 本值必须在 0和1之间。
RefractionIndex [in] The refraction index of a material. The value must be greater than 1.
返回值:
本函数返回非偏振光的菲涅耳系数。CosTheta是入射角的COS值。
说明:
下面说明怎么样计算非偏振光的菲涅耳系数(F):
如果A是入射角,B是折射角,那么就可以用下面公式计算,
F = 0.5 * [tan2(A - B) / tan2(A + B) + sin2(A - B) / sin2(A + B)]
  = 0.5 * sin2(A - B) / sin2(A + B) * [cos2(A + B) / cos2(A - B) + 1]
让r   = sina(A) / sin(B)      (折射系数)
让 c   = cos(A)
让 g   = (r2 + c2 - 1)1/2
然后作简化运算后,就会得到下面公式:
F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)
 
2:D3DXFloat32To16Array():转化一个32位的浮点数到16位的浮点数;
 
3:D3DXFloat16To32Array():
 
4:D3DXCreateMatrixStack ():
创建接口ID3DXMatrixStack的实例
 
5:D3DXColorAdd();D3DXColorSubtract();D3DXColorScale():颜色相加,相减及用一个数乘颜色;
 
6:D3DXColorNegative():创建一个颜色的底片色;
 
7:D3DXColorModulate():两种颜色的混合色;pOut->r = pC1->r * pC2->r;
 
8:D3DXColorLerp():创建两种颜色间的线性插值颜色;
Uses linear interpolation to create a color value.
pOut->r = pC1->r + s * (pC2->r - pC1->r);
If you are linearly interpolating between the colors A and B, and s is 0, the resulting color is A. If s is 1, the resulting color is color B.
 
9:D3DXColorAdjustSaturation():
调整颜色饱和度。
说明:alpha值是没有改变。返回值是跟pOut参数一样的,以便可以作为别的函数的参数用。
这个函数把红,绿和蓝三种颜色时进行饱和度运算,如下例子所示:
    // 下面基于NTSC标准来计算。
    FLOAT grey = pC->r * 0.2125f + pC->g * 0.7154f + pC->b * 0.0721f;
    pOut->r = grey + s * (pC->r - grey);
如果s 大于0并且小于1,饱和度会减少。如果s 大于1,就是增加饱和度。颜色值如下计算:
 
r = g = b = 0.2125*r + 0.7154*g + 0.0721*b
 
10:D3DXColorAdjustContrast ()
调整颜色对比度值
说明:
输入的alpha值是完全拷贝,没有任何修改。
这里返回值是跟参数里的pOut 是一样的。通过返回值,可以让这个函数成为别的函数的参数。
这个函数的红,绿,蓝都会用下面的公式计算结果输出:
pOut->r = 0.5f + c * (pC->r - 0.5f);
如果c小于1,就会减小对比度。如果c大于1,就会增加对比度。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值