Graphics Muse

#### "Linux Gazette...making Linux just a little more lovable!"

Set your browser to the width of the line below for best viewing. © 1996 by mjh

| muse: v; to become absorbed in thought n; [ fr. Any of the nine sister goddesses of learning and the arts in Greek Mythology ]: a source of inspiration elcome to the Graphics Muse! Why a "muse"? Well, except for the sisters aspect, the above definitions are pretty much the way I'd describe my own interest in computer graphics: it keeps me deep in thought and it is a daily source of inspiration. [Graphics Mews] [Musings] [Resources]

his column is dedicated to the use, creation, distribution, and dissussion of computer graphics tools for Linux systems. Last month I had promised to do a review of Keith Rule's new book on 3D File Formats this month. I'll also said there would be a section on adding fonts on Linux in last month's colums. Ok, I'm a liar. First, I decided that although Keith's book deserves some examination I felt that another book, Mark Kilgard's OpenGL text, had a more direct bearing on Linux users. I'll consider taking a look at Keith's book some time in the future. Second, I had quite a bit of other material for January's column so had decided to move the font discussion to February's column. However, I forgot to update the introduction in January's column to reflect this change. My apologies. Now for the bad news: I had a major system crash on the 16th of January which first of all caused me over a week of grief trying to recover and second caused the loss of a large number of files. No, I wasn't doing backups. So shoot me. I managed to recover an earlier copy of this month's Muse column from a laptop I have, but I lost a good portion of what I'd already done. Now, as I write this, I have 3 days to get the column done and uploaded. The result is that the book review and a number of other items will have to be put off till another time. So, does anyone have a decent tape backup system that can run on ftape drives? In this month's column I'll be covering, along with how to add fonts to your system: a GIF Animations update: the MultiGIF program some Printer info I gathered in the past month tkPOV V2.0 - a graphical front end to POV-Ray 3.0 NOTE: I lost all my old email and mail aliases when my system went down. If you have been in touch with me in the past and want to stay in touch please send me some email (mjhammel@csn.net)! I'm particularly interested in hearing from Paul Sargent, who was helping me with my look into BMRT. I lost your email address Paul, along with all the messages we'd exchanged on the BMRT article series! Write me (or if you know Paul, please have him contact me)!

