forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Освещение разных материалов одним источником света (http://forum.boolean.name/showthread.php?t=20054)

DarkInside 24.10.2015 21:09

Освещение разных материалов одним источником света
 
Доброго ;)
Допустим свет от точечного источника света направлен одновременно на матовый и глянцевый предмет. Понятно, что для большей реалистичности отклонения цветов у них должны быть разные (у глянцевого цвет точек должен становиться почти как цвет источника света, а у матового отклоняться совсем немного). Может кто подкинет пример, где разные материалы освещаются по-разному? И вообще по поводу материалов...как поверхность сделать "глянцевой"...

tirarex 24.10.2015 22:20

Ответ: Освещение разных материалов одним источником света
 
Никак , нужны шейдеры.
Хотя вроде в блице есть entityshinnes(1)

ARA 24.10.2015 22:30

Ответ: Освещение разных материалов одним источником света
 
Берешь две кубомапы. На одной рисуешь на черном фоне мелкие яркие точки, на другой широкие бледные пятна. Готово :D

DarkInside 24.10.2015 23:07

Ответ: Освещение разных материалов одним источником света
 
Сцена статическая, скорость не важна, пусть хоть 10 минут рассчитывает. Может исходя из теории светотехники кто-нибудь подкинет идею? Задача сводится к тому, чтобы просто наращивать RGB каждой из точек. На этот прирост влияет: расстояние, углы, коэффициент отражения поверхности (от 0 до 1). 0 - абсолютно матовая поверхность, 1 - абсолютное зеркало. С расстоянием и углами вроде всё понятно описано в этой статье https://xakep.ru/2001/12/27/14208/. Остается вопрос с коэффициентом отражения поверхностей (каждой из её точек) - по какой зависимости меняется прирост RGB с изменением коэффициента отражения?

Mr_F_ 24.10.2015 23:13

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

статья прям ностальгия.
ещё забавнуло это:
Цитата:

Есть и другой способ, который дает более хорошие и правдивые результаты, и не требует больших вычислений. Просто мы рассчитываем честное освещение от всех источников света для шести ортогональных векторов, например, нормалей к граням bounding box’а модели, а затем эти значения интерполируем для всех остальных нормалей модели.
это ж ambient cube из HL2. я думал они первые так делать стали) но какой-то чувак из хакера знал всё на 3 года раньше

DarkInside 24.10.2015 23:24

Ответ: Освещение разных материалов одним источником света
 
Шейдеры - это хорошо. Но интересует именно простой расчет отклонения RGB, пусть даже со всеми вытекающими тормозами. Мне бы сам процесс понять, физику...

Mr_F_ 25.10.2015 00:01

Ответ: Освещение разных материалов одним источником света
 
Цитата:

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

Часто юзают более сложные модели для бликов, с более типа реалистичной формой самого блика, его растягиванием под углом (симуляция микрочастиц) и т. д. Самое модное нынче GGX.

DarkInside 25.10.2015 01:51

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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot