Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Освещение


Автор: Zarkon 25.7.2012, 08:38
Ребят нужна еще помощь. Пробовал разные виды освещения(Directional , Spot , Point), но все не то. Допустим вот текущий вариант

Код

D3DLIGHT9 Light;

ZeroMemory(&Light, sizeof(D3DLIGHT9));
Light.Type = D3DLIGHT_DIRECTIONAL;
Light.Diffuse.r = 1.0f;
Light.Diffuse.g = 1.0f;
Light.Diffuse.b = 1.0f;
Light.Range = 10.0f;
D3DXVec3Normalize((D3DXVECTOR3*)&Light.Direction, &D3DXVECTOR3(0.0f, 30.0f, 3.0f));

pD3DDevice->SetLight(0, &Light);
pD3DDevice->LightEnable(0, TRUE);

pD3DDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
pD3DDevice->SetRenderState(D3DRS_AMBIENT, 0);


Вопрос в том, как сделать свет точкой, которая освещает все вокруг себя(её координаты тоже нужно указать) на заданном радиусе(и свет не должен проходить через стены). Заранее благодарен

Автор: Amp 25.7.2012, 09:12
Через шейдеры. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)