Недавно стал замечать странный глюк в своих программах: При использовании света затенение идёт не в чёрный цвет, а в зелёный, причём если сделать цвет света чёрным, всё станет зелёным, но контуры объектов останутся видимыми вот код настройки материалов и света:
D3DMATERIAL9 Mat; Mat.Diffuse.a = 1.0f; Mat.Diffuse.r = 1.0f; Mat.Diffuse.g = 1.0f; Mat.Diffuse.b = 1.0f; Mat.Ambient.r = 1.0f; Mat.Ambient.g = 1.0f; Mat.Ambient.b = 1.0f; Mat.Specular.r = 1.0f; Mat.Specular.g = 1.0f; Mat.Specular.b = 1.0f; D3DLIGHT9 Light; Light.Type = D3DLIGHT_DIRECTIONAL; Light.Diffuse = D3DXCOLOR(0.5f, 0.5f, 0.5f, 1.0f); Light.Ambient = D3DXCOLOR( 0.5f, 0.5f, 0.5f, 1.0f); Light.Specular = D3DXCOLOR( 0.5f, 0.5f, 0.5f, 1.0f); Light.Direction = D3DXVECTOR3( 0.0f, -1.0f, 0.0f); Light.Range = 50.0f; Light.Falloff = 1.0f; Light.Attenuation0 = 0.001f; Light.Attenuation1 = 0.001f; Light.Attenuation2 = 0.001f;
И вот что из этого получается
а вот без света
в чём проблема?
P.S. Создал тему во флейме потому-что считаю вопрос очень глупым.
Поиграйся с Ambient
m_pDev->SetRenderState(D3DRS_AMBIENT,0);
Che@ter
> m_pDev->SetRenderState(D3DRS_AMBIENT,0);
И зачем мне эта функция? вот если бы можно было вот так сделать тогда другое дело: m_pDev->SetRenderState(D3DRS_AMBIENT, D3DXCOLOR(0, -0.5f, 0, 1));
Всё решил проблему кстати совершенно случайно: открыл старую программу со светом где у моделей материалы грузились из X файла и там всё работало, поменял всё так-же как и там было теперь всё работает.
Тема в архиве.