Disclaimer: Before I get too far into this I should note that any of the news items I post in this section are just that - news. Either I happened to run across them via some mailing list I was on, via some Usenet newsgroup, or via email from someone. I'm not necessarily endorsing these products (some of which may be commercial), I'm just letting you know I'd heard about them in the past month.
#### xfig 3.2.0 Beta available Xfig is a menu-driven tool that allows the user to draw and manipulate objects interactively in an X window. The resulting pictures can be saved, printed on postscript printers or converted to a variety of other formats (e.g. to allow inclusion in LaTeX documents). xfig is available on ftp.x.org in /contrib/applications/drawing_tools/xfig. You also need a JPEG library, which can be found in /contrib/libraries. and TransFig version 3.2.0-beta1. TransFig contains the postprocessor needed by xfig to convert fig files to one of several output formats, such as PostScript, pic, LaTeX etc. The TransFig package is in the directory /contrib/applications/drawing_tools/transfig. |  |  | #### Alexander Zimmermann has uploaded another update to his ImageMagick package. ImageMagick (TM), version 3.7.9, is a package for display and interactive manipulation of images for the X Window System. The package has been uploaded to sunsite.unc.edu:/pub/Linux/Incoming as: ImageMagick-3.7.9-elf.lsm ImageMagick-3.7.9-elf.tgz ImageMagick supports also the Drag-and-Drop protocol form the OffiX package and many of the more popular image formats including JPEG, MPEG, PNG, TIFF, Photo CD, etc. You will also need the package libIMPlugIn-1.0-elf to get it working. These can be retrieved from ftp.wizards.dupont.com /pub/ImageMagick/binaries.
#### World Movers, the first VRML 2.0 Developer Conference I received the following information via email (unsolicited, but it's probably the first time I got something I found really interesting via a blind email post). Note that I have nothing to do with this conference, other than I wish they'd invite me to go - expenses paid, of course: World Movers, the first VRML 2.0 Developer Conference, will be held on January 30 and 31 at the ANA Hotel in San Francisco, CA. At World Movers you will: Select from sessions in three key tracks over two days Content Creation Business Applications of VRML Future Directions and Current Technologies Learn how to create great VRML 2.0 content and applications See and learn about real applications that use VRML Find out about the latest tools for VRML 2.0 With a pan-industry advisory board and a wide array of hosts and participants, World Movers will give you a complete picture of VRML 2.0 content and applications from all perspectives. Register by calling (800)488-2883 or (415)578-6900, or go online at http://www.worldmovers.org.
#### PNG Magick Plug-in 0.8 There is a new plug-in for Unix/Linux versions of Netscape called PNG Magick Plug-in 0.8. This plug-in supports the following file formats: PNG, XPM, TIFF, MIFF, TGA, BMP, PBM, PGM, PPM, PNM, PCX, FITS, XWD, GIF, JPEG, WAV and MPEG-1. It is reported to support Drag and Drop capabilities as well. For MPEG-1 support you need the Xew library which doesn't seem to work well with the Linux version of this plug-in. PNG Magick Plug-in 0.8 is published under the GNU General public License and is available at http://home.pages.de/~rasca/pngplugin/. |  |  | #### TkFont v1.1 There is a new tool for viewing fonts on Linux. I haven't tried this yet so I don't know how well it works. It has been uploaded to tsx-11.mit.edu in the /incoming directory. The file-name is `tkfont-1.1.tar.gz'.
#### Version 0.1.8 of Lib3d is now available from Sunsite. Lib3d is a high performance 3d C++ library distributed under the GNU LGPL. Lib3d implements sub-affine texture mapping, Gouraud shading and Z-buffer rasterization, with support for X11, DGA, SvgaLib and DOS. Lib3d is available from ftp://sunsite.unc.edu/pub/Linux/Incoming/lib3d-0.1.8.tar.gz For more information: http://www.ozemail.com.au/~keithw
#### CFP: ACM SIGGRAPH 97 Sketches Program Deadline: April 16, 1997 The following was posted in a number of places. I got it via a friend on the Gimp User mailing list. I have no association with SIGGRAPH (unfortunately) so can offer no other details than the following: SKETCHES are live, 15 minute presentations that provide a forum for unique, interesting ideas and techniques in computer graphics. Sketches allow the presentation of late-breaking results, works in progress, art, design, and innovative uses and applications of graphics techniques and technology. Sketch abstracts will be published in the Visual Proceedings. Sketches are a fun, educational, high-profile way to show your work and creations. We are seeking submissions in four areas: Animations Applications Art and Design Technical For more information, see the SIGGRAPH 97 Call for Participation, send email to sketches.s97@siggraph.org, or for the latest, most comprehensive information on how to submit to Sketches and other SIGGRAPH 97 programs, including supplemental documents, please go to: http://www.siggraph.org/s97/.
To request a copy of the Call for Participation, contact: SIGGRAPH 97 Conference Management Smith, Bucklin & Associates, Inc. 401 North Michigan Avenue Chicago, Illinois 60611 USA +1.312.321.6830 +1.312.321.6876 fax siggraph97@siggraph.org DEADLINES: 16 April 1997 5 pm Eastern Daylight Time Final Sketch proposals | To discuss your concepts and ideas for Sketches, contact: David S. Ebert SIGGRAPH 97 Sketches Chair University of Maryland Baltimore County CSEE Department ECS-210 1000 Hilltop Circle Baltimore, Maryland 21250 USA +1.410.455.3541 +1.410.455.3969 fax sketches.s97@siggraph.org
#### Did You Know? The VRML 2.0 Specification, Moving Worlds from SGI, provides for "spatial audio"? This is a definition of how sound is played in relationship to your point in space and distance from an object which has a sound attached to it. The O2 system from SGI has a VRML browser which was demonstrated on Part 2 of PC-TV's series on Unix which covered commercial Unix options. Part 3 of this series started airing at the end of January and is devoted to our favorite OS - Linux! There is a wonderful description on using color palettes with Web pages at http://www.adobe.com/newsfeatures/palette/main.html. The page is a reprinted article by Lisa Lopuck from Adobe Magazine and is quite detailed. Check it out! Have you been thinking about using POV-Ray 3.0's new caustics feature? Are you unsure exactly what it does? Want to learn all about it? Then check out The Caustic Tutorial for POV. This is a very detailed explanation on what caustics are and how to use them. Briefly, caustics are formed when light is either focused or dispersed due to passing through media with different indices of refraction. Bright spots in the shadows are where light is focused and dark spots are where the light has been dispersed. Thanks to Paul R. Rotering for this description (taken from the IRTC-L mailing list). Q and A Q: What is displacement mapping? A: Displacement mapping is not only the perturbing of the surface normal of an object, like bump maps do, but in fact a distorting of the object itself. You can think of it as a height field over an arbitrary surface. The latest version of BMRT is reported to support displacement maps. Few other publicly available renderers provide this feature. Q: I have just downloaded the complete batch of plug-ins from the "Plug-in Registry", and noticed that the "interpolate", "lightest" and "darkest" plug-ins appear to do the same thing as the "blend", "add" and "multiply" channel ops respectively. Is this correct, or is there some difference under certain circumstances? A: Not exactly. Blend uses integer values and restricts you to interpolation. Interpolate/Extrapolate uses floating point values and does not restrict the range of the blending value --- you can do extrapolation, too (look at my home page for some examples): http://www.nuclecu.unam.mx/~federico/gimp Lightest and Darkest pick the lightest and darkest pixels from two images. It is not the same as add and multiply except for bilevel images. Both of these questions were answered by Mena Quintero Federico, aka Quartic, on the Gimp User mailing list.

