Вопрос

может ли кто-нибудь указать мне на документ / алгоритм / ресурс / что угодно, что говорит мне, как реализовать фильтр минимизации текстуры (применяется, когда текселы меньше пикселей) в raytracer?

Спасибо!

Это было полезно?

Решение 4

спасибо вам, ребята, за ваши ответы, но поскольку я не нашел ни одной подходящей технологии, я сам создал кое-что, что оказалось очень хорошо работающим:

я предполагаю, что мой луч представляет собой конус с радиусом в полпикселя на плоскости изображения.когда луч попадает на поверхность, я вычисляю эллипс, который проецируется на поверхность (эллипс от пересечения плоскости и конуса).Затем, используя производные texturecoordinate в точке пересечения, я проецирую этот эллипс в текстурное пространство.теперь я знаю, какая часть текстуры находится под моим пикселем, и могу сделать подвыборку этой области

Я также использую RipMaps для улучшения качества - и я выбрал уровень RipMap на основе размера эллипса в текстурном пространстве

Другие советы

Поскольку вы используете трассировку лучей, я подозреваю, что вы ищете высококачественную фильтрацию, которая динамически изменяет выборку в зависимости от количества "ошибок".Основываясь на этом предположении, я бы сказал, взгляните на "лучевые дифференциалы".Здесь есть хорошая статья на эту тему: http://graphics.stanford.edu/papers/trd/ и при этом учитываются такие эффекты, как преломление и отражение.

Ваш ответ самому себе звучит как правильный подход, но поскольку другие могут наткнуться на эту страницу, я добавлю ссылку на ресурс по запросу.В дополнение к обсуждению mipmapping (ripmapping в основном является более продвинутым mipmapping), они обсуждают влияние отражения и преломления на производные и выбор уровня mip.

Хоман Игехи."Трассировка дифференциалов лучей". 1999.Труды SIGGRAPH. http://graphics.stanford.edu/papers/trd/

При более внимательном прочтении я вижу, что Рено Линдеке упоминал эту статью.Сначала не понял, что это была правильная ссылка, потому что он говорит, что метод производит выборку динамически на основе ошибки выборки, что неверно.Фильтрация выполняется на основе размера следа пикселя и использует только один луч, точно так же, как вы описали.

Редактировать:Еще одна ссылка, которая может оказаться полезной ( http://www.cs.unc.edu /~уилсон/класс/238/# испытания ).Перейдите к разделу "Производные текстурных координат". Он предлагает обратное отображение текстурных производных с поверхности на экран.Я думаю, что это было бы неверно для отраженных и преломленных лучей, но, возможно, проще реализовать и должно подходить для первичных лучей.

Я думаю, ты имеешь в виду mipmap - карта'ing.

Вот один Статья говоря о том, чтобы использовать их.

Но никто не говорит, как выбрать, какую mipmap использовать, но они часто смешиваются (большая и меньшая mipmap).

Вот еще одна статья о как работает Google Планета Земля, и в нем рассказывается о том, как они мипмаркируют землю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top