Повернуть изображение, полученное с помощью pbrt

Я использовал pbrt для рендеринга моей сцены. Я указал угол обзора в файле сцены и при рендеринге с помощью pbrt я вижу изображение с этого конкретного угла обзора. Я хочу знать, существует ли способ, которым я могу вращать сцену, отрисованную pbrt, используя мою мышь в режиме реального времени

1 ответ

Решение

Нет.

Чтобы увидеть, если это вообще возможно, визуализируйте сцену и время, как это требуется. Чтобы получить его в реальном времени, вам понадобится pbrt для рендеринга по крайней мере нескольких кадров в секунду, предпочтительно 60!

Я не думаю, что это произойдет в 2016 году.

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

Если вы редактируете файл сцены, это звучит так, как будто вы не находитесь в стране кодирования, и поэтому единственная возможность - написать программу, которая может отображать сцену (в GL) и обновлять информацию файла сцены, чтобы она была такой же, как текущая камера, и отображать используя pbrt. Все это займет много времени (pbrt должен каждый раз анализировать файл и повторно буферизовать всю геометрию), так как предоставление файла означает, что pbrt не будет ничего сохранять из предыдущего состояния и поэтому придется создавать структуры ускорения и т. Д. а также рендеринг сцены. Каждый кадр!

Даже в коде pbrt не даст вам отличной производительности. Он не предназначен для этого, скорее чтобы быть физически точным трассировщиком пути (как следует из названия). Чтобы получить что-то дистанционно в режиме реального времени, вам понадобятся некоторые плохие структуры ускорения задницы и лучшая команда модели освещения, которую вы используете. Если вы действительно заинтересованы, вам, вероятно, нужно написать собственный рендер. Посмотрите на Metropolis Light Transport (MLT) и Vertex Connect Merge (VCM), которые являются гораздо более совершенными / эффективными моделями, использующими метод Монте-Карло.

Плюс некоторое довольно приличное оборудование с большим количеством ядер или приличная карта GFX, если вы хотите использовать SIMD через Cuda или аналогичный.

[EDIT] Также обратите внимание, что рендеринг pbrt основан на книге "Физически обоснованный рендеринг (от теории к реализации)" ISBN-13: 978-0123750792. Который описывает, как реализовать свою собственную версию pbrt.

Другие вопросы по тегам