#### GIF animations update: MultiGIF After my first column (Linux Gazette, issue 12), Greg Roelofs wrote me to tell me about another tool for creating animated GIF images. Andy Wardley's MultiGIF allows the use of sprite images as part of the animation. Sprite images are like small sections of an image. Instead of creating a series of GIF images that are all the same size and simply appending each one at the end of the other (as WhirlGIF does), the user can create an initial image along with a series of smaller images that are positioned at offsets from the upper left corner of the full image. By using sprites (I'm not completely sure what a sprite really is, but Greg used this term and it appears similar to other uses I've seen - someone correct me if it's not the correct use of the term) the GIF animator can reduce the file size anywhere from a factor of two to a factor of 20 in size. As proof, Greg offered his animated PNG-balls, which went from 577k to 233k in size. Another animation, a small horizontally oscillating "Cylon eyes" (referring to the old Battlestar Gallatica metal menace), provided a savings of a factor of 20. MultiGIF comes with C source code and is shareware. Andy only asks that you provide a donation if you find you are using it frequently. There is also a utility called gifinfo which can be used to identify GIF files, including multiframe GIF animations. Both WhirlGIF and MultiGIF come with fairly decent documentation describing how to use the various command line options. About the only thing that might be missing is why you would use one option over or in conjunction with another, but thats a minor point. I find the use of sprites with MultiGIF and its smaller output files more useful to me. However, new users who are not quite familiar with how to create sprites (including transparency) with tools like the Gimp might prefer the simpler WhirlGIF.

