Graphics Muse

#### "Linux Gazette...making Linux just a little less scary! "

| # The Graphics Muse
by |
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

- Graphics Mews
- Musings
- Future directions

Welcome to the Graphics Muse! This is the first in what I hope will be a long running monthly column relating to computer graphics on Linux systems. 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.

This column will be divided into two sections: Graphics Mews, a section devoted to the latest news in graphics such as new releases of products (free or commercial), people in the news, conventions and conferences and whatever else might be of general interest to the graphics community, and Musings, a section where I can spew whatever I think needs to be covered more in depth. The later section I hope will cover things like reviews of products, tips and tricks, interviews with graphics people, or maybe just my philosophies on life. You'll just have to come back each month and see where things go.

I'm open to suggestions on topics for the Musings section. I'll also take any and all notices regarding graphics tools that are being released or updated. Please don't send notices as advertisements - I only want to know about new releases or new products. I'm only doing that to keep my workload down a little.

One thing this column won't cover is X programming or windowing API's (unless they are specifically designed for the development of graphics tools). There are lots of places to get information about X. This column is about computer graphics in general.

## Graphics Mews

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.

- Megahedron
  According to the announcement sent to me from Syndesis Corporation (the maker of this product), Megahedron is a programmable 3D graphics engine. It runs on a number of platforms, including Linux. You can check out the web site at http://www.threedee.com/.
- QT
  Troll Tech AS has released a free version of QT for the X Window System. QT is a complete and well-developed object-oriented program for developing graphical user interface applications using C++. For additional information check out Troll Tech's web site at http://www.troll.no/.

Thats all I've seen for this month. Software releases have been kinda sparse the past month for some reason.

## Musings

First, let me start with some shameless self-promotion: The Linux Graphics mini-Howto and the Unix Graphics Utilities pages. The latter of these I started late last year while beginning to learn about computer graphics through the use of POV-Ray, a 3D rendering tool. I had found that most of the tools available for use with POV-Ray were not Unix based (not specifically, anyway) so I tried to find info on Unix based tools since I was running Linux. After I learned a bit more about computer graphics I started the Linux Graphics mini-Howto in retaliation for a coworkers claims that doing graphics was best left to MS based systems. NOT! The tools need a little organizing, a few need better documentation, but in general you can do some very impressive graphics on Linux systems.

These two pages are available at:
http://www.csn.net/~mjhammel/linux-graphics-howto.html and
http://www.csn.net/~mjhammel/povray/povray.html.
I was offered some free web space by a couple of people so I'll be moving my pages sometime in the future, but probably not till after January.

Note: if you are the official maintainer of any of the packages listed in these pages feel free to keep me informed of new releases. The information there is only as good as the info I've gathered from newsgroups and word of mouth so far.

Ok, enough about me.

My first bit of musings revolves around the use of images in web pages. I get a number of e-mails from people who've seen my web pages (or possibly my ramblings on various newsgroups or mailing lists) asking how to do blah or where can I get blah to do blah for their web pages. The "where" parts are covered by the links mentioned above. The "how" part is a broad question. I'll summarize.

When creating graphics for your pages, keep the following things in mind:

1. Consider your target audience:
   Home Users
   - Most home users have slow links. Even 28.8 modems don't load big graphics all that fast. Keep your images small.
   - Animations that are done with like cell-animations are done for cartoons (sequences of individual images with slight variations to simulate movement) require each cell to be loaded across the net. This is tantamount to one big image taking forever to load.
   - Most home users are still limited to 256 colors on their displays. Lots of users have upgraded to better graphics cards, but how many people do you want to alienate with an image with 10000 colors?
2. If you want the average person to visit your page, you have to give them two things: content and flash. The flash has to be done using as little download time as possible, with as much color as you can squeeze in without overloading the browser (causing it to dither images). The content must be the reason for your pages, not the flash.
3. Background images should be just that - in the background. Don't make the background so gaudy it distracts from your real content.
4. Use common colormaps - this reduces the number of colors the browser has to allocate, leaving some space for other applications. X-based systems can allocate colors into private colormaps, but this causes that annoying "flashing" you see (try running Netscape with the -install option - you'll see what I mean).
5. Flash can be added easily with a simple background over which you add some in-line transparent GIFs.
6. Never use an "Under Construction" image. It's the Web. Of course it's under construction!
7. Don't put those silly graphic dots in place of HTML list bullets. First, they waste the user's time downloading (each requires another connection to the server), and second, they break the formatting rules provided with HTML. It's just not good practice and they don't have any real value add to your pages. Now that you know some basic guidelines for your images, how do you go about creating the images? It depends on what kind of images you want to make. If you want a simple, cartoon-like image you can get a drawing program like xpaint. This tool is good for drawing circles and boxes and filling them in, using a window like a canvas to paint on the screen. However, this tool is limited in what you can do to the image once you've drawn it. One highly popular tool for a number of platforms that does this post-processing is Adobe Photoshop. Using a tool like this takes a bit of practice, but once you've mastered it you can do some rather amazing things. A Linux alternative to Photoshop is the Gimp. The logos on this page were created with the Gimp. So was the background.

   3D images are a whole other matter. There are actually more well-known tools for doing 3D work than there are for doing image manipulation (i.e., tools like the Gimp). Probably the best-known of these is POV-Ray. This tool reads in a text file that uses a "scene description language" to describe how objects in the scene should be positioned and textured. The drawback to these tools is that they lack a point-and-click interface. There are separate tools available, known as modelers, that allow the creation of the scene files without actually rendering the image. In order to create a 3D image, you need to either learn the scene description language or learn who to use a modeler that will create it for you.

   I know this is fairly basic and undetailed, but this is just my first column. Over time I'll try to cover both beginner and more advanced issues.

   ## Future Directions

   Next month: How do you create the textures that get applied to 3D images? Beyond that, I'm considering talking about how to use Type 1 fonts in your images: how to install them, how you can manipulate them with the Gimp to make interesting logos, etc. I'd also like to provide some tips for using POV-Ray and BMRT (although I have a lot to learn about the latter). And I might try to cover a little on how to do animations. Things are pretty open right now. Let me know what you'd like to hear about!

   "Linux Gazette" Penguin courtesy of Larry Ewing.

   ##### Copyright © 1996, M. J. Hammel

   ##### Published in Issue 11 of the Linux Gazette