Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не отображается свет на объектах, DirectX 
:(
    Опции темы
ZC1989
Дата 4.1.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



Что я не так делаю или что забыл? smile Проблема такая: есть вершинный буфер, в нём вершины описаны с параметрами XYZ | NORMAL, при создании буфера я загоняю в него и вершины и нормали, но при отрисовке все фигуры чёрного цвета, у меня есть источник света

Код
    // LIGHT'S
ZeroMemory (&plight, sizeof(D3DLIGHT9));
plight.Type = D3DLIGHT_DIRECTIONAL;
plight.Diffuse.r  = 0.85f;
plight.Diffuse.g  = 0.85f;
plight.Diffuse.b  = 0.85f;
plight.Range = 1000.0f;

vecDir = D3DXVECTOR3(0, 200, 0);
D3DXVec3Normalize((D3DXVECTOR3*)&plight.Direction, &vecDir);
pDevice -> SetLight(0, &plight);
pDevice -> LightEnable(0, true);

Для теста использую треугольник с координатами (100, 0, 0) (0, 0, 50) (100, 0, 100) нормаль его по Y направлена, получается что источник света смотрит прямо на треугольник, но он всё равно чёрный! У меня есть материал, назначенный этому треугольнику
Код

RetMaterial.Ambient.r = 0.1791;
RetMaterial.Ambient.g = 0.0654;
RetMaterial.Ambient.b = 0.0654;
RetMaterial.Ambient.a = 0.5f;

RetMaterial.Diffuse.r = 0.5373;
RetMaterial.Diffuse.g = 0.1961;
RetMaterial.Diffuse.b = 0.1961;
RetMaterial.Diffuse.a = 0.5f;

RetMaterial.Specular.r = 0.9000;
RetMaterial.Specular.g = 0.9000;
RetMaterial.Specular.b = 0.9000;
RetMaterial.Specular.a = 0.5f;

RetMaterial.Emissive.r = 0.400f;
RetMaterial.Emissive.g = 0.400f;
RetMaterial.Emissive.b = 0.400f;
RetMaterial.Emissive.a = 0.4f;

RetMaterial.Power = 0.5f;

Настройки у меня такие включены
Код

pDevice -> SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice -> SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
pDevice -> SetRenderState(D3DRS_AMBIENT, D3DCOLOR_XRGB(100, 100, 100));
pDevice -> SetRenderState(D3DRS_LIGHTING, TRUE);

…

А это при отрисовке
Код

pDevice -> SetStreamSource(0, VertBuf, 0, sizeof(Vertex3DO));
pDevice -> SetFVF(VertFormat3DO);
pDevice -> SetMaterial(&RetMaterial);
pDevice -> DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);

при всём это цвет, как я уже говорил, чёрный, но если включить отрисовку меша из X файла, то появляется игра света на объекте!!!??? Как мне сделать то же самое, но без X файла?


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
ZeroMem
Дата 5.1.2007, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 24.8.2004
Где: Комсомольск-на-Ам уре

Репутация: нет
Всего: нет



Хмм... А ты точно правильно вектора нормали-то просчитал?
Думаю ошибка в математике. попробуй нормаль пустить в другую сторону. Или лучше генерировать нормаль к каждой вершине с каждой стороны.
PM MAIL ICQ   Вверх
ZC1989
Дата 5.1.2007, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



ZeroMem, да всё это пробовал, менял местами,  всё делал, прикол в том что если мешь подключить, то всё становится нормально! как-будтобы просто не включена одна из настроек

Это сообщение отредактировал(а) ZC1989 - 5.1.2007, 21:17


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.