跳转至

增加绝对环境光

另一种光照破解方法(在 enableLightHackAmbient() 函数中)比清单 9-1 中的激进得多。它全局影响光照级别,而不是添加额外光源。以下是代码的样子:

void enableLightHackAmbient(LPDIRECT3DDEVICE9 
pDevice)
{
    pDevice->SetRenderState(D3DRS_AMBIENT, 
D3DCOLOR_XRGB(100, 100, 100));
}

这个光照破解把绝对环境光(通过把 D3DRS_AMBIENT 传给 SetRenderState() 函数来指示)设置为中等强度的白色。D3DCOLOR_XRGB 宏设置该强度,把 100 作为红、绿、蓝级别的参数。这用全方向的白光照亮物体,有效地揭示一切,代价是阴影和其他基于光照的细节。