Asymptote 3D 图形:将 prc 文件转换为 2D 文件格式

Asymptote 3D 图形:将 prc 文件转换为 2D 文件格式

我有一个关于 的问题Asymptote,我最近开始使用它来制作一些简单的绘图。当我尝试创建2D输出文件时,我遇到了一些问题。

我在一家软件公司工作,正在 中绘制一些简单的草图Asymptote。这些草图旨在显示在我公司软件的图形用户界面 (GUI) 中。这些草图是三维的,其中一些表面是透明的。

起初,我只是使用OpenGL渲染器来生成高分辨率PNG文件。这很好,直到我启用了透明度。启用透明度后,渲染OpenGL器在我的表面上创建了错误绘制的三角形,这会扰乱图形的整体外观。有人告诉我Sourceforge Asymptote 官方论坛这是一个已知问题OpenGL,我不知道在 OpenGL 框架内有什么方法可以缓解这个问题。

因此,我尝试生成3D PDF(PRC 文件)。这解决了三角形绘制错误的问题。当我3D在 Acrobat Reader 中查看我的图形时,如果启用了 PDF 中的活动内容,图形看起来会很漂亮。我唯一需要做的就是将 PRC 文件转换为合适的文件格式,然后可以在 GUI 中显示。我公司的 GUI 程序员建议我以 2D 格式(如 PNG 或 SVG)提交文件。

需要注意的是,在 Acrobat Reader 中,我的3D图形只有在启用活动内容时才会看起来不错。当禁用活动内容时,图形看起来很糟糕。我认为这是因为,当禁用活动内容时,Acrobat Reader 只会显示 3D 图形的预览。此预览是在 Asymptote 中通过包含以下行创建的

settings.render = 0;

不幸的是,用这个命令得到的预览看起来很奇怪。我认为这是因为 Asymptote 将三维图形转换为二维矢量图形的算法存在一些问题(正如 Charles Staats 在 Asymptote 教程中提到的)。

我曾尝试使用 Adob​​e Acrobat Pro DC 将 PDF 文件导出为 JPEG 和 PNG。但是,用这种方法得到的图片非常模糊。我还尝试使用 Adob​​e PDF 打印机打印图形,但效果也很差。

我对 3D PDF 没什么经验。正如我所提到的,当我启用活动内容时,我可以在 Acrobat Reader 中查看我的 3D 图形,并且可以旋转图形,而且看起来很棒。

到目前为止,我想到的唯一解决办法是使用我的 Windows 截图工具在 Acrobat Reader 中显示图形时截取屏幕截图。这确实有效,我可以得到质量不错的 PNG 文件,但分辨率相对较低。无论如何,这几乎不是一个令人满意的解决方案。

我的问题是:有没有什么方法可以从 3D PDF(PRC 文件)格式获取高质量的 2D 文件格式?

相关内容