Typewriter GUI Help Page



Version

First of all: This is free software - see License.
Second: This is a beta version! Please do not expect it to be free of bugs...
Help me to improve the software by reporting bugs, possible improvements, etc. to: <rammelt@cs.tu-berlin.de>.



Rendering / Saving Images

This part describes what are the minimum steps to create an image:
Chose Font File
In the Font section choose the Zip archive which includes the font descriptions for all characters which are included in that font
xyz
Write the text which should be rendered into the text field
Start calculation
Start rendering. A progress bar will appear on the image display. When calculation finished succesfully the progress bar will disappear and the rendered image will be shown instead.
Start calculation Automatically restart calculation if a parameter has been changed (only restarts the relevant parts of the calculation while the start button Start
                          calculation always restarts the whole calculation).
Abort calculation
Abort rendering (only active while rendering) - hopefully you do not need this too often... :-)
Save image
Save the image. Supported formats are: PNG (supports transparency), JPEG (doesn't support transparancy)



Typewriter Parameters

Type-Writer / Font / Font-Type

This part describes what are the minimum steps to create an image:
Text
Write the text which should be rendered
ZipArchive
Choose the Zip archive which includes the font descriptions for all characters which are included in that font.
The font-archive font01.zip is included in the package. It includes the following characters (only):



You can create your own characters. Each one is defined in its own file named char_XX.des, where XX is the hex-code of the character. The file contains a number of points for each line of the character. Multiple lines are separated by an empty line. The following image illustrates the lines defining each character:



FontType
Choose a font-type:
BUBBLES
PEARLS
TUBES
AMPHORES


Type-Parameters
bold
"boldness"
space
x-offset between two characters
radial
points

number of radial points used for all font types which create round shapes (which do all font types until now)
indent
this value is added to the radius of every odd radial point. Using quite a lot of radial points and a relatively small indent makes the segments look a bit like an old greek column or a calabash. Using just 4 radial points creates oval shapes (but you can't control the orientation). Some examples are shown here:


Font "Tubes"
(30 radial points, indent = -0.2)

Font "Tubes"
(30 radial points, indent = 1.4)

Font "Bubbles"
(30 radial points, indent = 0.2)






Font "Tubes"
  4 radial points, indent = 1)




Bezier
density
number of columns / rows a bezier-mesh has per 1 pixel distance of the most distant neighbouring corner points. If the density value is too small you might observe holes in the object. On the other hand a density which is unnecessarily high might cause an "out of memory" error and also increases the calculation time. The example below shows a typical result for a density which is too small:

scale
Scaling factor (1 means original size, 0.5 means half the original size, 2 means twice the original size)
splits
This is experimental! By this value one can define the maximum number of times a bezier-surface gets split up into 4 smaller surfaces. Using this feature might introduce instabilities into the object. It might even cause errors, due to surfaces getting very large because of such instabilities.


splits = 0
splits = 1
min
If splits > 0 this value defines the minimum size a surface must have to be split up. The size is defined by the max. distance of two neighbouring corners of such a surface.



3D Parameters

View-Point
Define the view point here. A little box on the right side of the image display shows the direction.
x
x-coordinate
y
y-coordinate
z
z-coordinate


Distance
Normally (distance <= 0) the viewer is assumed to be infinetly far away, i.e. a parallel-perspective is used. Using a distance > 0 creates an diminishing point perspective.
distance
x-coordinate


Light-Point
Define the coordinates of the (single) source of light here. A little box on the bottom side of the image display shows the direction. The light is assumed to be infinetly far away, i.e. rays of light are all in parallel.
x
x-coordinate
y
y-coordinate
z
z-coordinate



Rendering Parameters

Font-Color
red
Red channel
green
Green channel
blue
Blue channel
alpha Alpha channel (0 means background is fully transparent, 255 means color is fully opaque)


Background Background color.
red
Red channel
green
Green channel
blue
Blue channel
alpha Alpha channel (0 means background is fully transparent, 255 means color is fully opaque)


HSB-Filter
Color filter
hue
Hue offset
saturation
Saturation factor
brightness
Brightness factor


Focus-Depth-Filter
Parameters for a filter, which blurs all points depending on their distance to a z-coordinate of highest sharpness.
blur-radius
Max. blur radius
relative z-position of
                          highest sharpness
Relative z-position (0 = front, 1 = back) of the highest sharpness


Color-Shift-Filter
Parameters for a filter, which "shifts" colors of all points depeneding on their distance (given by their z-coordinates). This filter could be used to create the illusion of very big objects.
blue-shift
Blue-shift coefficient (0 = no blue shift, 1 = max. blue shift)
brightness-shift
Brightness-shift coefficient (0 = no blue shift, 1 = max. blue shift)


Rendering
In this section special parameters for the used rendering algorithm could be defined.

thickness
Thickness of the visible surface (e.g. a value of 10 means that behind every visible pixel there are 9 solid pixels assumed). This value might an effect on shadows only!
ground
Ground light. This defines the amount of light which depends on the distance to the light point only (the closer a point is the brighter it will be). For the following image a high ground-light value (ground-light = 0.8) was used:

reflex
Reflexivity. The higher this value is, the stronger is the effect of reflected light. The following image was rendered with a low reflex-value (reflex = 0.2):

diffusion
This defines a max. distance over which one "enlighted" point distributes light to points which are shadowed by this point. With a small value for diffusion you might see unwanted edges. This image illustrates this behaviour for diffusion = 1:

gloss
This defines the gloss of the object. The following image was randered with a high value for gloss (gloss = 15):

min. Light
The minimum brightness of a point which belongs to the object. This image was create with a high min-light value of 0.8:

mirror
Mirroring coefficient used for mirrored images


Image-Files
texture
One or more images which are used as a textures for all(!) bezier surfaces. Unfortunately it is not possible to define special textures for some of the surfaces. But if you choose more than one texture file it is possible to define a policy how textures are choosen for all surfaces out of these textures. Textures could have transparent parts. The object will be transparent at these areas. But only if an area is fully transparent (alpha=0) you will see parts of the scene which are behind this surface (normally hidden) (because at the end a 3D scene is defined by a simple Z-buffer which holds exactly one distance for each point/pixel it is not possible to have more than one layer of visible objects shining through each other...)
mirrored
An image which is used for the six sides of a box or for the one "side" of a sphere surrounding the object. The objects surface mirrors these image.
background
An image which is used for the background (if this image has (semi-)transparent pixels the background color has still an effect)


Texture choosing policy
forward
Uses the first texture for the first surface, the second for the second surface, ... start again at the first texture if there are more surface than textures (which is usally true).
backward
Uses the last texture for the first surface, the second last for the second surface, ... start again at the last texture if there are more surface than textures (which is usally true).
random
For each surface a texture is choosen at random.
split
Each image gets split up into several textures such that each segment of each character is fully covered by one image, no matter how many bezier surfaces are used for a segment (the first image is used for the first segment, the second image for the second segment). A segment is defined by two points in the font-file of a character. The following examples showing the results of using one image per bezier surface vs. using one image per segment:
Forward, Backward, Random: one texture for each bezier surface
Split: one texture for each character segment


Mirroring Shape
box-shaped
The mirrored image is put on all six sides of an box surrounding the object
spherical
The mirrored image is put on a sphere surrounding the object


View Parameters

Zoom
zoom
Zoom factor. This doesn't affect the actual size of the image (e.g. if it is saved on disk). It just effects the size of the displayed image!


License

Copyright (c) 2009, Patrick Rammelt
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.