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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 24.10.2015, 21:09   #1
DarkInside
Разработчик
 
Аватар для DarkInside
 
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений
(для 369 пользователей)
Освещение разных материалов одним источником света

Доброго
Допустим свет от точечного источника света направлен одновременно на матовый и глянцевый предмет. Понятно, что для большей реалистичности отклонения цветов у них должны быть разные (у глянцевого цвет точек должен становиться почти как цвет источника света, а у матового отклоняться совсем немного). Может кто подкинет пример, где разные материалы освещаются по-разному? И вообще по поводу материалов...как поверхность сделать "глянцевой"...
(Offline)
 
Ответить с цитированием
Старый 24.10.2015, 22:20   #2
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Освещение разных материалов одним источником света

Никак , нужны шейдеры.
Хотя вроде в блице есть entityshinnes(1)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DarkInside (24.10.2015)
Старый 24.10.2015, 22:30   #3
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Ответ: Освещение разных материалов одним источником света

Берешь две кубомапы. На одной рисуешь на черном фоне мелкие яркие точки, на другой широкие бледные пятна. Готово :D
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ARA за это полезное сообщение:
DarkInside (24.10.2015), Mr_F_ (24.10.2015)
Старый 24.10.2015, 23:07   #4
DarkInside
Разработчик
 
Аватар для DarkInside
 
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений
(для 369 пользователей)
Ответ: Освещение разных материалов одним источником света

Сцена статическая, скорость не важна, пусть хоть 10 минут рассчитывает. Может исходя из теории светотехники кто-нибудь подкинет идею? Задача сводится к тому, чтобы просто наращивать RGB каждой из точек. На этот прирост влияет: расстояние, углы, коэффициент отражения поверхности (от 0 до 1). 0 - абсолютно матовая поверхность, 1 - абсолютное зеркало. С расстоянием и углами вроде всё понятно описано в этой статье https://xakep.ru/2001/12/27/14208/. Остается вопрос с коэффициентом отражения поверхностей (каждой из её точек) - по какой зависимости меняется прирост RGB с изменением коэффициента отражения?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (24.10.2015)
Старый 24.10.2015, 23:13   #5
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Освещение разных материалов одним источником света

тебе реально нужно шейдеры юзнуть, на блице это делать так же круто, как чистить зубы шилом.
даже движок не нужен, загляни на shadertoy, стырь код какой-нибудь процедурной сферы и дальше любые формулы применяй, имея позицию/нормаль. риалтайм.
---

статья прям ностальгия.
ещё забавнуло это:
Есть и другой способ, который дает более хорошие и правдивые результаты, и не требует больших вычислений. Просто мы рассчитываем честное освещение от всех источников света для шести ортогональных векторов, например, нормалей к граням bounding box’а модели, а затем эти значения интерполируем для всех остальных нормалей модели.
это ж ambient cube из HL2. я думал они первые так делать стали) но какой-то чувак из хакера знал всё на 3 года раньше
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
DarkInside (24.10.2015), impersonalis (25.10.2015)
Старый 24.10.2015, 23:24   #6
DarkInside
Разработчик
 
Аватар для DarkInside
 
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений
(для 369 пользователей)
Ответ: Освещение разных материалов одним источником света

Шейдеры - это хорошо. Но интересует именно простой расчет отклонения RGB, пусть даже со всеми вытекающими тормозами. Мне бы сам процесс понять, физику...
(Offline)
 
Ответить с цитированием
Старый 25.10.2015, 00:01   #7
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Освещение разных материалов одним источником света

по какой зависимости меняется прирост RGB с изменением коэффициента отражения?
Нет однозначного физичного решения, по той причине, что "матовая поверхность" это та же зеркальная поверхность, но с большим количеством микрошершавостей и всякой невидимой глазу геометрии. Паттерн у неё может быть разный, кроме того она самозатеняется, отражает сама на себя свет, самозагораживается и чего только не делает.
В CG лишь аналитически симулируются самые заметные типовые эффекты, как мы их воспринимаем в человеческом масштабе.
Матовая поверхность часто теоретически представляется как усреднённая сумма огромной кучи маленьких околозеркальных поверхностей, смотрящих во все стороны.
Обычно юзают 2 разные модели для вычисления полностью диффузного освещения (независимого особо от положения наблюдателя) и бликов, между ними тупо линейно интерполируют вместе с изменением размера блика.
Самая примитивная модель бликов - фонг: https://en.wikipedia.org/wiki/Phong_reflection_model
Даёт нормальный результат для абсолютного зеркала. сохранение энергии в оригинале не учитывает (чем блик крупнее, тем он должен быть менее интенсивен).
Вариант с сохранением описан в других местах, например тут: http://www.rorydriscoll.com/2009/01/...tion-in-games/

Часто юзают более сложные модели для бликов, с более типа реалистичной формой самого блика, его растягиванием под углом (симуляция микрочастиц) и т. д. Самое модное нынче GGX.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
DarkInside (25.10.2015), impersonalis (25.10.2015)
Старый 25.10.2015, 01:51   #8
DarkInside
Разработчик
 
Аватар для DarkInside
 
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений
(для 369 пользователей)
Ответ: Освещение разных материалов одним источником света

До чего дошел маразм...скачал DIALux evo, создаю 125 образцов поверхностей, отличающихся цветом (с шумом для реалистичности) и коэффициентом отражения...планирую освещать их прожектором с разных расстояний, чтобы потом по рендеру вывести зависимость...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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