Есть ли эффективный способ конвертировать a3d сцену в 2d улучшенный метафайл - PullRequest
2 голосов
/ 18 мая 2011

Я разрабатываю приложение САПР с использованием Delphi2010 и OpenGL.В настоящее время я работаю над модулем для экспорта текущего представления в файл изображения.

Это довольно прямолинейно для растровых форматов (рендеринг сцены в закадровый буфер нужных размеров, запись в буфер на диск), но я также хочу иметь возможность экспортировать 2d-просмотр моей сцены по оси длявекторный формат, предпочтительно Winows EMF.

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

Поскольку мой Google-фу этого не сделалчтобы привести к результату, я хочу спросить, есть ли у кого-нибудь из вас опыт решения этой проблемы (конвертировать Opengl-3d-scene в 2d-Vectorimage), или есть какая-либо сторонняя библиотека, известная для реализации этого.

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Это очень сложная задача, она включает в себя аналитическое удаление скрытых линий, разбиение полигонов и Z-сортировку для окончательного вывода, как описано здесь: http://www.cs.drexel.edu/~david/Classes/CS430/HWs/p214-weiler.pdf

0 голосов
/ 14 июня 2011

Существует библиотека C, которая делает это. Он может выводить PostScript, PDF и SVG. Он также поддерживает плавное затенение.

Хотя вы, вероятно, не сможете использовать его напрямую, он может дать вам несколько идей:

http://www.geuz.org/gl2ps/

...