Adventures in high-resolution rendering

I have been working on making high-quality prints of some of these animations for gifts and posterity. I started by using Processing’s built-in ‘saveFrame()’ method (see all the previous screenshots for examples). The quality is not bad, especially if saved as PNG files instead of JPEG. I soon discovered that it is limited to the resolution of the screen and sometimes turns out even smaller depending on if the program window is maximized enough.

To print at a decent quality it should be at least 300 DPI which means to make an 8×10 inch ‘photo’ print the image would need to be 2400X3000 pixels. My laptop maxes out at 1600X1050 which is problematic. I also recently acquired a new powerful Desktop computer and am using a spare monitor that is limited to 1024×768 which is even worse.

After digging around I learned how to write the animation output to a PDF file. This way each 2D polygon is stored as a vector object which means that resolution is arbitrary and it can be converted to a very large image.

One issue with this approach is that it directly mirrors the history of the program so even if several dozen (or hundred) shapes end up hidden by new shapes or opaque backgrounds they are still in the PDF. This means that the PDF files can be quite large and take awhile to load in Acrobat. This is why I needed to convert them to actual static image files to make printing and handling easier.

Several programs could not handle the complexity of some of these PDFs so I ended up using GhostScript, an open-source PDF processing library and its associated graphical-user-interface gsView.

Each image below shows just how detailed these new renderings are. Click each detail image to see the full version. The source PDF (with all the extraneous hidden layers) is also linked.


Source PDF

Source PDF
posted on Tuesday, December 23rd, 2008 by Pehr in Uncategorized