Randall Sawyer  <srandallsawyer[at]yahoo.com>   2006.12.1

********************************************************************
************ Constructive-Solid-Geometry Fonts *********************
********************************************************************


1.  Background

For a current project, I need to render an object with fine - but legible - text etched on its surface.  While POV Ray-tracer comes with an easy-to-use command - 'text' - for rendering font-based text objects, the results were a bit too grainy for my particular application.  This is due to the fact that 'text' reads a pixelized source to create the object.

After some experimentation, I discovered the results I was looking for by making character objects out of CSGs of spheres and cylinders.  I needed about half of the alphabet for the project.  So, I figured "Why not the whole alphabet?"  I kept going and completed the alphabet.  Then I thought "What if I need more characters in the future?"  So, I continued on until I had all visible ascii characters done.

At the same time I thought it would probably help to have a macro whereby I could enter a string and get a formatted CSG word.  In order to format the words, I also needed a table of widths for the character set.

Now, I have an array of 95 CSGs, one for each ascii character from 32(space) through 126(~).  ( The 'space' CSG contains dummy objects only.)  And, I have a macro for easily creating 'words' from the characters.


2.  My Idea

I have made one font this way.  I have made one simple formatting tool.  I could share the font with another povver with some really nice formatting ideas.  And, I could share the formatting tool with another povver who wants to make original 3D fonts.  Then, over time, with enough of us working on various interchangable components, we could build a diverse library of CSG-based fonts.
