![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
direct3dim [D5, Win95/98]
3d[Power] © (2002-01-28 22:38:00)Как в сабже(d3d immediate mode) работать с освещением (light)? А конкретно как освещать примитивы?
drpass (2002-01-30 11:13:00) [1]А, я тоже когда-то с этой фишкой столкнулся. В свойствах сцены сначала указывал максимальные значения рассеянного света, и, конечно, источник уже ничего не мог добавить.
Яркость сцены (да и примитивов) убери хотя бы вполовину, и все заработает.
3d[Power] (2002-01-29 19:12:00) [2]2 drpass. Ну если я написал что d3dim то значит не под восьмой.
Дело то в том что, я делаю все правильно:
SetRenderState(D3DRENDERSTATE_LIGHTING, 1);
Cвойства на light навесил, добавил, только эта лампочка не светит.
Вот что по поводу этого написано в SDK:
The lighting render state is entirely independent of lighting computations that can be performed on vertices within a vertex buffer. The IDirect3DVertexBuffer7::ProcessVertices and IDirect3DVertexBuffer7::ProcessVerticesStrided methods accept their own flags to control lighting calculations during vertex processing.
Может из-за того что я vertex использую?
drpass (2002-01-29 11:18:00) [3]Ты под какой DX пишешь? Если под седьмой или восьмой, то заполняешь структуру TD3DLight7(TD3DLight8), в ней указываешь тип источника света (точечный, направленный или рассеянный), его цветовые составляющие, позицию на сцене, направление и дальность. Параметров много, смотри их в DirectX SDK.
После этого в DX8 делай
D3DDevice.SetLight(0, D3DLight);//первая цифра - номер источника
D3DDevice.LightEnable(0, true);
Про DX7 я без доки не вспомню, там, кажется, источники света активизировались немного иначе