The Linux Graphics Mini-HowTo Version 1.3 This document is maintained by Michael J. Hammel The master page for this document is http://www.csn.net/~mjhammel/linux-graphics-howto.html. Last updated: May 15th, 1996 -------------------------------------------------------------------- Table Of Contents * Whats New o General o The Internet Ray Tracing Competition * Introduction o Purpose o Where to get this software o Updates and Errata o The Four Basic Types of Graphics Tools * [Updated!] Graphics Basics o File Formats o Pixels vs. Primitives and Rendering vs. Drawing o [Updated!] Static vs. Animated Images o Live Video o System Requirements o Texts on Computer Graphics * Image Viewing Tools * Image Creation Tools o Drawing and Paint Programs o [Updated!] Raytracers and other 3D tools o Fractal-based tools (heightfields, etc.) o [Updated!] Modelers o [Updated!] Programming Interfaces (APIs) o Image Libraries o Other Image Creation Tools * Image Manipulation Tools o [Updated!] Static Image Manipulators o Animated Image Manipulators * Image Conversion Tools * Tools yet to be evaluated * Other Topics o Creating Web page graphics o Fonts on Linux o A word about the X11 directories o Distributed Rendering o Newsgroups o References * Acknowledgments * Register for updates -------------------------------------------------------------------- Whats New General Current Version Number: 1.2 I added markers to the Linux Graphics mini-Howto so readers could quickly find changes from previous versions. Anything marked with the New graphic, [New!], is new. That should make it easy to find. There is also an Updated graphic, [Updated!], for things which existed in previous releases but were incomplete, wrong or otherwise needed to be changed. Readers can register to be notified when this document is updated. The Internet Ray Tracing Competition The Internet Ray Tracing Competition is back online. This contest was originally started by Matt Kruse and generally ran in the comp.graphics.* hierarchy. Matt was a bit overwhelmed by the work and had to stop the competition back in November or December. A new group of individuals has picked it up (I'm on the backup Admin team, and Matt is helping coordinate things) and the first contest has started. Although open to renderers that run on any OS, many of the competitors and readers of comp.graphics.rendering.raytracing (where Matt started the original competition) are Linux users of POVRay. Check the IRTC Home Page for more details. For those with ftp only links, try ftp://ftp.povray.org:/pub/irtc. [ArroContents -------------------------------------------------------------------- Introduction Purpose The Linux Operating System has gone from a hackers paradise to a system used for everything from ISP Internet Servers to a document publishing platform. One area which has not gotten much exposure is the use of Linux in dealing with graphical images. This document will attempt to cover the tools available for viewing, creating, manipulating, and converting graphics images on Linux systems. Although many of the tools that will be explored here are X windows based, this document will not cover the configuration issues associated with running X Windows. Where necessary, information regarding system requirements, such as X server extensions, will be provided. Also, the tools discussed here relate to graphics "images", that is, pictures. This document does not cover graphical "interfaces", that is, windowing systems features. This document also does not cover tools that are designed for display using non-X-based interfaces, such as VGA/SuperVGA tools. I don't have much interest in those environments. Perhaps someone else will start a mini-Howto for those tools. Most of the information here is based on information I've gathered on my own over the Net. Terminology is taken, when needed, from Computer Graphics: Principles and Practice, 2nd Edition by Foley, Van Dam, et al. I will not attempt to make this an introduction to computer graphics, however. There are references included in the subsection titled Texts on Computer Graphics and at the end of this document in the subsection titled References for serious minded graphics programmers. Where to get this software Most of the software listed in this document is available either in the various Linux distributions in the X11 trees or from the sunsite archives and its mirrors. A few items are available only via a commercial vendor. Most of these require upgrades to the X server to work, and only the commercial vendors servers have most of those extensions. Where a commercial vendor of a particular product is known I have given the name of the vendor. However, I don't have contact information for these. You'll have to search around for those (try the Linux Journal, which I know they advertise in). Updates and Errata If any readers find mistakes or omissions that I should know about I encourage you to contact me at mjhammel@csn.net. I know alot of the tools listed do not have up-to-date version information, so if you have information on these please send it to me. Please include why your information should be considered authoritative (ie where did you get it from). I also know that there are many tools available on the sunsite archives that I have not covered here. I simply haven't gotten to them all (I don't even have disk space for them all). If you have information on these, especially if you're the author of those tools, please send me email explaining the tools name, purpose, and where it fits into this document. The more specific you are in your information the better. Note: due to the outrageous fees imposed by my ISP I haven't been able to do alot of perusing the net lately. I'm going to switch ISP's, but I have to find a job first. When I do both, I'll move my web pages (including this document) to its new home and leave notices on my old site as to where the new site is. What this means is I won't be updating this document much in the next few weeks unless I get alot of feedback from the Linux community (via email). So please: feel free to speak up! The Four Basic Types of Graphics Tools When you get right down to it, there are basically four (4) different kinds of tools that deal with graphical images: * Image Viewing Tools These are tools which read in image files of various formats and display them visually. Some tools do nothing more than display the images. Many display them and allow you to manipulate them or convert them to other formats. * Image Creation Tools These are tools which allow the user to draw, paint, or render images. Drawing and painting tools are rather common on computer systems these days. Generally available rendering software, software which creates images from models, is relatively new, especially to Linux. * Image Manipulation Tools Manipulation tools allow a user to take an existing image and change it in some way, usually on a pixel by pixel basis. The manipulation will change colors, hues, color-depths, and a variety of other things. * Image Conversion Tools Image files come in many formats. Although there are a number of formats that are quite popular, none is the defacto-standard. Viewing, creation, and manipulation tools generally support a variety of formats. However, its possible that you'll come across a format that a particular tool does not support. In this case you'll need to conver the image from the first format into one your other tool supports. This is where the conversion tools come into play. Each of these will be covered in length in this document. It is interesting to note that many of the tools discussed will overlap more than one of these types. For example, tools that create images are seldom very interesting unless you can view what they've created. [ArroContents -------------------------------------------------------------------- Graphics Basics [Updated!] File Formats There are 100's of different formats used for graphics images on computer systems(Graphics1). Some of the more popuplar static formats are: * GIF - Graphics Interchange Format originally from Compuserve. GIF is 8-bit color, lossless and is good for synthetic (line drawings, "cartoonish") images, and doesn't compress well. * JPEG - from the Independent JPEG Group, JPEG supports 24-bit color, is lossy, works well for realistic (scanned photos, hight quality anti-aliased renderings with smooth changes in color and shading, etc) images and compresses well. * TGA - formerly from TrueVision in support of their Targa display adapter. The TGA format is normally used for 24-bit color images, but supports 8, 16, 24 and 32-bit (24 bits for image data and 8 bits for alpha channel) images too. * XBM - X Bitmaps (grayscale bitmaps) * XPM - X Pixmaps (color bitmaps) * PNG - Portable Network Graphics, from the PNG group, supports bit depths from 1 (mono) to 64 (super-truecolor + alpha). PNG was developed because GIF compression was patented by Unisys and couldn't support 24-bit or alpha images. Compresses better than GIF, but not as well as JPEG. Lossy means that parts of the image data are discarded. So if an image is compressed, some of the image data is lost. If the image is decompressed and compared to the original, there will be missing data. Generally, the data lost during compression is redundant information and doesn't affect the visual appearance of the image. However, at higher compression ratios the lost data is not redundant and the quality of the image degrades. Lossless means that no data is lost during compression. TGA, XBM, XPM, and PNG are all lossless formats. Alpha refers to the transparency of images. A full alpha channel in an image allows for any level of transparency (from fully opaque to completely transparent) across the entire image. GIF and PNG support palette based transparency where a single pixel value is the transparent color. However, with GIF the pixel color is either fully opaque or fully transparent. PNG supports a range of transparency for the transparent color index. PNG also supports, along with TGA, a full alpha channel. There are not nearly so many animation formats, especially those that are available for Linux systems. A couple of the more commonly known formats are: * MPEG - from the Motion Pictures Experts Group * FLI/FLC - originally from AutoDesk Animator, FLI supports 256 color at 320x240 resolution and FLC supports 16 bit color at higher resolutions * AVI * Quicktime - from Apple Computer See the section titled Static vs Animated Images to learn more about the differences in image types. Each of these formats is well suited for different situations. GIF and JPEG images are currently the only widely supported image types for Web browsers. TGA provides 24-bit images, which means when reducing the image size the quality of the new image is likely to be nearly as good as the original. PNG is a portable format that was recently developed in light of copyright or patent issues for other formats. Which format you use is dependent on which tool you use and the environment in which you wish to use your images. Most tools support the GIF format and many support JPEG. If you're doing Web page development you will be working primarily with these image types when integrating your images into your pages. However, you may find that creating the images will require some other format, such as TGA for 3D images (depending on what tools you use). If this is the case you will have to deal with image conversion tools to get your image into the right format. Pixels vs Primitives and Rendering vs Drawing A pixel, or "picture element", is one point on the screen. It can be one color or one shade of gray. A graphics primitive is a shape, like a circle, sphere, box, or torus. To display primitives any number of pixels can be used. Tools that allow the user to create primitives are generally referred to as drawing or paint programs. Tools which are concerned with computing the color of individual pixels based on information about primitives (models) are called renderers. This process, computing pixel values from primitives, is also called rasterization. This may seem a little confusing when you consider some paint programs allow you to set the color of individual pixels (such as using the Fat Bits option in xpaint). However, setting this color by hand is tantamount to drawing a line (another type of grapichs primitive) that is really short. In this case, the tool is not determining the pixel value based on model information. It is simply painting a pixel based on direct user feedback (and nothing else). Life is never so simple and you'll find the line between these definitions blurs as you learn more about graphics tools, but eventually you won't really care. You'll be able to know what you need to do and what tool can do it, regardless of how its classified. Static vs Animated Images Static images are like paintings or photos. Most tools available deal either primarily or only with static images. Animated images can be created either by stringing static images together into a particular format and using another tool to play them back (such as mpeg_play) or by using a programming language specifically designed for creating animations. Examples of such languages (API's actually) are OpenGL and the PEX/Phigs X extensions. Both types of tools will be covered by this document. Live Video One of the new forms of video adapters to come to market recently are the live video adapters. The adapters allow external sources, such as video cameras or VCRs, to connect directly to a PC and display on the users monitor. There is an extension to the X protocol to handle live video that is called xvideo. However, there are few applications available that make use of this extension. Of the 3 main X servers (XFree86, X Inside's Accelerated X, and the server from MetroX) available for Linux, only the two commercial versions support xvideo. Since this capability is still relatively new, it won't be covered in this document at the current time. As I get more information or new tools become available, I may add a section devoted to live video applications. System Requirements All the tools covered by this document require that the user have a properly installed Linux system. Most require a properly installed X environment, including the X shared libraries and an X server. A few tools require special extensions to the X server. Any special requirements, above the need for Linux and generic X Windows support (such as the X server extensions), will be listed with each of the tools. A few words about hardware vs. software acceleration. The architecture of the X windows system doesn't allow for applications to make direct use of video hardware. That responsibility falls to the X Server. Because of this, users with specialized hardware which can speed up graphics display, such as using MPEG hardware, cannot expect the applications to make use of this hardware. The applications are written to use the available API's which the X server can understand. Some of these allow the server to make use of special hardware (like the X Video extension). Other server extensions operate transparently to the applications. This means that the application cannot even ask for such support - it is up to the server to either support the hardware or not. Some accelerations are handled in the server software instead of in hardware. An example of this is the 1.2 Accelerated X server from X Inside, which has software acceleration for its OpenGL support. This means that the OpenGL API is supported, but the server doesn't make use of specific hardware designed to aid programs which use this API. Instead, the server attempts to speed of graphics dispaly of OpenGL programs through various software tricks and techniques. Texts on Computer Graphics These are a few references for graphics in general. Other reference material that is specific to a tool will be listed with that tool in the following sections. * Foley, van Dam, Feiner and Hughes; Computer Graphics: Principles and Practice 2nd Ed Make sure you grab the 2nd Edition that uses C instead of Pascal! There used to be an automatic email server for this text. Try email to graphtext@cs.brown.edu with "Subject: Get-Text-Bug-List". Also, "Subject: Help" returns other services provided. * Foley, et al; Introduction to Computer Graphics, 1994 This is a stripped down version of the previous reference, suitable for an introductory computer graphics course. This one apparently only supports C (ie there isn't a Pascal version). * Alan Watt; 3D Computer Graphics * Alan and Mark Watt; Advanced Animation and Rendering Techniques Addison Wesley, 1994 Despite the title, most of the book is dedicated to Computer Graphics (Rendering) and not to Animation. * Rogers and Adam; Mcgraw Hill; Mathematical Elements for Computer Graphics * Cohen/Wallace; Radiosity and Realistic Image Synthesis * Hearn and Baker; Computer Graphics, 2nd edition, March 1994 * Hill; Computer Graphics, December 1989 * Angel; Computer Graphics, 1989 For more information about doing graphics on Unix systems, please see my Raytracing and other 2D/3D graphics for Unix Systems web page. [ArroContents -------------------------------------------------------------------- Image Viewing Tools Viewing tools allow a user to display an image. This includes tools which do no more than display the image once or place it on the background of an X display. Generally tools that allow you to view an image also allow you to do something else with it. This section is just for those people who wish to find a tool for simply viewing images. * xsetroot Generally available with the base X11 installations and can be found in /usr/bin/X11. Allows the user to display an image as the background to their X display. This is pretty nifty to do, but if you're on a slow machine or if you have 16M or less of memory it might be wise not to use this. Having fancy images as a background slows window redraws when you move them around. * xsetbg Generally available with the base X11 installations and can be found in /usr/bin/X11. However, this may not be in every distribution. xsetroot, which does basically the same thing, might be more likely to be in a distribution that does not have xsetbg. * xwud Generally available with the base X11 installations and can be found in /usr/bin/X11. This tool is used to view X window dumps (image files in xwd format) created with xwd or other tools. * xv Far and away the best image viewer available, xv includes Postscript documentation of over 100 pages. This product is shareware. The latest version is 3.10a. Most distributions contain a version of xv although the version may not be the latest. xv is more known for its image manipulation capabilities and will be discussed in more detail in the section titled Image Manipulation. [ArroContents -------------------------------------------------------------------- Image Creation Tools Creation tools include those which permit the user to use an electronic pen or pencil to create pictures, much like an artist on a canvas. They also include tools which allow a user to model pictures, similar to CAD (Computer Aided Design) programs, and then use those models with other tools to actually create the final image. Finally, any tool which provides an Application Programming Interface (API) which programmers can use to create images are also included. Drawing and Paint Programs * xpaint - version 2.1.1 by David Koblas File Formats Supported: TIFF, PPM, GIF, XBM, PS, XPM, XWD Generally available with the X11 installations on most distributions and can be found under /usr/bin/X11. xpaint is comparable to tools such as MacPaint or MS-Paint (or whatever the Microsoft paint program is called), although not nearly as feature-rich. There is another tool called spaint in ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics/draw/, but I've never used this and don't really know what it does. A beta version of Xpaint 2.2 from Torsten Martinsen (bullestock@dk-online.dk) is now available. Based on the announcement posted to comp.os.linux.announce it appears quite a few features have been updated or added. I build it on my systems but he left some silly things in the Imakefile's (hard coded the path to a config file). Other than that it appears to build fine. * tgif File Formats Supported: I'm not clear on this one, but I think it supports XBM, XPM, EPS, GIF and OBJ (which may be a format specific to tgif). This tool doesn't come in the base X11 installations but is available on sunsite.unc.edu. I suspect its also available as a separate package, possibly associated with the X packages, in the various distributions. tgif is a drawing program very much of the caliber of MacDraw. It has a very extensive feature set and deals well with primitives and text. It does all its work in 2D. The tool is based on Xlib and Xt, so Motif is not required. * [Updated!] The GIMP - The General Image Manipulation Program File Formats Supported: Depends on plug-ins that are configured. If the correct libraries are available on your system then TGA, GIF, JPEG, TIFF, XPM, and PNG are available. The GIMP is a tool similar in style to Adobe Photoshop but not nearly so feature rich. It's being written by a couple of undergrads at UC Berkley and is relatively new in its life cycle. The current release for Linux is 0.54. Although The GIMP does allow for some image creation, its best use is in image manipulation. More details on this application will be found in the section titled Image Manipulation. Raytracers and other 3D tools These are the really fun tools. Raytracing applications take a model, which is a description of a scene or collection of one or more 3D objects, and determine how the scene would look in 3 dimensions. They take into consideration lighting, camera angles, reflection, textures, and lots of other things in determining the color of an individual pixel. One thing they don't do is determine how an object is lit by reflected light. That process is called radiosity. Some raytracers are starting have radiosity algorithms added to their code. Alot of the realism of Toy Story came from radiosity effects. * [Updated!] POV-Ray - The Persistance of Vision Raytracer Current Version: 2.2, with a 3.0Beta binary available (source for 3.0 is not available for the Beta, but will be when the Beta period has expired). Current beta version is at revision 7. File Formats Supported: POV-Ray 2.2 outputs in TGA, RAW, and DUMP formats, although the latter two are almost never used. There are patches for 2.2 that allow it to support ppm, PNG, and JPEG output. It reads in a model file that is ASCII text, formatted in a language specific to POV-Ray. The a beta version of 3.0 available for Linux supports TGA, PPM, and PNG formats. Web Site: http://www.povray.org Newsgroups: comp.graphics.rendering.raytracing POV-Ray is a truly wonderful program. It started life on Microsoft based systems and has been ported to many Unix platforms, along with Macintosh, Amiga and a few others. The program is maintained by a volunteer network of developers, is well coordinated and has its own domain (povray.org). There have been at least 3 texts published (Young3 & Enzmann4) related to POV-Ray, and more are no doubt in the works. POV-Ray has a very large following that have created a number of utilities for use with the renderer. The POV-Ray web site doesn't easily distinguish tools that are available for Unix (ie Linux) platforms. I set up a Web page specifically to list and discuss these utilities at http://www.csn.net/~mjhammel/povray/povray.html. * Polyray File Formats Supported: unknown Web Site: http://www.inf.fu-berlin.de/~leitner/grafik/polyray.html Newsgroups: comp.graphics.rendering.raytracing Polyray is a raytracer. I don't know much more about it than that. I just haven't had time to explore it yet. Polyray is available from the sunsite archives and its mirrors. One user of Polyray reported: Polyray is a version of POV-Ray that does function surface evaluations. Its pretty cool if you like doing the math for topologies rather than using a script to string a bunch of objects together. * Radiance File Formats Supported: unknown Web Site: http://radsite.lbl.gov/radiance Newsgroups: comp.graphics.rendering.raytracing I know even less about Radiance, except that it appears to be available for Linux systems from the Sunsite archives. A version also appears on the Slackware 3.0 CD-ROM, so I'm guessing its also on many of the other Linux CD-ROM distributions. * Rayshade File Formats Supported: unknown Web Site: Newsgroups: comp.graphics.rendering.raytracing Rayshade also appears available for Linux systems from the Sunsite archives. I don't know anything else about it, however. * BMRT - the Blue Moon Rendering Tool File Formats Supported: RIB Web Sites: o ftp://ftp.gwu.edu/pub/graphics/BMRT. o http://www.seas.gwu.edu/student/gritz/bmrt.html Newsgroups: comp.graphics.rendering.renderman A Renderman ((C) Pixar) compliant rendering engine. The following is taken from the comp.graphics.rendering.renderman newsgroups FAQ: Larry Gritz has a shareware implementation, called the Blue Moon Rendering Tools (BMRT). It supports ray tracing and radiosity, area lights, full implementation of SL, volume and imager shaders, and other advanced features. It also comes with real-time RIB previewers (under X11 and/or OpenGL). BMRT runs on SGI, HP, NEXTSTEP, Linux, IBM RS/6000, and DEC Alpha. There are no Mac, Windows, or DOS versions. It is available from ftp://ftp.gwu.edu/pub/graphics/BMRT. More information about BMRT is available from http://www.seas.gwu.edu/student/gritz/bmrt.html This tool is distributed in binary format for Linux and is very easy to set up and run. However, how to create the shaders and RIB files is not readily apparent. The sced modeler can output RIB files but I'm not clear yet on how shaders are created. I would consider this a fairly advanced tool, not for the beginner. Start with POV-Ray first, since it has quite a bit of printed documentation and a large set of development tools, then move into tools like BMRT. Fractal-based tools (heightfields, etc) These tools allow the user to create various sorts of images, many of which can be used by the 3D raytracers to produce moons, mountains, and other surface features. * HF-Lab v0.81 File Formats Supported:GIF, POT, TGA, PGM, MAT, OCT Web Site: http://jumpjibe.stanford.edu:8080/beale/gforge/ Newsgroups: comp.graphics.rendering.raytracing This tool has a text based interface that allows the user to create fractal surfaces, viewable in 2D and 3D. Although is uses a text interface for input, the viewing windows are X windows. This is a very interesting program thats easy to learn and use. * xfractint File Formats Supported: GIF, POT (which is 16-bit GIF) I've not used this program, although it appears to come standard with most Linux distributions. It is a Unix port of a DOS program, and in fact has an option to "Shell to DOS". The man page is terse and I don't appear to have the docs which come with the source. This might be available from sunsite or ftp.x.org. Modelers Modelers are tools which are used to create the scene files used as input to 3D renderers (see above). Their output file formats are not image file formats, but rather formats specific to various renderers. Some modelers can also inport files of various formats. Again these import files are not image files, but other forms of model scene files. * Sced v0.94 File Formats Supported: POVRay, Radiance, Rayshade, Renderman (RIB), VRML Web Site: http://http.cs.berkeley.edu/~schenney/sced/sced.html Newsgroups: comp.graphics.rendering.raytracing comp.graphics.rendering.misc Sced is a constraint based scene editor, or authoring tool if you're into VRML. It is a program for creating 3d scenes, then exporting them to a wide variety of rendering programs. Programs supported are: o POVray o Rayshade o any VRML browser o anything that reads Pixar's RIB format o Radiance o Plus a couple of local (sced specific) formats Sced uses constraints to allow for the accurate placement of objects, and provides a maintenance system for keeping these constraints satisfied as the scene is modified. Sced is available from ftp://ftp.cs.su.oz.au/stephen/sced and (soon, if its not already there) ftp://ftp.povray.org/pub/pov/modellers/sced. * Sceda v0.80 File Formats Supported: POVRay, Radiance, Rayshade, Renderman (RIB), Genray, Genscan Web Site: http://www.cyberus.ca/~denism/sceda/sceda.html Newsgroups: comp.graphics.rendering.raytracing comp.graphics.rendering.misc Sceda is a version of sced that supports animation. It allows a user to model a scene, then describe how objects in that scene will move and where they move to. Sceda then creates a series of intermediate scenes that can be used as input (as individual files) to the rendering engine to create an animation. Sceda is slightly behind Sced in version, but Stephen Chenney says thats his fault and is hoping to fix that soon. * [Updated!] Midnight Modeler v2.1c File Formats Supported: MNM, RAW, DXF FTP Site: ftp://sunsite.unc.edu/pub/Linux/apps/graphics/rays/pov/mnmlinux-pl2.tgz ftp://sunsite.unc.edu/pub/Linux/apps/graphics/rays/pov/mnm-linux-pl2.static.ELF.gz You need both files to run the ELF version (I think - you might only need the second file if you don't have ELF shared libraries on your system already). Newsgroups: comp.graphics.rendering.raytracing, comp.graphics.rendering.misc This is a port of a DOS program that is very CAD-like. The interface is quite nice, however the program doesn't use X application defaults, so setting the colors is difficult. On 256 color displays you're likely to get alot of color flashing. The program is only available in binary, since the original author of the DOS version apparently doesn't like to give out his source. Programming Interfaces (APIs) An alternative to creating 3D animations by stringing together a series of static images is to create a program that creates the images on the fly. This is useful for having interactive environments where the images displayed can depend on user input. * OpenGL Web Site: o http://www.digital.com:80/pub/doc/opengl/ - man pages o http://www.sgi.com/Technology/openGL/glspec/glspec.html - specifications Newsgroups: comp.graphics.api.opengl, comp.graphics.api.inventor OpenGL comes from Silicon Graphics, Inc. and is a programming language that has gained alot of popularity in the recent past. I know of a couple of texts that are available: o OpenGL Programming Guide, by Neider, Davis, and Woo; Addison-Wesley o OpenGL Reference Manual, OpenGL Architecture Review Board; Addison-Wesley o At least one text on OpenInventor, a less primitive language for creating OpenGL applications (at least I think thats what it is). Sample source for the Programming Guide is available from ftp://ftp.sgigate.sgi.com/pub/opengl, although the text says many implementations come with this source already optimized for your system. I don't know if thats true or not for Linux implementations. OpenGL implementations are available as server extensions and a set of programming libraries from the two commercial X server vendors (X Inside and MetroX). * MesaGL 1.2.6 Web Site: http://www.ssec.wisc.edu/~brianp/Mesa.html FTP Site: o ftp://sunsite.unc.edu/pub/Linux/X11/libs/Mesa-1.2.7.tgz o ftp://iris.ssec.wisc.edu/pub/packages/development/graphics/mesa Newsgroups: comp.graphics.api.opengl Mailing List: listproc@iqm.unicamp.br use the following in the text of them message: sub mesa This is a freely-available version of the OpenGL API. Since it has no server extensions, all the accelerations of the OpenGL specification are handled in software. This might be a good place to learn the OpenGL language. Building the libraries and associated programs is very easy. I tried the samples and demo programs on my 486/66DX2 with 40M memory. Most were a bit sluggish. I would think if you're going to get into interactive 3D programming you might consider at least a Pentium 90 or better. Thats just a suggestion, though. Remember: faster graphics cards (ones with special hardware acceleration) won't help for Mesa since it doesn't make use of the features of those cards (the X server would have to do that). The README file for Mesa states that Mark Kilgard, the author of Mesa, writes a column about OpenGL in the X Journal and that if you're looking to learn about writing OpenGL programs this might be a good place to start. The examples are written in GLUT (the OpengGL Utility Toolkit, which is discussed elsewhere in this document). Disclaimer: I have no association with the X Journal. * GLUT - GL Utility Toolkit 3.0 Web Site: http://reality.sgi.com/employees/mjk_asd/glut3/glut3.html FTP Site: ftp://sunsite.unc.edu/pub/Linux/libs/X/glut-3.0.tgz GLUT provides a simple portable, window-system independent interface allowing you to write production OpenGL applications quickly and easily. This is a replacement for aux and tk toolkits. The aux and tk toolkits are used in the OpenGL Programming Guide and in SGI's demos, respectively. However, they were not intended for production applications. If you're going to write Mesa/OpenGL applications you would do so using aux, tk, GLUT or GLX (not discussed in this document). This is similar to saying "write X applications using Motif or the Athena Widgets, not by using Xlib directly". Or at least I think it is. * [New!], lib3D Library - v0.1.1 FTP Site: ftp://sunsite.unc.edu/pub/Linux/libs/graphics This library was just uploaded to sunsite so it may still be in the Incoming directory. This is the initial release of a 3D z-buffering rendering library. It uses a hierarchy of models, cameras and lights that can be manipulated by the user through the API. * SRGP / SPHIGS - The Simple Raster Graphics Package and Simple PHIGS Web Site: unknown Newsgroups: unknown SRGP is a library for teaching 2D computer graphics. It is the primary tool covered in Computer Graphics: Principles and Practice (Foley2) in chapters 2 and 3. It requires no special server extensions to use. SPHIGS is a simplified version of the PHIGS standard for 3D floating point heirarchical graphics. It too comes as a library that requires no special extensions to the X server to work. The Both of these are available in the sunsite archives under ftp://sunsite.unc.edu/pub/Linux/X11/libs. * PHIGS / PEX Web Site: unknown Newsgroups: comp.graphics.api.pexlib I have very limited knowledge of these two other than they are standards for 3D graphics. PHIGS, the Programmer's Heirarchical Interactive Graphics Standard supports nested hierarchical groupings of 3D objects. PEX, I think, is an extension to the X protocol that supports PHIGS (but I'm not completely sure). There may be support for these in some form from the XFree86 folks. I haven't kept up to date on that particular server. X Inside was working on support but I don't know if they have a commercially available product. I don't have any information on support from MetroX. I've not seen any software only (libraries, etc) that support these. I'm under the impression that you have to have a PEX capable server in order to do PHIGS. Hopefully someone will contact me after reading this document to clear things up. * Java Web Sites: o The Java-Linux Porting Project o Java(tm) Home Page Newsgroups: o comp.lang.java - general Java discussion o alt.www.hotjava - discussion of the HotJava browser Mailing Lists: o java-linux-request@java.blackdown.org - (Maintained by karl@blackdown.org) Discussions and developments concerning the port of Java to Linux. Send email to java-linux-request@java.blackdown.org with the word `subscribe' in the subject to be added to the list. o java-linux-announce-request@java.blackdown.org - (Maintained by karl@blackdown.org) Moderated list for announcements concerning the Java-Linux porting projects. Please send e-mail to java-linux-announce-request@java.blackdown.org with the word subscribe in the subject, to be added to the list. I just started looking into Java and found a very nice place to start - the Sunsoft Press JAVA Series. Each of these, there are 3 texts, comes with a CD (the same CD in each). The first text is called Instant Java. It is really nothing more than users guide for a set of Java applets that are on the CD. My first try at using any of these produced a animatation of a logo for the local Linux users group with very little trouble. The problem with this is that to make the animation viewable on the net, the images have to be very small in size and there shouldn't be too many of them. 8 images worked ok (each about 20k), but Netscape couldn't load 15 images (same sizes). If you want to just see what Java can do, this is a nice book with which to experiment without having to do any real programming (but you do need to understand HTML). An important point to this text and the pre-compiled applets on the CD is that you don't need to download the Java Developer's Kit (JDK) to use them. You only need the JDK (which has been ported to Linux) if you want to write your own Java applets and compile them. The other texts in the series are more about programming in Java. I haven't gotten that far yet. Hey, I just started. Cut me some slack. Another very good source of information about Java on Linux is Eric Raymond's Java on Linux HOWTO. * VRML Web Site: unknown Newsgroups: unknown There apparently is only one VRML browser available for Linux at this time: VRweb from the Univ. of Graz in Austria. It does not fully support all the VRML specifications yet. It seems that in order to use VRML you not only need to configure your own system but your ISP (or whoever runs your Web server that serves your Web pages) must configure the Web server to understand the vrml mime type.(Lutowski5) There are few tools that natively create VRML content but there are a few converters which will take some other format and create VRML files.(Lutowski5) I believe the SCED modeler will output VRML files directly. Note: It is this authors opinion that the VRML market is at least 1.5 to 2 years away from being any use to the personal computer user. If your interested in why I think so, send me email and I'll get on my soapbox. Image Libraries There are a number of libraries that are freely available for use in non-commercial and even commercial development tools. These libraries provide an interface for an application to output images in some specified format. You should check the Licenses or Copyright information in each to how these libraries may be used. * TIFF Library Web Site: unknown Newsgroups: * PNG Library - 1.0 beta 2 - version 0.88 Web Site: http://quest.jpl.nasa.gov/PNG/ FTP Site: ftp://ftp.uu.net/graphics/png/src/ Newsgroups: PNG is a new file format that is catching on quite quickly. It was developed in response to the problems associated with the GIF format along with some possible legal problems regarding the compression format used with GIF. There is a fairly good document (libpng.txt) which explains how to use the library but its not a straight reference guide for the API. This library requires the use of zlib 0.95 or later. The zlib library is available from the PNG ftp/http site or from ftp://ftp.uu.net/pub/archiving/zip/doc/. * JPEG Library Web Site: unknown Newsgroups: unknown * MPEG Library FTP Site: ftp://ftp.mni.mcgill.ca:/pub/mpeg Newsgroups: unknown This library is taken from the Berkely MPEG player and is used to decode and dither MPEG movies. I believe Sunsite (and its mirrors) also have copies of this library. Other Image Creation Tools * xwd - X Window Dump Generally available with the base X11 installations and can be found in /usr/bin/X11. This tool is used to create X window dumps (image files in xwd format). It is a command line drive program that allows you to select an X window (which includes the root window and all the visibile windows) to dump to a file. This is useful for debugging windowing programs. [ArroContents -------------------------------------------------------------------- Image Manipulation Tools Static Image Manipulators * xv File Formats Supported: GIF, JPEG, TIFF, PostScript, PBM/PGM/PPM (Raw), PBM/PGM/PPM (ASCII), XBM, XPM, BMP, Sun Rasterfile, IRIS RGB, Targa (TGA), FITS, PM Web Site: ftp://ftp.cis.upenn.edu/pub/xv Newsgroups: unknown; probably any of the comp.windows.X groups First, xv is shareware for personal use. Commercial, Government, and Institutional users must register their copies. Personal users who send $40 or more for registration($25 is all thats asked) will get a printed, bound copy of the manual, which is well over 100 pages now. I can't say enough good things about this tool. First, to let you know how classy it is, keep an eye out for news reports about JPL or NASA folks. I've noticed not just a few times that when they show images that they received back from planetary probes they tool they use to display them is xv! Thats probably a more sophisticated version than the shareware one. Nonetheless, it gives you an idea of the clout xv has. xv is a viewer and manipulator of images. It is not used to create images. The color editor window is extremely powerful. There are so many features here I can't imagine I've even tried 1/2 of them yet. * NetPBM / pbmplus These tools are the most powerful that I've found for file format conversion. Because of this, I'll reserve detailed discussion of these packages until the Conversion Tools section. One thing I will mention is that most (if not all) of the tools in this package for manipulating images require that you first convert your image to ppm or pnm format. An example is ppmquant, which takes an image of some arbitrarily large number of colors and converts to one with a much smaller range of color index values. This is useful to keep from using up an entire color palette in X. By doing this the user can reduce the flashing effect often seen with programs that use a large number of colors on displays with only 256 available colors. * ImageMagick v3.7.2 File Formats Supported: AVS, BMP, CMYK, EPS, EPSF, EPSI, FAX, FITS, GIF, GIF87, GRAY, HISTOGRAM, HTML, MAP, MATTE, MTV, NULL, PCD, PCX, PDF, PICT, PNM, PS, PS2, RAD, RGB, RGBA, RLA, RLE, SGI, SUN, TEXT, TGA, TILE, UYVY, VICAR, VID, VIFF, X, XC, XBM, XWD, YUV, YUV3, PNG, JPEG, TIFF, PhotoCD Note: support for some of these require extra libraries or programs not included with ImageMagick Web Site: http://www.wizards.dupont.com/cristy/ImageMagick.html Newsgroups: unknown This tool appears rather sophisticated, but I have yet to use it. I have only heard good comments about it. My problem is I don't have all the extra libraries on my system to build it yet. If you wish to use JPEG, PNG, TIFF, HDF, Ghostscript, JBIG, MPEG, PICT, Radiance, RLE, or XPM formats you'll need to make sure you have the appropriate external libraries or applications that ImageMagick will need. The libraries and applications are not included in the distribution, however the README does list where to get them. * CJPEG / DJPEG - from the Independent JPEG Group (IJG) File Formats Supported: unknown Web Site: ftp://ftp.uu.net:/graphics/jpeg Newsgroups: unknown These tools are referenced in the xv postscript documentation. They are shipped as demos with libjpeg and are used for converting to/from JPEG from/to other image formats. * [Updated!] The GIMP - The General Image Manipulation Program File Formats Supported: Depends on plug-ins that are configured. If the correct libraries are available on your system then TGA, GIF, JPEG, TIFF, XPM, and PNG are available in the default distribution. There is at least one plug-in, for PhotoCD's, available for other file formats. Web Sites: o http://www.xcf.berkeley.edu/~gimp - the home page for the GIMP o http://ww.mint.net/~xach/xach.html - various GIMP information, including a Tips, Tricks and Tutorials page. o http://www.worldserver.pipex.com/home/adam/gimp/plug.html - The GIMP Plug-In Registry o http://www.mint.net/~xach/gimp/plugin_examples/examples.html - GIMP Plug-In Examples FTP Site: ftp://ftp.xcf.berkeley.edu/pub/gimp Newsgroups: unknown Mailing List: majordomo@xcf.berkeley.edu The text of the message should be a single line with the following in it: subscribe gimp-list There is a hypermail archive of the discussions on this list maintained at http://www.nesc.k12.ar.us/~garman/gimp-list/. The GIMP provides o Multiple selection tools including rectangle, ellipse, free, fuzzy, bezier and intelligent. o Transformation tools including rotate, scale, shear and flip. o Painting tools including bucket, brush, airbrush, clone, convolve, blend and text. o Effects filters (such as blur, edge detect). o Channel & color operations (such as add, composite, decompose). o Plug-ins which allow for the easy addition of new file formats and new effect filters. o Multiple undo/redo. You can blend one image into another fairly easily. The GIMP Web pages have a short tutorial showing how this can be done. This tool is gaining support rather quickly. The last count had 34 plug-ins finished, 3 in development and 6 planned. This is based on information from the maintainer of the plug-ins registry. I used some of the new plug-ins to create some new images for my Unix Utilities Page. Also, there is a growing number of web pages devoted to the GIMP (see above) with lots of really good information on how to use the plug-ins, add them to your GIMP source tree, tutorials, etc. The discussion group is made up mostly of programmers writing the plug-ins. I suspect, as fast as this tool is gaining popularity, that a discussion group for end-users will form soon as well. If you want to learn a little about things you might be able to do with a tool like The GIMP, check out the Kai's Power Tips and Tricks web page. This page is specifically for tools built for Adobe Photoshop, but it gives you an idea of some of the things The GIMP does now, and lots of what it could do with some external (ie plug-ins) development. Animated Image Manipulators I'm just getting started in learning about animation tools, so this section is still under construction. All those with information on these or other animation tools, please contact me. It should be noted that these tools may not even be manipulators at all. They may just be tools for creating and viewing images. * mpeg_play, mpeg_encode File Formats Supported: unknown Web Site: ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/encode/ Newsgroups: unknown mpeg_play is available from the sunsite archives. I think mpeg_encode is also available there too. I've been told there are Linux binaries on the UCBerkeley web site listed above. Apparently these are quite powerful tools, but also are a bit involved to set up. * xanim File Formats Supported: xanim supports a ton of file formats. The following is taken from the man page for xanim and is slightly abbreviated: FLI, FLC, IFF, GIF87a, GIF89a, DL, Amiga PFX (may be disabled), Amiga MovieSetter, Utah Raster Toolkit RLE, MPEG Type I frames, WAV audio (only PCM audio codec) AVI formats: o IBM Ultimotion o JPEG o Motion JPEG o Intergraph JPEG o Microsoft Video 1 o Uncompressed RGB (8 and 24 bit) o RLE o Editable MPEG Quicktime formats: o RAW - 4,8,16,24,24+, Gray 4 and Gray 8 o Apple Graphics RLE o Apple Animation o Apple Video o SuperMac Cinepak o Component Video (YUV2) o Photo JPEG Web Site: http://www.portal.com/~podlipec/home.html XAnim is a program that can display animations of various formats on systems running X11. XAnim also provides various options that allow the user to alter colormaps, playback speeds, looping modes and can provide on-the-fly scaling of animations with the mouse. * FLI encoders File Formats Supported: unknown Web Site: ftp://www.pov.org/incoming Newsgroups: unknown Again, I don't know much about these tools. Terry Brown posted a note to comp.graphics.rendering.raytracing a few weeks ago that he had uploaded some FLI-based tools to the POV-Ray ftp site in the incoming directory. I don't know if they're still there or if they've been moved to a more appropriate directory. * Aero File Formats Supported: unknown Web Site: unknown Newsgroups: unknown This tool is a sort of modeler for creating animations. It is available from ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics/. There are a number of files there related to aero, including a README. Other than that I don't know much about it. [ArroContents -------------------------------------------------------------------- Image Conversion Tools Conversion tools allow a user to take an image that is one file format and turn it into another file format. These tools are very useful considering the number of differnt image formats that are out there! * xv See the section on Image Manipulation Tools * NetPBM / pbmplus File Formats Supported: 10x, 4425, acad, ascii, atk, bbnbg, bmp, cmuwm, ddif, epsi, epson, fits, fs, g3, gem, gif, go, icon, icr, ilbm, lispm, lj, ln03, lps, macp, map, mgr, mitsu, pbm, pcx, pgm, pi1, pi3, pict, pj, pjxl, pk, plot, pnm, ppm, ps, ptx, puzz, rast, rgb3, sgi, sir, sixel, tga, tiff, uil, x10bm, xbm, xpm, xwd, ybm, yuv, yuvsplit, zinc Web Site: unknown Newsgroups: unknown pbmplus is the older name for this set of tools. I don't know the difference between them as I've only used the pbmplus set. However, both sets are available from the sunsite archives. You can use NetPBM/pbmplus to convert many (but not all) of the formats supported from their current format intp ppm or pnm formats. From there you can manipulate the program using any of a great number of tools (such as ppmquant or ppmrelief), convert to another format such as pgm and then use other tools (pgmhist, pgmoil, etc), or convert to some final image format (ppmtogif, ppmtotga). The trick is to find the right set of tools to start with, the right set of intermediate tools, and the right set of tools for final conversion. It takes a little practice, but eventually their use becomes almost second nature. Since there are so many tools in these packages it is essential that you install the man pages too. Most man pages are rather small (since most of the tools do only one thing to an image) but many of the tools have one or two command line options (or more) that will come in handy when using them. * ImageMagick See the section on Image Manipulation Tools [ArroContents -------------------------------------------------------------------- Tools yet to be evaluated There are a large number of tools of which I've heard or seen reference to but that I know next to nothing about. Below is a list of the tools I'll be looking into in the future (who knows when). If you have information about these tools please feel free to send it to me, especially if you are the tool author or maintainer of Web pages or other documents regarding these tools. * glut - I have this but haven't looked into it yet. Its associated with MesaGL (at the least) and I'll probably look into it when I get deeper into MesaGL. * khoros - http://www.khoros.unm.edu This URL takes forever to load through my ISP. I don't know if its the khoros' server side fault or my ISP's fault. * alchemy - http://www.handmadesw.com/hsi/products.html This is a commercial product of some kind. * python - http://www.python.org/sigs/image-sig/ This URL has the same problem that the khoros one has. * Tools under ftp://sunsite.unc.edu/pub/Linux/X11/xapps: o geomview * Tools under ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics: o xmorph * Tools under ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics/draw: o spaint o xfig o transfig * Tools under ftp://sunsite.unc.edu/pub/Linux/libs/X: o idraw - ftp://sunsite.unc.edu/pub/Linux/libs/X/iv3.1dist.tar.gz o YGL - ftp://sunsite.unc.edu/pub/Linux/libs/X/Ygl.3.0.3.tgz [ArroContents -------------------------------------------------------------------- Other Topics Creating Web page graphics My whole purpose for learning all this stuff was to figure out how to use a Unix box (running on a PC) to create sophisticated graphics for web pages. I was sick to death of hearing about all the tools available for the Microsloth environment and was sure there were plenty of tools that could do the same or nearly the same things as the commercial MS packages. I was right, for the most part. The only tool that was missing was something that handled, using a GUI-interface, the types of image manipulation that tools like Adobe Photoshop could do. With the introduction of the GIMP this niche is filled. The GIMP has lots of problems, but its a terrific start and the authors design included the ability to add plug-ins right from the start. So now, if the Unix community complains no tools like Photoshop are available, the community has no one to blame but themselves. If you're going to use Linux to create Web page graphics you should get hold of the following tools at a minimum: * xpaint * xv * The GIMP * NetPBM/pbmplus I suggest gettig ImageMagick too, based on the praise I've heard from others. The GIMP is nice in that it allows you to create decent tiles for backgrounds. A tile is an image, usually fairly small, that is repeated on the background of a web page. The unique thing about a tile is that no matter what the color variances are along the top, the same variances follow along the bottom. The same is true along the sides. If this isn't true, the tile edges will be visible in your background. The GIMP allows you take any image and offset it along any edge, taking the offset amount and wrapping it to the other side. You then can use a blending tool to mask out the old edges (which will likely be quite visible). Viola! You have a seamless, tileable image! Be careful when creating backgrounds. The biggest problem with Web pages with nifty backgrounds is the lack of care taken to choose a reasonably contrasting font color. Having a dark purple background with dark blue text sucks. I like grayscale backgrounds. They aren't as colorful, but they can be just as snazzy images and, when the grayscale is light enough, a black or near black text is easy to read. Remember: the eyes that read your pages are not your own! You can use xv to view images from some CD of images (probably on a DOS-based CD-ROM of images) and then use it or xpaint or The Gimp to clean it up, add or blend it to another image, or whatever. I find using pbmplus utilities are better for converting image formats than xv since I can create transparent and interlaced GIF's with pbmplus, whereas xv doesn't appear to give me that opportunity. If you're interested in creating 3D images for your pages you should get hold of POV-Ray and the text Ray Tracing Creations (Young3). This is a terrific tool for creating 3D images, but its not a point-and-click interface. You have to manually edit ascii text files which are used as input to the program. Its really not as hard as it might sound. Once you learn how to create these scene files by hand you might consider getting a modeler, such as sced, which does allow a GUI-based interface to creating scene files. I don't suggest starting with a modeler first, though. It might seem like it would be easier, but trust me, its not. You can use POV-Ray to created 3D text as well, but you'll need to get one of the numerous utitlies that POV users have written: font3d. This tool allows you to take any set of TrueType font characters and turn them into 3D objects for use with POV-Ray. Pretty cool idea, if you ask me. NOTE: POV-Ray 3.0 has direct support for TrueType fonts, however I don't know if there is a one-to-one correspondence in features in 3.0 with font3d. For more information about Unix utilities for use with POV-Ray, please see my Raytracing and other 2D/3D graphics for Unix Systems web page. The output file from POV-Ray is TGA (Targa), which is a 24-bit image format. This gives about 16 million colors for the image, but you really don't want to use all that in your web page. Good web pages try to create images that use colors from the same, limited (like 256) color palette. Using xv and pbmplus on the TGA images will help to create decent 3D images that don't hog all the colors on your web pages. If you're getting into VRML or Java, 3D images are likely to be of some interest to you. Again, POV-Ray is a great tool for this. However, I haven't had time to research eith of these new languages so I don't know exactly how the 3D images would fit in. Hopefully I'll get to these before the end of this summer (or maybe if someone gives me a job doing it....) Fonts on Linux The fonts available with the various distributions of Linux are generally those found in the X11 package. This is a relatively limited set of fonts (compared to whats available under DOS, Windows, or even the Macintosh). There are three ways to add to this limited set: * Grab the freeware and shareware font collections from Sunsite or one of its mirrors. I don't know the exact URL, but the file names are freefonts-0.10.tar.gz and sharefonts-0.10.tar.gz. These are rather nice fonts and most are scalable but there are no True Type fonts in these sets. * Get the Caldera Linux package. This distribution includes a font server with a number of True Type fonts. * Mount a DOS partition and use the wide array of True Type fonts available for DOS. Why are True Type fonts important? Mostly for their use in 3D rendering tools. POV-Ray 3.0 supports True Type fonts directly and the font3d utility for POV-Ray 2.2 will only work with True Type fonts. If you're interested in just adding some simple 2D text to some graphic image, you can use the X11, freeware, or shareware fonts. The title graphic to this document was created with a font from the freeware fonts package using Xpaint and the NetPBM tools. A word about the X11 directories Throughout this document, tools which are generally distributed with X11 have been described as being under the /usr/bin/X11 directory. The existance of this directory isn't guarenteed, however. By convention it should exist as a link to the real directory tree. The real tree depends on which version of X11 you are using. For X11R5, the bin directory would be /usr/X11R5/bin. For X11R6 its /usr/X11R6/bin. Life would be simple if this were the only way things were, but of course its not. Some systems have another directory tree, /usr/X386. I believe this is from the XFree86 project, but I'm not sure. On my Slackware 1.2 system /usr/X386 is a symbollic link to /usr/X11R6. Its possible that some distributions may not have this link. In any case, the three system directories in which you might look to find an X-based executable would be: * /usr/X11R6/bin or /usr/X11R5/bin (most Linux systems have R6 now) * /usr/bin/X11 * /usr/X386/bin Of course, if you built the binary yourself then you'll probably know where you put it. At least one would hope so. Distributed Rendering Andreas Dilger has a tool, PVMPOV, which allows the use of a network of computers to render a single image. PVMPOV can run on a number of platforms. I believe it only works in conjunction with POV-Ray, however. Newsgroups The following is a list of Usenet newsgroups which have some association with computer graphics. Most of these have FAQ's located on the FAQ repository at ftp://rtfm.mit.edu. General Graphics (not specific to Linux) * comp.graphics.rendering.raytracing - This group is mostly comprised of users of 3D rendering tools that are available on a number of OSs. The vast majority of readers and posters are users of POV-Ray. * comp.graphics.rendering.misc - general rendering discussions * comp.graphics.algorithms - discussions about implementing graphics tools. Somewhat technical discussions. * comp.graphics.rendering.renderman - discussions related to the Renderman specification. This newsgroup was started by the guys at Pixar. * comp.graphics.api.opengl - discussion regarding OpenGL, including the Mesa and GLUT packages. Linux Graphics * comp.graphics.linux.x - general discussions regarding X windows References 1. Graphics File Formats; by ... 2. Computer Graphics: Princples and Practice; 2nd Edition in C; Foley, van Dam, Feiner, Hughes; Addison-Wesley Publishing Company 3. Ray Tracing Creations; 2nd Edition; Young, Wells; The Waite Group Press 4. Ray Tracing Worlds with POV-RAY; Enzmann, Kretzchmar, Young; The Waite Group Press 5. Rick Lutowski, http://www.iah.com/oa/ and oa@iah.com [ArroContents -------------------------------------------------------------------- Acknowledgments As with all things Linux, this document will only be as good as the people who contribute to it. So far I've done most of the work putting this together, but there are a few people who have offered valuable assistance regarding graphics in general: * John Beale for info on POV-Ray and heightfields, among other things. * Andreas Dilger for lots of POV-Ray and image format information * Rick Lutowski, http://www.iah.com/oa/ and oa@iah.com for VRML info. * The POVRay Team and the comp.graphics.rendering.raytracing newsgroup Please note that if you have some special association with a particular product and offer to help me set it up, get hold of it or learn to use it then I'll probably mention you here. If you just send me pointers to tools I probably won't list you here. Thats not a snub, I honestly appreciate the pointers, but I can't list all of the people who send me URLs. [ArroContents -------------------------------------------------------------------- Registration Enter your e-mail address to receive e-mail when this page is updated. Your Internet e-mail address: [ArroContents --------------------------------------------------------------------- [Arrow] Back to Michael's Home Page Copyright 1996 by Michael J. Hammel mjhammel@csn.net Created: April 9, 1996 Updated: May 2, 1996 Registration courtesy of URL-minder Counter, courtesy of Net Digits, established 05/15/96.