Сомнения в некоторых результатах: от трассировки лучей к распределенной трассировке лучей

У меня есть простой трассировщик лучей, который я сделал некоторое время назад. Сейчас я пытаюсь улучшить его и преобразовать в распределенный трассировщик лучей. Первое, что я делаю, это снимаю пучок лучей вместо одного луча через каждый пиксель. Каждый луч моей группы слегка отклоняется от центра относительного пикселя. Затем окончательный цвет пикселя определяется как среднее значение результатов, полученных этими лучами. Я хочу вас спросить, верны ли полученные мной результаты и причины, по которым они верны, или что-то не так. Ниже вы можете найти несколько фото:

Нормальный RayTracing:

введите здесь описание изображения

Распределенный RayTracing с 10 лучами через каждый пиксель:

введите здесь описание изображения

Распределенный RayTracing с 10 лучами через каждый пиксель и увеличением света:

введите здесь описание изображения

Итак, мои вопросы:

1) нормально ли, что мне нужно увеличивать интенсивность света, когда я переключаюсь с 1 на 10 лучей?

2) разумен ли результат на третьей картинке?

Думаю, это неправильно по какой-то причине: у меня такой же результат, если вместо 10 лучей я использую только 1, но всегда с колебаниями от центра. См. Рисунок ниже:

введите здесь описание изображения

Заранее спасибо!


person Tarta    schedule 22.07.2015    source источник


Ответы (2)


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

1) нормально ли, что мне нужно увеличивать интенсивность света, когда я переключаюсь с 1 на 10 лучей?

Это зависит от того, как вы комбинируете цвета каждого луча. Если вы рассчитываете освещенность для каждого луча и усредняете их, пиксель не должен быть таким темным.

2) разумен ли результат на третьей картинке?

Я думаю, что это более псевдоним, чем тот, который создается при съемке одиночного луча.

person Sufian Latif    schedule 23.07.2015
comment
Хорошо ... Я читал, что первая особенность распределенной трассировки лучей - это эффект сглаживания. Чтобы получить это, мне пришлось запустить в каждом пикселе пучок лучей вместо одного луча. Каждый луч, проходящий через центр пикселя, немного колебался из-за случайных dx и dy ... Я хотел реализовать каждую функцию шаг за шагом ... сглаживание, мягкие тени, размытие движения и т. Д., Поэтому я нацелился первым ибо действительно был эффект сглаживания ... но, похоже, я потерпел неудачу ... Как вы думаете, в чем проблема в моем рендерере? - person Tarta; 23.07.2015
comment
Как вы «смешиваете» цвета, возвращаемые дрожащими лучами? - person Sufian Latif; 24.07.2015
comment
С простым средним. Я суммирую результаты, полученные для каждого отдельного луча, а затем делю итоговую сумму на количество лучей. Это неправильно? - person Tarta; 24.07.2015

Имеет ли объект, который вы используете для хранения цвета, ограниченный диапазон? Если это так (например, цвет с 8 битами на канал), накопление 10 лучей сделает его максимальным, тогда деление на 10 приведет к темным цветам. Вы можете либо разделить каждый луч на 10 перед их добавлением, либо использовать цветовой класс, который обеспечивает больший диапазон (цвет с плавающей запятой без ограничения до 1.0 и т. Д.).

person kojack    schedule 29.09.2015