#### Adding Fonts to your system Fonts are used extensively for creating graphics images. Many of the graphics on my Web pages and in the Graphics Muse use fonts I've installed from collections of fonts on commercial CDs. Fonts are also used for ordinary text in X applications, from the fonts in your xterm to the title bars provided by your window manager to the pages displayed by xman. The difference is hard to distinguish, but whether used for ordinary text or to create outrageous graphics, adding fonts to your system and letting your X server know about them is the first step . Just so you know: nearly all X applications accept the "-fn" and/or "-font" command line arguments. This is a feature built into the X Windows API. How this is used depends on the application. For xterms, just use "-fn " to specify the font used in the xterm window. This does not specify what font to use for the xterm title bar. That is controlled by the window managers X resources. To know what fonts are available on your system you can look under the font directories for fonts.alias files. There is supposed to be one of these in each directory under /usr/X11R6/lib/X11/fonts, but whether there is or not depends on the distribution you're using. The name to use is the name on the left. For example, under /usr/X11R6/lib/X11/fonts/misc, in the file fonts.alias there is the following line:
5x7 | -misc-fixed-medium-r-normal- -7-70-75-75-c-50-iso8859-1
To use this font with xterms I would do: xterm -fn 5x7 You can actually use the string on the right, but unless you understand how fonts are defined you probably don't want to do this. I don't want this to turn into an X Windows column. There are other places for such discussions, and I'm sure LG could use a regular columnist for X. But this column is about computer graphics so this is all I'm going to say about using fonts in X applications from the X resources standpoint. In any case, since the X server is being used to handle the fonts, adding fonts to your system is the same whether you use them for graphics or as X resources. Suppose you had a font called westerngoofy that you wanted to use in the Gimp as the start of some neat title graphic for a Web page. By default there isn't an entry in any of the fonts.alias files for westerngoofy, so when you use the text tool in the Gimp it won't show up in the list of available fonts. There are 3 steps to making this font available for use with the Gimp: Grab the fonts and place them in a local directory Configure that directory for use as a font directory Tell the X server about this new font directory The first part is simple - grab a copy of the font file and put it in some directory. Make sure you've uncompressed it if the archive you retrieved the file from compresses the fonts. Most X servers don't understand compressed fonts (some do, but all understand uncompressed fonts). The directory can be owned by anyone. It does not have to be a directory under the system fonts directories (generally these are under /usr/X11R6/lib/X11/fonts). On my system I have a "src/X11" -Top of next column- |  |  |  |
More Musings... Printer Info - my journey into color printing tkPOV V2.0 - a graphical front end to POV-Ray 3.0
directory under my home directory. Under this I created a "fonts" directory where I put new fonts that I find. If you are the owner of your system and have root access you might want to put the fonts under /usr/local/fonts or someplace similar. Note that since TrueType fonts are not supported by default by most X servers we won't concern ourselves with how to use them here. The font format you should be using are Type1 fonts. There are plenty of places to get these, including numerous CD-ROMs available from any decent computer software stores. Some online resources are listed in the Linux Graphics mini-Howto under the "Other Topics" section. Next you need to configure your new fonts directory so that the X server can provide you FontName-to-File mappings. To do this you need to get hold of a little Perl script called type1inst, which is short for "Type 1 Install". This script is easy to use and comes with documentation explaining what you about to do. Basically, you run the script to create a couple of files, fonts.alias and fonts.dir, which the X server uses to associate a fonts name to the font file. You can also use mkfontdir, but I like type1inst better. mkfontdir doesn't always seem to be available on all platforms and finding a binary version (or even source) has never been easy for me (I think it's buried in the X11 source tree, which I really don't want to download just for one program). The last step is to let the X server know about the new font directory. The xset command allows a user to configure a number of options for the X server. One of these options is the paths to search for font files. The format of the command is as follows: xset fp+ <path> The fp option is used to modify the font path. The plus sign is used to add a font path. Because the plus sign is after the fp the font path specified will be appended to the current list of paths, if any. Using +fp would prepend the new path to the front of the current list. There are other possibilities. Running xset -? will provide a thorough list of options. The man page for xset also contains good descriptions of the options. Now that the server knows where to look, it has to be told to go ahead and check for fonts in the new directories. The rehash option to xset does this. Simply run xset fp rehash and your new fonts are ready for use! Of course, once you've installed the fonts in a directory and run type1inst you can put the xset commands in your .xinitrc file so they are run every time you start up your X environment (such as with the startx script). This is what I do so that I always have access to the set of fonts I've installed from CD-ROMs or from font archives from the net. Thats all there is to it. You should now be able to use your fonts with tools like the Gimp or XPaint in order to create lots of interesting logos for Web pages. Enjoy!

The following links are just starting points for finding more information about computer graphics and multimedia in general for Linux systems. If you have some application specific information for me, I'll add them to my other pages or you can contact the maintainer of some other web site. I'll consider adding other general references here, but application or site specific information needs to go into one of the following general references and not listed here.

Linux Graphics mini-Howto
Unix Graphics Utilities
Linux Multimedia Page

Some of the Mailing Lists and Newsgroups I keep an eye on and where I get alot of the information in this column:

The Gimp User and Gimp Developer Mailing Lists.
The IRTC-L discussion list (I'll get an address next month).
comp.graphics.rendering.raytracing
comp.graphics.rendering.renderman
comp.os.linux.announce

## Future Directions

Next month:

- BMRT Part I: An Introduction - creating a simple scene and rendering it
- Scanner Info
- Height Fields with HF-Lab
- Review: TkPOV - a POV-Ray scene file editor
- Book Review: OpenGL Programming for the X Window System

Let me know what you'd like to hear about!

#### Previous ``Graphics Muse'' Columns

Graphics Muse #1, November 1996
Graphics Muse #2, December 1996
Graphics Muse #3, January 1997

##### Copyright © 1997, Michael J. Hammel
Published in Issue 14 of the Linux Gazette