Все они выглядят как центр света, яркий в центре и, при выезде, оба исчезают (растут диммер) и рассеиваются (становятся все более распространенными).
Чтобы угаснуть, вам необходимо масштабировать свет от максимальной интенсивности с помощью функции r
(расстояние). Физически это будет что-то вроде 1/r
или 1/r^2
, но в вашем случае, вы можете иметь больше удачи, используя экспоненциальное e^(-r)
или даже линейный замирание 1 - a*r
Важным аспектом эффекта является диффузия. Самый простой способ эмулировать диффузию, не создавая полного на raytracer, заключался бы в применении линейного гауссовского размытия (или даже простого размытия) вдоль оси вращения. Например, рассеянная точка при r = 3, theta = 0,5 может быть средней для неопределенных точек между r = 3, theta = 0.4 и r = 3, theta = 0.6. Вы получите лучшие эффекты, если «окно» функции размытия масштабируется с r
. То есть, чем больше r
, тем больше окно усреднения или больше сигма для размытия гауссова.
Наконец, перед диффузией оно выглядит так, что луча вращается «отфильтрована» с помощью изменяемой по течению функции передачи. То есть количество луча, которое «ускользает» от фильтра, зависит от угла. Эта функция выглядит несколько рандомизированной, но с кажущейся структурой (т. Е. Полосами света и темного, а не просто белым шумом). Это идеальный кандидат для Perlin Noise, который генерирует случайные данные со структурой. Вы можете настроить, насколько тонка эта структура в алгоритме perlin noise; это действительно то, что отличает три изображения, которые вы показываете.
Так что в итоге:
Во-первых, рассчитать недиспергированный распределение:
Start затухающий шар света, F (г, тета) = 1/г (или какой-либо другой затухание)
Умножьте затухающий шар света на функцию шумового фильтра p (тета) - но, может быть, только на точки за заданным радиусом (чтобы иметь этот белый шар посередине)
Затем разогнать все с радиально растущим размыванием окна
Возможно добавить белый шум зерно во всем.
Я думаю, что это всего лишь один из способов их создания; могут быть и другие, но это может быть хорошим началом.
Интенсивность света от точечного источника падает точно так же, как '1/r^2'. И экспоненциальный распад _faster_, чем обратный квадрат, а линейный - _lowlow_ - странно видеть, что вы предлагаете «или _exponential_ или _linear_» распад. – lapk
Я думаю, что белый «шар» в середине вызван именно потому, что функция размытия не распадается с R. Посмотрите на последний пример с надписью «Glint»; ядро посередине имеет неправильную форму, которая соответствует доминирующим лучам. – MSalters
@PetrBudnik Интенсивность света физически падает как 1/r^2; однако это не должно быть жестко соблюдено, если эстетическое качество (которое является приоритетом) требует иного. –