Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Освещение полигонов. 
:(
    Опции темы
Elfet
Дата 28.6.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Нашел вот такую формулу:
Цитата

интенсивность = интенсивность_источника * Max ( (n*s)/(|n|*|s|) , 0 )
n - нормаль к поверхности
s - вектор соединяющий источник света и точку на поверхности.

Эта штука работает, но освещает поверхность с двух сторон одинаково. Как сделать так что бы учитывались стороны? Что бы расматривая поверхность с разных сторон освещение было разное?
 Нужно как-то проверять лицевую сторону? (та которая повёрнута к источнику)


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 28.6.2007, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Как я понял нужно определить нахожусь ли я вместе с одной стороны с источником или с разных. А как?


--------------------
PM MAIL WWW Skype   Вверх
cardinal
Дата 28.6.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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





--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Elfet
Дата 28.6.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



cardinal, что это? smile Я не совсем понял где там то что мне нужно? smile


--------------------
PM MAIL WWW Skype   Вверх
cardinal
Дата 28.6.2007, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Ну посмотри тут
CG05-Lighttransport.pdf
CG06-Brdf.pdf
может в других коспектах тоже чего найдешь нужного. А в архивах в принципе все реализации есть...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Elfet
Дата 28.6.2007, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



cardinal, посмотрел smile у меня в книжке лучше написано (Ф.Хилл 'OpenGL. Программирование компьютерной графики') Там то всё понятно, а вот как это прикрутить к своему движку - не очень понимаю. Такое ощущение что упущены какие-то моменты, так как всё очень просто или я не правильно понимаю то что там пишут smile


--------------------
PM MAIL WWW Skype   Вверх
cardinal
Дата 28.6.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Я тоже долго вникал, но на самом деле модель очень похожа на реальную ситуацию. Описано там конечно не ах, но вообще попробуй запустить те проекты, что там можно скачать, если результаты понравятся, то копай в этом направлении, если нет, то конечно можно сделать чисто исходя из угла нормали поверхности к направлению света. Там в одно случае получится минус по идее, а в другом плюс (если рассматривать противоположные стороны). А вообще можно же определить (помоему просто перемножив вектор нормали поверхности на вектор к источнику света от поверхности) попадает свет на поверхность или нет, если нет, то она соответственно просто черная...

Но это больше мысли вслух. smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
maxim1000
Дата 28.6.2007, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



Цитата(Elfet @  28.6.2007,  21:46 Найти цитируемый пост)
Max ( (n*s)/(|n|*|s|) , 0 )

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


--------------------
qqq
PM WWW   Вверх
cardinal
Дата 28.6.2007, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



n* вектор от точки к пользователю > 0 то тогда поверхность видна, нет так нет... Может выглядеть немного подругому - это так на скорую руку...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Elfet
Дата 29.6.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



maxim1000, а вот да, я же незнаю как у меня нормали ориентированы? Или нужно все нормали переориентировать к камере?
cardinal
Цитата(cardinal @  29.6.2007,  00:31 Найти цитируемый пост)
можно сделать чисто исходя из угла нормали поверхности к направлению света

угу, что-то вот такое и пытаюсь реализовать, не очень сложное smile


--------------------
PM MAIL WWW Skype   Вверх
maxim1000
Дата 29.6.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



нужно смотреть знак координаты, соответствующей оси, перпендикулярной плоскости экрана
ну или
Цитата(cardinal @  28.6.2007,  23:52 Найти цитируемый пост)
n* вектор от точки к пользователю > 0

более общий случай, когда система координат не связана с экраном...


--------------------
qqq
PM WWW   Вверх
Elfet
Дата 29.6.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



maxim1000, не совсем понял smile Все точки у меня находятся в координатах камеры


--------------------
PM MAIL WWW Skype   Вверх
maxim1000
Дата 29.6.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



а... ну тогда, по идее одна из осей должна быть вдоль линии зрения, вот знак соответствующей координаты и надо смотреть...


--------------------
qqq
PM WWW   Вверх
Elfet
Дата 29.6.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



maxim1000,  smile 


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 29.6.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Не, не совсем это правильно поворачивать нормаль таким вот способом. Нужно определить лицевую сторону, а это вот так вот не получается, иногда нормаль и вектор камеры со направлены и является лицевой стороной.
user posted image


--------------------
PM MAIL WWW Skype   Вверх
cardinal
Дата 30.6.2007, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Векторы нормали у тебя откуда? Если модель создаешь каким-нибудь Blender'ом, то они уже в моделе прописаны - там проблем в вычесление того, как и куда падает свет не возникает...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Elfet
Дата 2.7.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Создаю модели сам. "Программно" smile
Нормали к поверхности подсчитываю для каждого треугольника. Но проблему решил. Нужно сравнивать с углом не орта камеры, а вектора из камеры в точку приложения нормали. 

А вот что делать с интенсивностью света?

По формулам я получил три интенсивности света: Ir, Ig, Ib smile и есть цвет полигона. Как мне определить каким цветом мне рисовать то треугольник? smile


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 2.7.2007, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Вот что у меня пока выходит :/ (нужен NET2.0)
http://www.box.net/shared/4xa2zp62r9

Добавлено через 14 секунд
 smile 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Net3DAlphaLightingRoll.zip 27,86 Kb


--------------------
PM MAIL WWW Skype   Вверх
cardinal
Дата 3.7.2007, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата(Elfet @  2.7.2007,  19:56 Найти цитируемый пост)
Нужно сравнивать с углом не орта камеры, а вектора из камеры в точку приложения нормали. 

Цитата(cardinal @  28.6.2007,  21:52 Найти цитируемый пост)
вектор от точки к пользователю

То есть об этом я и говорил... smile 
Цитата(Elfet @  2.7.2007,  19:56 Найти цитируемый пост)
А вот что делать с интенсивностью света?

То есть темно - светло чтоли? Тогда ты должен по идее только одну интенсивность получить (для всех каналов одинаковую)... smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Elfet
Дата 3.7.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Хм... У мя в книжке сначала говорится про одноцветную закраску, а потом про добавления цвета. Вот что выходит. Как с этой интенсивностью работать не понимаю :/
user posted image

Добавлено через 3 минуты и 44 секунды
user posted image

Это сообщение отредактировал(а) Elfet - 3.7.2007, 10:33


--------------------
PM MAIL WWW Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




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


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

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