Есть ли простой способ в Povray вычислить, где объект может появиться на визуализированном изображении? - PullRequest
0 голосов
/ 04 февраля 2019

Я визуализирую изображение с помощью Povray, а затем добавляю метки с использованием файла LaTeX / TikZ.

Сейчас в настоящее время я делаю это, просто определяя местоположение объектов вручную.Это работает, но означает, что мне придется повторять это каждый раз, когда я меняю перспективу изображения (то есть перемещаю камеру).Поэтому я подумал о том, чтобы сгенерировать эти позиции автоматически.

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

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

1 Ответ

0 голосов
/ 11 февраля 2019

Это невозможно - PovRay не имеет никаких функций для «чтения», где или экстентов объектов для начала (я страдал, пытаясь расположить текстовые объекты в прошлом).

И когдаСтоит задуматься об этом, это имеет смысл - POVRay о трассировке лучей в конце концов: поэтому, только после того, как один пиксель будет отрендерен, POVRay «узнает», был ли на пиксель затронут конкретный объект.На этом этапе, очевидно, уже слишком поздно вставлять какой-либо параметр обратно в файл описания сцены.

Хорошо, в отличие от того, что я пытаюсь расположить объекты внутри самой сцены, вы не хотите, чтобы данные о местоположении использовалисьСам POV - так что вполне возможно, что некоторые выходные данные POVRay или перехват в некотором выводе могут дать один намек на то, где находится объект.

(/ me делает паузу для рендеринга сферы, используя максимальную многословность - безрезультатно)

Итак, при проверке документации, есть опции для «генерации гистограммы», которая будет выводить время, потраченное на каждый пиксель.Время на пикселях, которые отображают объект, должно быть больше.Однако в документах говорится, что «не все версии POVRay могут генерировать гистограммы, которые будут зависеть от операционной системы и типа отображаемого файла».Я не смог сгенерировать вывод гистограммы - Povray 3.7 дал мне ошибку синтаксического анализа параметров командной строки гистограммы, хотя я думаю, что выходной файл CSV для гистограмм будет работать для вас, если вы сможете заставить его работать.

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

...