В своей классической статье « Трассировка лучей с помощью конусов» Джон Аманатидес описывает разновидность классической трассировки лучей. Расширяя понятие луча на угол апертуры , делая его конусом, эффекты сглаживания (в том числе возникающие из-за слишком малого числа образцов Монте-Карло) можно уменьшить.
Во время пересечения конус-треугольник вычисляется скалярное значение покрытия. Это значение представляет часть конуса, которая покрыта треугольником. Если оно меньше , это означает, что треугольник не полностью покрывает конус. Требуются дальнейшие испытания. Однако, без использования более продвинутых методов, мы знаем только, сколько конуса покрыто, но не какие части.
Аманатид утверждает:
Поскольку в настоящее время для смешивания вкладов различных объектов используется только дробное значение покрытия, перекрывающиеся поверхности будут рассчитываться правильно, а примыкающие поверхности - нет.
Это не имеет смысла для меня. С моей точки зрения, все наоборот. Давайте рассмотрим пример: у нас есть два примыкающих треугольника, зеленый и синий, каждый из которых покрывает ровно 50% нашего конуса. Они находятся на одинаковом расстоянии от зрителя.
Зеленый треугольник проверяется первым. Он имеет значение покрытия 0,5, поэтому синий треугольник проверяется следующим. При значении покрытия синего цвета 0,5 наш конус полностью покрыт, так что мы закончили и в итоге получили 50:50 зелено-синюю смесь. Большой!
Теперь представьте, что мы убиваем синий треугольник и добавляем красный на некотором расстоянии позади зеленого - перекрывая друг друга . Greeny снова дает нам значение покрытия 0,5. Поскольку у нас больше нет синих для тестирования, мы смотрим дальше вниз по конусу и вскоре находим красный. Это также возвращает некоторое значение покрытия больше 0, чего не должно быть, потому что оно находится за зеленым.
Итак, из этого я делаю вывод, что прилегающие треугольники работают нормально, в то время как перекрывающимся треугольникам понадобится еще немного магии, например маски покрытия, чтобы быть правильными. Это противоположно тому, что говорит Аманатид. Я что-то не так понял или это бумажка?