Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 28.08.2010, 12:00   #1
fadalist
AnyKey`щик
 
Регистрация: 07.10.2009
Сообщений: 13
Написано одно полезное сообщение
Mesh и нормали (освещение)

Здравствуйте. У меня такой вопрос. Насколько я знаю освещение зависит от нормалей. Создаю в 3DMax обычный BOX (или любую другую модель), экспортирую в формат *.3ds или в *.x затем загружаю в ксорс.

cub = xLoadMesh("cub.3ds")
xEntityFX(cub, 4); FX_FLATSHEDED
xEntityColor(cub,150,150,150)
xEntitySpecularColor(cub, 250,250,250)

В ксорсе на одном полигоне по разному освещаются фэйсы. Другими словами, на одной стороне куба я вижу 2 треугольника. Нормали в 3DMax проверял, заданы правильно.
При импорте модели к примеру в "Deep Exploration" (программка для конвертирования в различные 3д форматы) выглядит всё правильно.

xUpdateN(cub)
xUpdateNormals(cub)
xUpdateTB(cub)

проблему не решают, что я делаю не правильно?

p.s : константа FX_FLATSHEDED и FX_FLATSHADED в разныйх версиях отличается.
(Offline)
 
Ответить с цитированием
Старый 28.08.2010, 16:34   #2
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Mesh и нормали (освещение)

Лучше один раз увидеть, чем сто раз услышать. Реквестирую семпл.
__________________

(Offline)
 
Ответить с цитированием
Старый 29.08.2010, 10:42   #3
fadalist
AnyKey`щик
 
Регистрация: 07.10.2009
Сообщений: 13
Написано одно полезное сообщение
Ответ: Mesh и нормали (освещение)

Вот код прграммы.

Include "xors3d.bb"
xGraphics3D 800, 600, 32, 0, 1

cam = xCreateCamera()
xCameraRange cam, 0.9, 1000
xPositionEntity cam, 0, 0, 0

Light = xCreateLight(2)

ent = xLoadMesh("cub.x")
xEntityFX(ent, 4); FX_FLATSHEDED
xEntitySpecularColor(ent, 255,255,255)
xEntityColor(ent, 50, 50, 50)
xPositionEntity(ent,0,0,3)

While Not xKeyDown(KEY_ESCAPE) Or xWinMessage("WM_CLOSE")
xTurnEntity(ent,0.5,0.3,0.1)
xRenderWorld()
xFlip()
Wend
End

скриншот во вложении
Миниатюры
Нажмите на изображение для увеличения
Название: Куб.png
Просмотров: 888
Размер:	39.7 Кб
ID:	11087  Нажмите на изображение для увеличения
Название: нормали.png
Просмотров: 930
Размер:	27.9 Кб
ID:	11088  
(Offline)
 
Ответить с цитированием
Старый 02.09.2010, 18:30   #4
fadalist
AnyKey`щик
 
Регистрация: 07.10.2009
Сообщений: 13
Написано одно полезное сообщение
Ответ: Mesh и нормали (освещение)

Никто не знает ответа, либо я не ответил на предыдущий пост.
Реквестирую семпл - что значит?
Семпл это пример, в каком виде лучше, скриншоты или exe или исходники?
(Offline)
 
Ответить с цитированием
Старый 02.09.2010, 19:29   #5
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Mesh и нормали (освещение)

Исходник и вся медия, чтобы можно было запустить и поглядеть.
__________________

(Offline)
 
Ответить с цитированием
Старый 03.09.2010, 09:51   #6
Arles
ПроЭктировщик
 
Аватар для Arles
 
Регистрация: 24.07.2009
Сообщений: 142
Написано 52 полезных сообщений
(для 103 пользователей)
Ответ: Mesh и нормали (освещение)

Попробуй экспортировать в *.b3d
(Offline)
 
Ответить с цитированием
Старый 03.09.2010, 13:58   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Mesh и нормали (освещение)

источник света типа "точечный" (Point) стоит в центре сцены (и наверное в центре куба), попробуйте его сдвинуть или использовать направленный...
UPD: хотя нет ошибся, но все правильно. Точечный источник для каждого полигона имеет свой угол наклона. Так что различие в цвете полигонов объясняется этим. Сделайте попиксельное освещение и все у вас будет нормально.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 03.09.2010, 15:07   #8
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Mesh и нормали (освещение)

Хм. Скорее всего в кубе задействовано 8 вершин. Должно быть 24 - у сторон куба не должно быть общих вершин.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tormoz (03.09.2010)
Старый 03.09.2010, 15:21   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Mesh и нормали (освещение)

Да не это все из за точечного источника света. Если его отдалить на более высокое расстояние, то будет менее заметна разница между цветами треугольников. Как я понял - в режиме FlatShaded освещение для полигона рассчитывается используя одно направление точечного источника света. Для другого полигона той же грани куба угол между направлением источника света и нормалью уже будет другой. Из -за этого и различие в освещенности треугольников одной и той же грани. От этого эффекта избавит направленный источник света или выключение режима FlatShaded.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 16.09.2010, 15:33   #10
fadalist
AnyKey`щик
 
Регистрация: 07.10.2009
Сообщений: 13
Написано одно полезное сообщение
Ответ: Mesh и нормали (освещение)

Здравствуйте, давно не появлялся, бук поломался

я не смог найти рабочего плагина экспорта в *.b3d для 3dMax9-64 (если кто поделится буду очень благодарен)

По поводу источников света pax прав, если точечный отдалить то разница менее заметна. (не вооруженным глазом вообще не заметна

Тип источника LIGHT_DIRECTIONAL работает правильно, я так понял его хоть отдаляй хоть нет.

Проблемы начинаются когда используется совместно две эти команды:

xEntityFX(cub, 4); FX_FLATSHEDED
xEntitySpecularColor(cub24, 255,255,255)

интересно в чем проблема?

Количество вершин в кубе я так понял не влияет. Кол-во вершин можно посмотреть в текстовом формате *.x Что характерно после загрузки модели с 8 вершинами, меш состоит из 24 вершин. Проверял такой коммандой:
DebugLog xCountVertices(xGetSurface(ent,0))

Пример, медия и откомпилированная версия во вложении.
Спасибо за участие.
Вложения
Тип файла: rar Light.rar (1.64 Мб, 420 просмотров)
(Offline)
 
Ответить с цитированием
Старый 16.09.2010, 15:48   #11
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Mesh и нормали (освещение)

Постараюсь не забыть глянуть. Если что, то напомни через неделю, а то могу забыть - сейчас куча всего навалилась.
__________________

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 21:21.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com