Задать вопрос
@SergeySerge11

Какая функция (или набор разных ф-ий) изменения «мощности» цвета света при распространении луча?

Не могу понять, какая реалистичная, или вообще хоть какая-нибудь функция уменьшения "чего-то там" луча.

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

Допустим есть некий параметр мощности, веса, или может есть какой-то показатель из физики. По идее надо просто блендить цвет, через Lerp(colorObject, colorRay, force) допустим, может есть другие варианты;
Вот как будет менятся этот показатель по мере удаления от источника и отражении.

При отражении источник цвета меняется на точку отражения.
Какие параметры еще должны учитываться. Типа там наверное материал обхъекта, какой-то показатель есть, но а какая будет общая функция.

Типа допустим, я хочу провести луч на 100 ед. так что бы на расстоянии 100 луч невидим уже. И вот он прошел 100 ед, 10 раз отразившись по ходу.

Еще функция так реализована, что имеется только начальное значение "длины луча". И итератор может вернуть расстояние до объекта и сам объект. То есть допустим начальное расстояние зададим как мощность, и на каждой итерации некоторого алгоритма оно должно уменьшаться на функцию от расстояния до объекта. Возможно сам подход неверен.
Типа допустим такой выход
1 объект. dist 20 force 80
2 объект. dist 20 force 60
3 объект. dist 40 force 20
4 объект. dist 19 force 1
  • Вопрос задан
  • 13 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Это называется яркость света. Цвет лазера особо не меняется. Наверно, можно считать, что яркость уменьшается очень медленно линейно из-за рассеивания воздухом. Для не лазерных источников света яркость убывает квадратично от расстояния.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
У реального материала есть спектры пропускания, поглощения и отражения, показывающие, соответственно, какое количество света проходит сквозь материал, поглощается материалом и отражается от него в зависимости от длины волны. Кроме этого есть диффузное и зеркальное отражения, субповерхностное рассеивание. Может добавляться ещё спектр излучения и/или переизлучения.
Если вы посветите красным лазером на зелёный непрозрачный материал, то бОльшая часть света или весь он будет поглощён, отражения почти не будет. На красном материале напротив, отразится почти весь свет.
При полностью зеркальном отражении луча будет классическая формула "угол падения равен углу отражения". При диффузном часть света будет рассеяна во всех направлениях. Если добавляется субповерхностное рассеивание, то чёткий кружок от лазера увеличится, станет диском с размытым краем.
Собственно, откройте редактор материалов какого-либо 3D-моделлера и посмотрите, сколько там задаётся параметров.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы