Текущий архив: 2002.06.13;
Скачать: CL | DM;
Вниз
direct3dim Найти похожие ветки
← →
3d[Power] © (2002-01-28 22:38) [0]Как в сабже(d3d immediate mode) работать с освещением (light)? А конкретно как освещать примитивы?
← →
drpass © (2002-01-29 11:18) [1]Ты под какой DX пишешь? Если под седьмой или восьмой, то заполняешь структуру TD3DLight7(TD3DLight8), в ней указываешь тип источника света (точечный, направленный или рассеянный), его цветовые составляющие, позицию на сцене, направление и дальность. Параметров много, смотри их в DirectX SDK.
После этого в DX8 делай
D3DDevice.SetLight(0, D3DLight);//первая цифра - номер источника
D3DDevice.LightEnable(0, true);
Про DX7 я без доки не вспомню, там, кажется, источники света активизировались немного иначе
← →
3d[Power] © (2002-01-29 19:12) [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-30 11:13) [3]А, я тоже когда-то с этой фишкой столкнулся. В свойствах сцены сначала указывал максимальные значения рассеянного света, и, конечно, источник уже ничего не мог добавить.
Яркость сцены (да и примитивов) убери хотя бы вполовину, и все заработает.
Страницы: 1 вся ветка
Текущий архив: 2002.06.13;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.013 c