old-www/LDP/LG/issue32/gm.html

1075 lines
49 KiB
HTML

<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.06 [en] (X11; I; Linux 2.0.30 i486) [Netscape]">
<META NAME="Author" CONTENT="Michael J. Hammel">
<META NAME="Description" CONTENT="The Monthly Column of Computer Graphics for Linux Systems.">
<TITLE>Graphics Muse</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#CC0000" ALINK="#FF6600">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!-- =============================================================
These pages are designed by Michael J. Hammel. Permission to
use all graphics and other content is granted provided you give
me (or the original authors/artists) credit for the work and this
copyright notice is not removed.
(c)1997, 1998 Michael J. Hammel (mjhammel@graphics-muse.org)
============================================================= !--><!-- The Button box as a client side imagemap --><MAP NAME="nav-main"><AREA SHAPE="rect" HREF="#mews" coords="20,18 185,40"><AREA SHAPE="rect" HREF="#webwonderings" coords="10,60 185,83"><AREA SHAPE="rect" HREF="#musings" coords="90,102 185,130"><AREA SHAPE="rect" HREF="#resources" coords="70,152 185,180"></MAP>
<!-- The Button box as a client side imagemap --><MAP NAME="nav-main"><AREA SHAPE="rect" HREF="#mews" coords="20,18 185,40"><AREA SHAPE="rect" HREF="#webwonderings" coords="10,60 185,83"><AREA SHAPE="rect" HREF="#musings" coords="90,102 185,130"><AREA SHAPE="rect" HREF="#resources" coords="70,152 185,180"></MAP>
<TABLE BORDER=0 COLS=2 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/gm3.gif" ALT="Welcome to the Graphics Muse" NOSAVE HEIGHT=216 WIDTH=441 ALIGN=LEFT></TD>
<TD VALIGN=BOTTOM>
<CENTER><FONT SIZE=-1>Set your browser as wide as you'd like now.&nbsp;
I've fixed the Muse to expand to fill the aviailable space!</FONT>
<BR><FONT SIZE=-2>&copy; 1998 by <A HREF="mailto:mjhammel@graphics-muse.org">mjh</A></FONT></CENTER>
</TD>
</TR>
</TABLE>
<HR WIDTH="100%">
<TABLE BORDER=0 COLS=2 WIDTH="100%" >
<TR>
<TD WIDTH="185"><IMG SRC="../gx/hammel/muse-image-map.gif" ALT="Button Bar"
BORDER=0 USEMAP="#nav-main" HEIGHT=200 WIDTH=185 ALIGN=LEFT></TD>
<TD VALIGN=TOP><B><FONT SIZE=+1>muse:</FONT></B>
<OL>
<LI>
<I>v;</I> to become absorbed in thought&nbsp;</LI>
<LI>
<I>n;</I> [ fr. Any of the nine sister goddesses of learning and the arts
in Greek Mythology ]: a source of inspiration&nbsp;</LI>
</OL>
<IMG SRC="../gx/hammel/w.gif" ALT="W" HEIGHT=28 WIDTH=36 ALIGN=BOTTOM>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.&nbsp;
<CENTER><FONT SIZE=-1>[<A HREF="#mews">Graphics Mews</A>][<A HREF="#webwonderings">WebWonderings</A>][<A HREF="#musings">Musings</A>]
[<A HREF="#resources">Resources</A>]</FONT></CENTER>
</TD>
</TR>
</TABLE>
<IMG SRC="../gx/hammel/t.gif" ALT="T" HEIGHT=28 WIDTH=26 ALIGN=LEFT>his column
is dedicated to the use, creation, distribution, and discussion of computer
graphics tools for Linux systems.&nbsp;&nbsp; Well, there were quite a
few announcements in the past month and I'm finding that not all are being
cross posted to both comp.os.linux.announce and to freshmeat.net.&nbsp;
It takes a little more diligence on my part to catch all the announcments,
but since I visit both places fairly often it really isn't that big of
a problem.&nbsp; On the other hand, is it really necessary to repeat those
announcements here?&nbsp; I thought about this for a while, and finally
decided it is worth the effort since both c.o.l.a and freshmeat are sites
for general announcements and the graphics-specific items can easily be
overlooked.&nbsp; By gathering them up and reprinting them here, I can let
my readers worry less about missing the important stuff through the sea
of other announcements at other sites.
<P>I've finally started to catch up on my Musings, too.&nbsp; This month's
issue includes discussions on:
<UL>
<LI>
Managing your CGI Perl scripts using "require" in <I>Web Wonderings</I></LI>
<LI>
A closer look at the libgr package of image file format libraries</LI>
<LI>
A little fun with the Gimp plugin "QBist"</LI>
</UL>
I also considered taking a look at Blender, but I'm not certain my system
is stable enough for that right now.&nbsp; It's been acting a little strange
of late - I'm beginning to think some recent power outages may have corrupted
some libraries.&nbsp; I have plans to upgrade to Red Hat 5.2 whenever it
comes out (I expect the difficulties with dealing with libc/glibc will
all be worked out, much like the 4.2 release had worked out most of the
a.out vs. ELF issues), plus take a look at Xi Graphics Maximum CDE at some
point too.&nbsp; But I hadn't planned on doing either until the October
time frame.&nbsp; I may have to change my plans.
<P>Anyway, a review of Blender is a definite future Musing.&nbsp; The last
time I tried it, the program seemed to be stable, but the interface is rather
complex.&nbsp; A general examination showed that this modeller is quite
feature-rich.&nbsp; It's just that the interface is not intuitive to a 3D
newbie, perhaps not even to an experienced 3D graphic artist.&nbsp; A better
set of documentation is reported to be on the way, due out some time in
September.&nbsp; I'll wait and see what this might offer before stepping
up for a review of Blender.
<P><IMG SRC="./gx/hammel/gm-new.jpg" HSPACE=10 VSPACE=10 HEIGHT=216 WIDTH=225 ALIGN=RIGHT>You
can also keep an eye out for a new and improved Graphics Muse Web site
coming soon.&nbsp; I expect to be able to launch the new site sometime
in the middle to end of September.&nbsp; It will combine the Linux Graphics
mini-Howto with the Unix Graphics Utilities into a single searchable database,
provide recommended reading material and allow you to post reviews of software,
hardware and texts, plus it will provide more timely news related to computer
graphics for Linux systems.&nbsp; And, of course, all the back issues of
the Graphics Muse column from the Linux Gazette will be there too, in a
semi-searchable format with topics for each month provided next to the
links to each month's issue.&nbsp; I'll probably post an announcement about
it to c.o.l.a when it's ready.
<P><A NAME="mews"></A>
<BR>&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/mews.gif" ALT="Graphics Mews" HEIGHT=53 WIDTH=242 ALIGN=LEFT></TD>
</TR>
</TABLE>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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.
<BR>&nbsp;
<TABLE BORDER=0 COLS=3 WIDTH="100%" NOSAVE >
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1 WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<TR NOSAVE>
<TD VALIGN=TOP WIDTH="50%" NOSAVE>
<H2>
The ParPov and Pov2Rib Homepage</H2>
<B><I><FONT COLOR="#CC6600">ParPov</FONT></I></B> is a free (GNU), object-oriented
library written in C++ for parsing Scene Files from the Persistence of
Vision (POV-Ray) Ray-Tracer. It will read a scene written using version
1-3 syntax and creates a structure of C++-Objects, representing all details
of the original description. You can query those objects and use the information
to convert the scene to other formats or many other uses. <B><I><FONT COLOR="#CC6600">Pov2Rib</FONT></I></B>
is also a freely available progam, which allows you to convert scene files
from POV-Ray to a RenderMan Interface Bytestream (RIB). The tool is the
first application of libParPov.&nbsp;
<P><A HREF="http://www9.informatik.uni-erlangen.de/~cnvogelg/pov2rib/index.html">http://www9.informatik.
uni-erlangen.de/ ~cnvogelg/pov2rib/index.html</A>
<P>
<HR WIDTH="100%">
<H2>
GQview 0.4.0</H2>
<B><I><FONT COLOR="#CC6600">GQview</FONT></I></B> is an X11 image viewer
for the Linux operating system. Its key features include single click file
viewing, external editor support, thumbnail preview, thumbnail caching
and adjustable zoom. GQview is currently available in source, binary, and
rpm versions and requires the latest GTK and Imlib libraries.&nbsp;
<P><A HREF="http://www.geocities.com/SiliconValley/Haven/5235/">http://www.geocities.com/
SiliconValley/Haven/5235/</A>
<BR>&nbsp;</TD>
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<TD WIDTH="49%">
<H2>
TKMatman</H2>
<B><I><FONT COLOR="#CC6600">TKMatman</FONT></I></B> is a tool that lets
you interactively set and adjust parameters to RenderMan shaders and preview
images with the given parameters. It can handle surface, displacement,
interior, exterior, atmosphere, light and imager shaders and their combinations.
The idea for the program comes from Sam Samai, who wrote the very useful
IRIX version. With the availability of the Blue Moon Rendering Tools for
different platforms the author of TkMatman thought that a lot more people
will use the RenderMan interface and need ways to select their shaders.
That's why he published his private LINUX version of MatMan. The program
was initially only meant for his own use, but it is in a pretty stable
state now.&nbsp; All feedback is appreciated and new versions will be made
available at the following site:&nbsp;
<P><A HREF="http://www.dfki.uni-sb.de/~butz/tkmatman/">http://www.dfki.uni-sb.de/
~butz/tkmatman/</A>
<BR>
<HR WIDTH="100%">
<H2>
ImPress</H2>
<B><I><FONT COLOR="#CC6600">ImPress</FONT></I></B> allows you to create
good quality documents using vector graphics. You can use ImPress within
a web browser with the Tcl/Tk plugin. It's a reasonable desktop publishing
and presentation tool in a small package designed for Linux and for integration
with Ghostscript.&nbsp;
<P>The GPL'd .03alpha release fixes many bugs and adds better web and presentation
functionality.&nbsp;
<P><A HREF="http://www.tcltk.com/tclets/impress/index.html">http://www.tcltk.com/tclets/impress/index.html</A>
<BR>&nbsp;</TD>
</TR>
<TR>
<TD BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<TD BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
</TR>
<TR>
<TD>
<H2>
LibVRML97/Lookat 0.7</H2>
<B><I><FONT COLOR="#CC6600">LibVRML97</FONT></I></B> is a toolkit for incorporating
VRML into applications, and <B><I><FONT COLOR="#CC6600">Lookat</FONT></I></B>
is a simple VRML browser based on that library. This code is currently
being developed and is one of the more complete open source VRML browsers
available. All VRML97 nodes except Text/FontStyle and the drag sensors
(CylinderSensor, Plane, Sphere) are supported. The Script node supports
much of the Javascript API with more on the way.&nbsp;
<P>Version 0.7 adds Javascript scripting, MovieTextures, TouchSensors,
Anchors, Inlines, and command line arguments -url and -geometry for running
under XSwallow as a Netscape plugin.&nbsp;
<P><A HREF="http://www.vermontel.net/~cmorley/vrml.html">http://www.vermontel.net/
~cmorley/vrml.html</A></TD>
<TD>
<H2>
Slidedraw</H2>
<B><I><FONT COLOR="#CC6600">Slidedraw</FONT></I></B> is a drawing program
in Tcl/tk for presentation slides with postscript output and full-featured.
You can see snapshots, get slide collections or the very latest package
available from it's new web page.&nbsp;
<P>URL: <A HREF="http://web.usc.es/~phdavidl/slidedraw/">http://web.usc.es/~phdavidl/slidedraw/</A>
<P>Beta testers are welcome.&nbsp; Contributors for slide collections and
documentations are also invited.&nbsp;
<BR>
<HR WIDTH="100%">
<H2>
MindsEye 0.5.27</H2>
<B><I><FONT COLOR="#CC6600">MindsEye</FONT></I></B> is a project to develop
a free (in terms of the GPL) available 3D modelling program for Linux.
It features modular design, Multi-scene/user concept, Kernel-system view
instead of Modeler-system view, Object oriented modelling design and network
support in a MindsEye-kernel way.&nbsp;
<P><A HREF="http://mindseye.luna.net/">http://mindseye.luna.net/</A></TD>
</TR>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
</TR>
</TABLE>
<H2>
Visual DHTML</H2>
<B><I><FONT COLOR="#CC6600">Visual DHTML</FONT></I></B> is a free Web-based
authoring tool that lets you create interactive web content using various
DHTML technologies. Visual DHTML brings JavaScript1.2 and DHTML towards
its full and future potential at the application level by bringing more
traditionally low-level programming techniques and features to Web-based
scripting languages.&nbsp; Features include such things as an object oriented,
component-based ("Bean" style) architecture with "Drag and Drop" functionality.&nbsp;
Also included are several pre-built DHTML widgets, such as the dynamic
Drawer and Ticker that you can customize along with component properties
that you can modify. Also, if you like the functionality of this tool,
you can copy and paste the source code by viewing the Page Source from
within Navigator.
<P><A HREF="http://developer.netscape.com/docs/examples/dynhtml/visual/index.html">http://developer.netscape.com/docs/examples/dynhtml/visual/index.html</A>
<BR>
<HR WIDTH="100%">
<H2>
Javascript Debugger 1.1</H2>
Netscape <B><I><FONT COLOR="#CC6600">JavaScript Debugger</FONT></I></B>
is a powerful tool for debugging JavaScript on multiple platforms. Written
in Java, the debugger runs in Netscape Communicator.&nbsp; Netscape JavaScript
Debugger 1.1 supports client-side JavaScript debugging capabilities, including
such features as a watch mechanism, conditional breakpoints, enhanced error
reporter, signed script support, and the ability to step through code.
Using the debugger while developing your JavaScript application, you can
debug scripts as they run, determine what's going on inside your script
at any moment, and find problems quickly. A Linux version is not mentioned
explicitly, but the Unix version works perfectly.
<P><A HREF="http://developer.netscape.com/software/jsdebug.html">http://developer.netscape.com/software/jsdebug.html</A>
<BR>
<HR WIDTH="100%">
<H2>
S.u.S.E. announces XFCom_P9x00 and new version of XFCom_3DLabs</H2>
XFCom_P9x00-1.0
<P>It took a while, but finally a free server for Weitek P9100 based cards
is available. XFCom_P9100 is not yet accelerated and has not received as
much testing as we would have liked it to, but it should work fine on most
P9100 boards.
<P>XFCom_3DLabs-4.12
<P>With this version of XFCom_3DLabs, several problems with earlier versions
should be solved. New features and fixes include:
<UL>
<LI>
Permedia 2v support</LI>
<LI>
Permedia 2 AGP hangs fixed</LI>
<LI>
24bpp mode improved</LI>
<LI>
many drawing bugs removed</LI>
<LI>
DPMS support added</LI>
</UL>
You can find both servers (and the rest of the XFCom-family) at our web
site <A HREF="http://www.suse.de/XSuSE/XSuSE_E.html">http://www.suse.de/XSuSE/XSuSE_E.html</A>
<P>As always, these servers are freely available, the sources to these
servers are already part of the XFree86 development source. Binaries for
other OSs will be made available, time permitting.
<H2>
XSuse Matrox Millenium G200 support</H2>
Suse appears to have also added support for the Matrox Millennium G200
AGP to their Matrox X server.&nbsp; No official announcement has been seen,
but word of this development first appeared to 'Muse's eyes via <A HREF="http://Slashdot.org">Slashdot.org</A>.
<P>The driver is available from <A HREF="ftp://ftp.suse.com/pub/suse_update/XSuSE/xmatrox/">ftp://ftp.suse.com/pub/suse_update/XSuSE/xmatrox/.</A>
<BR>
<HR WIDTH="100%">
<H2>
<A HREF="http://link.springer.de/link/service/journals/00371/index.htm">The
Visual Computer Journal</A></H2>
Special Issue on Real-time Virtual Worlds
<BR>Submissions due: October 31, 1998
<P>Real-time Virtual Worlds are now possible on most workstations and PCs.&nbsp;
The challenge is to design user-friendly systems for creating new applications
and tools. This special issue of the Visual Computer is dedicated to new
algorithms, methods, and systems in Real-time Virtual Worlds.&nbsp; Original,
unpublished research, practice, and experience papers are sought that address
issues in all aspects of Real-time Virtual Worlds. Topics include, but
are not limited to:
<UL>
<LI>
Modeling for Real-time Virtual Worlds</LI>
<LI>
Real-time animation</LI>
<LI>
Real-time rendering algorithms</LI>
<LI>
Real-time motion control and motion capture</LI>
<LI>
Real-time talking heads</LI>
<LI>
Intelligent interfaces for real-time computer animation</LI>
<LI>
Avatars and Real-time Autonomous Virtual Humans</LI>
<LI>
3D interaction with Virtual Worlds</LI>
<LI>
Networked Virtual Environments</LI>
<LI>
Artificial Life in Virtual Worlds</LI>
<LI>
Virtual Worlds on the Web</LI>
<LI>
Real-time audio and speech for Virtual Worlds</LI>
<LI>
Real-time simulation</LI>
<LI>
Games and entertainment applications</LI>
</UL>
Schedule:
<TABLE BORDER=0 COLS=2 WIDTH="65%" NOSAVE >
<TR NOSAVE>
<TD NOSAVE>Paper Submission:&nbsp;</TD>
<TD>October 31, 1998</TD>
</TR>
<TR NOSAVE>
<TD NOSAVE>Acceptance/Rejection Notification:&nbsp;</TD>
<TD>January&nbsp; 15, 1999</TD>
</TR>
<TR>
<TD>Final Manuscript Submissions:&nbsp;</TD>
<TD>February 15, 1999</TD>
</TR>
<TR>
<TD>Publication:&nbsp;</TD>
<TD>Summer 1999</TD>
</TR>
</TABLE>
The editors for this issue of the Visual Computer are:
<P>Nadia Magnenat-Thalmann
<BR>Associate Editor-in-Chief
<BR>MIRALab, University of Geneva
<BR>Email: <A HREF="mailto:thalmann@cui.unige.ch">thalmann@cui.unige.ch</A>
<P>Daniel Thalmann
<BR>Computer Graphics Lab
<BR>EPFL
<BR>Email: <A HREF="mailto:thalmann@lig.di.epfl.ch">thalmann@lig.di.epfl.ch</A>
<BR>&nbsp;
<P>Submission guidelines: Authors may submit their paper either as an HTML
URL or by ftp. For ftp, the electronic version of your manuscript should
be submitted in PDF (preferred) or Postscript (compressed with gzip) using
anonymous ftp to <A HREF="ftp://ligsg2.epfl.ch">ligsg2.epfl.ch</A>. The
paper should be submitted as one file.&nbsp; The file name should be first
author's name.&nbsp; Please follow the procedure:
<UL><TT>ftp ligsg2.epfl.ch</TT>
<BR><TT>username: anonymous</TT>
<BR><TT>password: &lt;your email address></TT>
<BR><TT>cd tvc</TT>
<BR><TT>put &lt;filename></TT></UL>
In any case, you should send an email to <A HREF="mailto:tvcanim@lig.di.epfl.ch">tvcanim@lig.di.epfl.ch</A>
with the title of the paper, the authors with affiliation, the contact
author, and either the URL or the filename used for ftp. For author guidelines,
please consult:&nbsp; <A HREF="http://www.computer.org/multimedia/edguide.htm">http://www.computer.org/multimedia/edguide.htm</A>
<BR>
<HR WIDTH="100%">
<H2>
KIllustrator 0.4</H2>
<B><I><FONT COLOR="#CC6600">KIllustrator</FONT></I></B> is a freely available
vector-based drawing application for the K Desktop Environment similiar
to Corel Draw(tm) or Adobe Illustrator(tm).
<P>Features include:
<UL>
<LI>
different object types: polylines, circles, ellipses, squares, rectangles,
(symmetric) polygons, freehand lines, bezier curves and multiline text</LI>
<LI>
tools for moving, scaling, rotating as well as grouping, ungrouping, aligning,
distributing and reordering objects</LI>
<LI>
various line styles and arrows</LI>
<LI>
a multilevel undo/redo facility</LI>
<LI>
a property editor</LI>
<LI>
multi-window support with cut/copy/paste between the windows</LI>
<LI>
zooming and snapping to grid</LI>
<LI>
multilevel undo/redo</LI>
<LI>
(network-transparent) drop support with the KDE filemanager</LI>
<LI>
printing to PostScript (file or printer)</LI>
<LI>
preliminary WMF support</LI>
<LI>
export to raster image formats (GIF, PNG, XPM) and Encapsulated Postscript</LI>
<LI>
import of Xfig files</LI>
</UL>
The installation requires a working KDE 1.0, QT 1.40 as well as gcc-2.8.1
or egc-1.03. KIllustrator is tested on Linux, FreeBSD and Solaris.
<P>For further information (screenshots, download) please consult my homepage
at:
<UL><A HREF="http://wwwiti.cs.uni-magdeburg.de/~sattler/killustrator.html">http://wwwiti.cs.uni-magdeburg.de/~sattler/killustrator.html</A></UL>
Please, for question, comments, bug reports or contributions e-mail me
at <A HREF="mailto:kus@iti.cs.uni-magdeburg.de">kus@iti.cs.uni-magdeburg.de</A>.
<P>Kai-Uwe Sattler
<BR>
<HR WIDTH="100%">
<H2>
RenderPark</H2>
<B><I><FONT COLOR="#CC6600">RenderPark</FONT></I></B> is a photo-realistic
rendering tool being developed at the Computer Graphics Research Group
of the Katholieke Universiteit Leuven, in Belgium. The goal is to offer
a solid implementation of many existing photo-realistic rendering algorithms
in order to compare them on a fair basis, evaluate benefits and shortcomings,
find solutions for the latter and to develop new algorithms that are more
robust and efficient than the algorithms that are available today. RenderPark
will offer you several state-of-the-art rendering algorithms that are not
yet present in other rendering packages, not even in expensive ones. Allthough
RenderPark is in the first place a test-bed for rendering algorithms, it
is evolving towards a full-featured physics-based global illumination rendering
system.
<P><A HREF="http://www.cs.kuleuven.ac.be/cwis/research/graphics/RENDERPARK/">http://www.cs.kuleuven.ac.be/cwis/research/graphics/RENDERPARK/</A>
<BR>&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=1 WIDTH=1></TD>
</TR>
</TABLE>
<!--
-- Did You Know Section
-->
<H4>
Did You Know?</H4>
<UL>...there are two True Type<SUP>&reg;</SUP> font servers based on the
<A HREF="http://www.freetype.org/">FreeType</A>
package:&nbsp; <A HREF="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">xfsft</A>
and <A HREF="ftp://sunsite.unc.edu/pub/Linux/X11/fonts">xfstt</A>.&nbsp;&nbsp;
The latter is reported to have some problems with fonts over 90 pixels
high and appears to go into "memory starved mode" after extensive use of
the Text tool in the Gimp.&nbsp; Aside from these issues, however, both
are reported to be fairly stable servers.
<P>...The computer magazine PC Chip will be publishing an interview with
<B><FONT COLOR="#006600">Ton
Roosendaal,</FONT></B> owner of <B>Not a Number
</B>which is the company
bringing us the 3D modeller <A HREF="http://www.neogeo.nl/blender.html">Blender</A>.&nbsp;
This interview has been placed <A HREF="http://lji.purger.com/cool/pcchip/ton.html">online</A>
so readers can get an early glimpse at it.</UL>
<!--
-- Q and A Section
-->
<H4>
<B><FONT SIZE=+0>Q and A</FONT></B></H4>
<I>Q: Is there a way to include carriage returns with the text tool, or
to align phrases created with individual uses of the text tool?</I>
<P>A:&nbsp; I didn't know the answer to this one, but found the following
answer on the Gimp-User mailing list (unfortunately I didn't get the responder's
name - my apologies to that person):
<BLOCKQUOTE>Try the "Script-fu --> Utils --> ASCII 2 Image Layer" command.
This allows you to import a text file as one or more layers of text.</BLOCKQUOTE>
Note that this Script is available either from the <B>Image Window</B>
menu's Script-Fu option or from the <B>Xtns</B> menu's Script-Fu option.
<P><I>Q: Mark Lenigan (<A HREF="mailto:mlenigan@umdsun2.umd.umich.edu">mlenigan@umdsun2.umd.umich.edu</A>)
wrote to the Gimp User mailing list:</I>
<BLOCKQUOTE><I>I'm trying to create a transparent GIF with a drop shadow
for the title graphic on my Web page.&nbsp; I'm pretty much following the
cookbook from <A HREF="http://www.gimp.org/tutorials">www.gimp.org/tutorials</A>,
except that I'm not including the background color layer and using "Merge
Visible Layers" to keep the final image transparent.&nbsp; Everything goes
fine until I need to convert the image to an indexed image just before
I save it in the .gif format file.&nbsp; At that point the shadow in my
image immediately disappears and the text seems to lose its anti-aliasing.
Can anyone shed some light on to this?</I></BLOCKQUOTE>
A: <A HREF="mailto:Simon.Budig@unix-ag.org">Simon Budig</A> responded:
<BLOCKQUOTE>Yes. Gimp can only handle 1-bit transparency in indexed color
mode. So when you convert an image to indexed the different levels of transparency
will get lost. There is the great "Filters/Colors/Semiflatten" plugin.
It merges all partially transparent regions against the current Backgroundcolor.
Select a BG-Color (i.e. matching to the BG-Color of your Web-page) and
watch the effect of the plugin. Then you can convert your Image to Indexed
and save it as GIF. (GIF can also handle just 1-bit transparency).</BLOCKQUOTE>
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR>
<TD><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=3 WIDTH=1></TD>
</TR>
</TABLE>
<H2>
Reader Mail</H2>
<P><BR><A HREF="mailto:zen@getsystems.com">zen@getsystems.com</A> wrote:
<UL>I'd like to hear more technical details of the internals of Gimp, and
comparing Gimp to photoshop - eg. Photoshop 5 is now out with multiple
undo - undo history list, even.</UL>
<B><FONT COLOR="#993300">'Muse</FONT></B>:&nbsp; Unfortunately, I can't
do this sort of comparison.&nbsp; I don't run anything but Unix boxes (specifically
Linux) at home and don't have access to any Photoshop packages.&nbsp; I
might be able to do the comparison based on Photoshop texts, but that's
the best I could do.
<UL>Also modelling tools. Gimp is 2D. Where is 3D? Pov-Ray can render,
but is there anything to compare with say Lightwave, or 3D-StudioMax?</UL>
<B><FONT COLOR="#993300">'Muse</FONT></B>:&nbsp; There are no real competitors
to Lightwave or 3D-StudioMax for Linux.&nbsp; There are quite a few modellers
available, each with different levels of sophistication.&nbsp; But none
that compares to the sophistication of either of the two tools you mention.&nbsp;
You can find a list of modellers in my <A HREF="http://www.graphics-muse.org/muse/jun97/gm.html">June
1997 Graphics Muse </A>column.&nbsp; Not all of the links in that issue
are still valid.&nbsp; Some of the modellers seem to have disappeared and
some have changed URLs.&nbsp; You can try a search using the package name
through <A HREF="http://freshmeat.net">freshmeat.net</A> if the links in
the June 1997 issue don't work for you.
<P>One modeller that was not listed in that issue but that looks quite
interesting is Blender, which is a commercial package that has only recently
been released for free (no source code) to Linux users.&nbsp; I hope to
do a review of it soon.&nbsp; However, the last version I tried was not
documented sufficiently to allow me to understand how to do even the most
basic tasks.&nbsp; The interface is complex and feature rich, but not intuitive
to 3D newbies.
<UL>Distributed rendering.</UL>
'<B><FONT COLOR="#993300">Muse</FONT></B>:&nbsp; I'll see what I can do
about this.&nbsp; One tool to consider is <A HREF="http://www-mddsp.enel.ucalgary.ca/People/adilger/povray/pvmpov.html">PVMPOV</A>,
a patch to POV-Ray to allow for distributed rendering across multiple systems
on a network.&nbsp; <A HREF="http://netlib2.cs.utk.edu/pvm3/">PVM</A> is
the Parallel Virtual Machine, a package for distributed processing used
on many Unix systems.&nbsp; You should probably note that this is a patch
to POV-Ray, so you'll need to understand how to apply patches to source
code in order to use it.
<UL>Just some things I'd be delighted to read about.
<BR>Cheers,
<BR>Zen.</UL>
<B><FONT COLOR="#993300">'Muse</FONT></B>:&nbsp; Again, thanks for the
ideas.&nbsp; I'll see what I can do.
<BR>&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=1 WIDTH=1></TD>
</TR>
</TABLE>
<A NAME="webwonderings"></A>
<BR><IMG SRC="../gx/hammel/webwonderings.jpg" HEIGHT=57 WIDTH=246>
<H2>
Managing your Perl scripts:&nbsp; using 'require'</H2>
<A HREF="http://www.graphics-muse.org/muse/aug98/gm.html">Last month</A>
we talked about accessing an mSQL database from CGI scripts using Perl
with two modules:&nbsp; CGI.pm and Msql.&nbsp; In the example described
there, we built a couple of HTML tables and embedded some text stored in
a table in an mSQL database.&nbsp; It turns out that generating HTML using
CGI.pm is quite simple, and using Perl with the Msql module makes combining
your HTML output with information from a database really rather painless.
<P>But that example was extremely simple.&nbsp; Real world examples often
have dynamic pages that are built from multiple databases.&nbsp; And each
page often links to other dynamically built pages that provide some, or
even all, of the same information from those databases.&nbsp; In other
words, parts of each page contain the same HTML formatting and data.&nbsp;
How can you avoid having to duplicate that HTML in each page?
<P>With older static page development methods, there really weren't any
methods for including common regions into multiple pages unless you used
frames.&nbsp; The frames allowed you to create a region on the browser
display that would be a single page of HTML that could be displayed along
with various other pages.&nbsp; In this way, you need only maintain a single
copy of that one common page.&nbsp; From a Web developer's point of view,
this was an ideal situation - it meant the probability of error in trying
to update identical HTML in multiple pages was eliminated.&nbsp; It also
meant less work.&nbsp; But to readers of those pages it could mean frustration,
since not all browsers at the time supported frames.&nbsp; Even now, frame
handling is not consistant between the two main browsers, Netscape Navigator
and Microsoft's Internet Explorer.&nbsp; Although frames can be used to
produce some terrific Web pages, they are not the ideal solution for supporting
different browsers, especially older browsers.
<P>Fortunately, this problem can be overcome with our new friend Perl.&nbsp;
The method for inclusion in multiple pages of common formats and data is
simple.&nbsp; However, the management of these common regions takes a little
thought.&nbsp; Let's first look at how to include Perl code from different
files in your main Perl script.
<P>In Perl, a subroutine or other piece of common code would be written
in a <B><FONT COLOR="#006600">module</FONT></B>, a separate file of Perl
code.&nbsp; Modules can be included at any point within a Perl script.&nbsp;
By default, Perl looks at a special variable called <TT><FONT SIZE=-1>@INC</FONT></TT>
to determine where to find these modules.&nbsp; Also by default, the current
working directly, ".", is listed in the <TT><FONT SIZE=-1>@INC </FONT></TT>variable
as the last directory to search for modules.&nbsp; <B>Note</B>:&nbsp; <TT><FONT SIZE=-1>@INC</FONT></TT>
is a list variable, that is, it is an array of strings with each string
being the name of a directory to search for modules.
<P>To include a module into your main Perl cgi script you would use the
require function.&nbsp;&nbsp; The format is simple:
<UL><TT><FONT SIZE=-1>require 'modulename.pl';</FONT></TT></UL>
This function tells the Perl interpreter to include the named module, <I>but
only if it has not been included previously</I>.&nbsp; In this way you
can include the same module multiple times without worry that doing so
will cause serious problems.
<P>When the module is included, the code within it is run at the point of
inclusion.&nbsp; You can, if you so desire, write the module to have code
that runs right then and there using variables with a global scope (i.e.,
they are visible to the original program as well as the included module).&nbsp;
However, it would probably make more sense to write the module as a subroutine
call instead.&nbsp; You can still use globally scoped variables, but by
making the module a subroutine call, you can guarantee the code is not run
until you specifically request it.&nbsp; You can also run it more than
one time if you want.
<P>So how do you make a subroutine?&nbsp; Just wrap the code inside the
following construct:
<UL><TT><FONT SIZE=-1>sub subname {</FONT></TT>
<BR><TT><FONT SIZE=-1>}</FONT></TT>
<BR><TT><FONT SIZE=-1>1</FONT></TT></UL>
The 1 at the end is important - modules must include this or else the require
function will fail.&nbsp; Now invoke the subroutine with the following
command:
<UL><TT><FONT SIZE=-1>&amp;subname();</FONT></TT></UL>
The ampersand is important - you should always prefix calls to your subroutines
with the ampersand.&nbsp; Although things may work properly if you don't,
proper Perl syntax suggests the results can be unexpected if you don't
use the ampersand.
<P>If you want to pass parameters into the subroutine, you can do so as
a list.&nbsp; For example:
<UL><TT><FONT SIZE=-1>&amp;subname("one item");</FONT></TT>
<BR><TT><FONT SIZE=-1>&amp;subname("one item", "two items");</FONT></TT>
<BR><TT><FONT SIZE=-1>&amp;subname(@listitems);</FONT></TT></UL>
To access the command line arguments in the subroutine, you can do something
like the following:
<UL><TT><FONT SIZE=-1>sub subname</FONT></TT>
<BR><TT><FONT SIZE=-1>{</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; # @_ contains all parameters to the
subroutine.</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; # We first assign these to the @params
variable because the variable</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; # name "@params" is a bit more intuitive
than "@_".</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; @params = @_;</FONT></TT>
<P><TT><FONT SIZE=-1>&nbsp;&nbsp; foreach $arg (@params)</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; {</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # now run through
each parameter one at a time</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # and process it.</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( "$arg" eq ""
)</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
...</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; }</FONT></TT>
<BR><TT><FONT SIZE=-1>}</FONT></TT></UL>
<CENTER>&lt;<A HREF="more-musings.html#1">continued</A>></CENTER>
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR>
<TD><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=1 WIDTH=1></TD>
</TR>
</TABLE>
<A NAME="musings"></A>
<BR>&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/musings.gif" ALT="Musings" HEIGHT=52 WIDTH=247 ALIGN=LEFT></TD>
</TR>
</TABLE>
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
</TR>
</TABLE>
<TABLE BORDER=0 CELLPADDING=0 COLS=3 WIDTH="100%" NOSAVE >
<TR NOSAVE>
<TD VALIGN=TOP ROWSPAN="3" WIDTH="50%" NOSAVE>
<H2>
libgr - A collection of image libraries</H2>
Many users of graphics tools discussed in this column will find that those
tools are dependent on any number of file format specific libraries.&nbsp;
For example, the Gimp needs libraries for JPEG, PNG, PNM, MPEG and XPM
in order to support these file formats.&nbsp; The Gimp doesn't understand
how to read these files directly - it is dependent on the image format
libraries for assistance in reading and writing files in these formats.&nbsp;
Since the Gimp (and other tools) don't include these libraries in their
source distributions, users are often required to retrieve and install
these libraries manually.&nbsp;
<P>Normally, users would download format-specific libraries and build them
separately.&nbsp; Each of the formats mentioned earlier, plus a few others,
are available somewhere on the Net in source format.&nbsp; Most are available
somewhere on the Sunsite archives.&nbsp; Unfortunately, not all of these
format specific libraries are easily built on Linux.&nbsp;&nbsp; The Gimp
User Mailing list is often flooded with questions about how to get the
JPEG library to build shared libraries.&nbsp; By default this library doesn't
build a Linux ELF shared library.&nbsp; In fact, even with the proper configuration
it still only builds a.out shared libraries.&nbsp; A better solution is
needed.&nbsp;
<P>Enter <B><I><FONT COLOR="#CC6600">libgr</FONT></I></B>.&nbsp; This is
a collection of image format libraries that have been packaged together
and organized to easily build and install on Linux systems.&nbsp; The package
builds both static and ELF shared libraries automatically.&nbsp; The distribution
is maintained by Neal Becker (<A HREF="mailto:neal@ctd.comsat.com">neal@ctd.comsat.com</A>)
and is based on the work done originally by Rob Hooft (<A HREF="mailto:hooft@EMBL-Heidelberg.DE">hooft@EMBL-Heidelberg.DE</A>).&nbsp;
The latest version, 2.0.13, of libgr can be retrieved from <A HREF="ftp://ftp.ctd.comsat.com:/pub/linux/ELF">ftp.ctd.comsat.com:/pub/linux/ELF</A>.&nbsp;
<P>Libgr contains the following set of graphics libraries:
<UL>
<LI>
fbm</LI>
<LI>
jpeg</LI>
<LI>
pbm</LI>
<LI>
pgm</LI>
<LI>
pnm</LI>
<LI>
ppm</LI>
<LI>
png</LI>
<LI>
rle</LI>
<LI>
tiff</LI>
</UL>
It also contains the <I>zlib</I> compression library which is used specifically
by the TIFF and PNG graphics libraries.&nbsp; It may also, although I'm
not sure of this, be used by the FBM library to (at a minimum) support
the GIF format.&nbsp;
<P>FBM is the Fuzzy Pixmap Manipulation library.&nbsp; This package is
related to, but not part of, the PBMPlus package by Jef Poskazner.&nbsp;
The library can read and write a number of formats, including:&nbsp;
<UL>
<LI>
Sun rasterfiles&nbsp;</LI>
<LI>
GIF files&nbsp;</LI>
<LI>
Amiga IFF&nbsp;</LI>
<LI>
PCX&nbsp;</LI>
<LI>
PBM&nbsp;</LI>
<LI>
Face files (CMU format for 1bit files)</LI>
<LI>
FBM&nbsp;</LI>
<LI>
Utah RLE files (from the Utah Raster Toolkit)</LI>
</UL>
It also supports quite a number of image operations, all of which are described
in the <I>Features</I> text file in the fbm directory.&nbsp; Like PBM,
FBM is a format designed specifically by the FBM library author for handling
images internal to the library (although you can write that format to a
file too).&nbsp;
<P>JPEG is actually a standard that defines a suite of encodings for full-color
and continuous-tone raster images<SUP><A HREF="#footnote-1">1</A></SUP>.&nbsp;
The software for this library, which is essentially the same as the software
that comes in the standalone JPEG library package found on the <A HREF="ftp://ftp.gimp.org/pub/gimp/libs">Gimp's
ftp site</A>, comes from the Independent JPEG Group and, as far as I can
tell, supports the complete JPEG definition.&nbsp; JPEG is a common format
for the Web since it is one of the formats listed by the WC3 in the early
HTML specifications for Web images.&nbsp;
<P>The PBM, PGM, PNM, and PPM formats are all part of the NetPBM/PBMPlus
packages.&nbsp; These formats are often used as intermediary formats for
processing by the NetPBM/PBMPlus tools.&nbsp; Although these libraries
provide the capability of saving image files in these formats, I have not
seen this as a common practice.&nbsp; This is probably due to the fact
that the files tend to be rather large and the image formats are not generally
supported by non-Unix platforms.&nbsp; These formats are widely supported,
however, by Unix-based graphics software.&nbsp;
<P>The PNG library supports the relatively new Portable Network Graphics
format.&nbsp; This format was designed, at least in part, to replace the
GIF format which had both licensing as well as a few format limitations.&nbsp;
PNG is now an officially supported format by the WC3 although support for
these images is not commonly mentioned by either Netscape or MSIE.&nbsp;
I'm not sure if either supports PNG yet.&nbsp;
<P>RLE is Run Length Encoding, a format from the University of Utah designed
for device independent multilevel raster images.&nbsp; Although the format
is still in use today, you won't see it referenced often in relation to
tools like the Gimp (though the Gimp does support the format) or 3D rendering
engines like BMRT or POV-Ray.&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<CENTER>
<P><A HREF="#next-column">-Top of next column-</A></CENTER>
</TD>
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
<TD WIDTH="49%" NOSAVE><LH><A NAME="next-column"></A><B>More Musings...</B></LH>
<UL>
<LI>
&nbsp;<A HREF="more-musings.html#2">Fun with QBist</A></LI>
</UL>
</TD>
</TR>
<TR NOSAVE>
<TD BGCOLOR="#000000" NOSAVE><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=1 WIDTH=1></TD>
</TR>
<TR NOSAVE>
<TD VALIGN=TOP NOSAVE>Finally, the TIFF library is a set of routines for
supporting the reading and writing of TIFF files.&nbsp; TIFF files are
popular because of their wide support on multiple platforms (Mac, MS, and
Unix) and because of their high quality images.&nbsp; However, they tend
to be extremely large images since they do not use any form of compression
on the image data.&nbsp;
<H3>
Building the package</H3>
Once you have retrieved the libgr package you can unpack it with the following
command:&nbsp;
<UL><TT><FONT SIZE=-1>% tar xvzf libgr-2.0.13.tar.gz</FONT></TT></UL>
This will create a directory called libgr-2.0.13.&nbsp; Under this directory
you will find the format specific directories, Makefiles and a number of
text files.&nbsp; In the INSTALL text file you will find instructions on
how to build the software.&nbsp; For Linux this is a simple process of
typing&nbsp;
<UL><TT><FONT SIZE=-1>% make most</FONT></TT></UL>
which will build all the software but not install it.&nbsp; I recommend
doing this once to test that the build actually completes successfully
for all directories before trying to install anything.&nbsp; If the build
fails and you attempt to install you may confuse yourself as to what has
and hasn't been installed correctly.&nbsp; After the build completes, check
each directory and see if the lib*.so files - the shared libraries - have
been created.&nbsp; If all appears to have gone well, type&nbsp;
<UL><TT><FONT SIZE=-1>% make install</FONT></TT></UL>
This will install the libraries for you.&nbsp; There are other options
available for building and installing.&nbsp; Read the <I>INSTALL</I> text
file in the top level directory for details on the other options.&nbsp;
<P>At this point you're ready to use these libraries with other tools,
such as the Gimp.&nbsp;
<H3>
Why use libgr vs the individual libraries?&nbsp;</H3>
Libgr provides support for a large range of image file formats, but it
doesn't support every common and/or popular format.&nbsp; So why use it
instead of the individual format libraries?&nbsp; One reason is convenience.&nbsp;
Instead of having to retrieve a whole slew of packages you can grab one.&nbsp;
Second, as mentioned earlier, not all of the individual packages are setup
to build proper ELF shared libraries for Linux.&nbsp; Libgr is specifically
designed for building these type of libraries.&nbsp;
<P>What libraries does libgr not include that you might want?&nbsp; One
fairly common X Windows format is XPM.&nbsp; Libgr does not support this
format so you'll need to retrieve the XPM library separately.&nbsp; Fortunately,
most Linux distributions already come with this library prebuilt and available
to you during installation of the operating system.&nbsp;
<P>Libgr also does not support any animation file formats.&nbsp; If you
have need to read or write files in MPEG, FLI or FLC formats, for example,
you will need to locate and install those libraries individually.&nbsp;
<H3>
Caveats</H3>
One minor caveat to using the libgr package exists with the zlib distribution.&nbsp;
According to the documentation for libgr (in the <I>NEWS</I> text file)
the zlib release numbers went <B>down</B> at some point.&nbsp; This means
it's possible for you to have an older version of zlib installed even though
its version number is higher than the one in libgr.&nbsp; How to resolve
this is a tricky question but in my opinion it makes sense to install the
zlib that comes with libgr because it's known to work with the rest of the
image libraries in the libgr package.&nbsp; If you agree with this logic
then you will probably want to remove the old version of zlib first, before
doing the <TT><FONT SIZE=-1>make install </FONT></TT>for libgr.&nbsp;
<P>
<H3>Summary</H3>
<P>Libgr is not a drop-in replacement for all your image file format needs,
but it does offer added convenience to the Linux users by providing a Linux-specific,
easy to use build and install environment.&nbsp; Since the libraries included
in the libgr package do not change all that often it makes good system
management sense to deal with the one distribution than to try to deal
with updates to multiple image format packages.&nbsp; And if you're dealing
with building the Gimp, which requires many image libraries, libgr is a
much simpler solution to get you up and running in the least amount of
time and with the least amount of frustration.&nbsp;
<BR>&nbsp;
<CENTER>
<P><IMG SRC="./gx/hammel/qbist-small.jpg" BORDER=2 HEIGHT=200 WIDTH=200></CENTER>
<BR>&nbsp;
<HR WIDTH="100%">
<BR><A NAME="footnote-1"></A><FONT SIZE=-2>1.&nbsp; C. Wayne Brown and
Barry J. Shepherd, Graphics File Formats:&nbsp; Reference and Guide, Prentice
Hall/Manning, 1995.&nbsp;</FONT></TD>
</TR>
</TABLE>
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
</TR>
</TABLE>
<A NAME="resources"></A>
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/resources.gif" ALT="Resources" HEIGHT=57 WIDTH=246 ALIGN=LEFT></TD>
</TR>
</TABLE>
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.
<BR>&nbsp;
<TABLE BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<TR NOSAVE>
<TD NOSAVE>Online Magazines and News sources&nbsp;
<BR><A HREF="http://www.news.com/">C|Net Tech News</A>
<BR><A HREF="http://www.eklektix.com/lwn/">Linux Weekly News</A>
<BR><A HREF="http://slashdot.org/">Slashdot.org</A>
<BR><A HREF="http://www.dv.com">Digital Video</A>
<BR><A HREF="http://www.cgw.com">Computer Graphics World</A>
<P>General Web Sites&nbsp;
<BR><A HREF="http://www.graphics-muse.org/linux/lgh.html">Linux Graphics
mini-Howto</A>
<BR><A HREF="http://www.graphics-muse.org/ugu/ugu.html">Unix Graphics Utilities</A>
<BR><A HREF="http://www.bright.net/~dlphilp/linux_soundapps.html">Linux
Sound/Midi Page</A>
<P>Some of the Mailing Lists and Newsgroups I keep an eye on and where
I get much of the information in this column&nbsp;
<BR><A HREF="http://www.gimp.org">The Gimp User and Gimp Developer Mailing
Lists</A>.&nbsp;
<BR><A HREF="http://www.irtc.org">The IRTC-L discussion list</A>
<BR><A HREF="news:comp.graphics.rendering.raytracing">comp.graphics.rendering.raytracing</A>
<BR><A HREF="news:comp.graphics.rendering.renderman">comp.graphics.rendering.renderman</A>
<BR><A HREF="news:comp.graphics.api.opengl">comp.graphics.api.opengl</A>
<BR><A HREF="news:comp.os.linux.announce">comp.os.linux.announce</A></TD>
<TD><IMG SRC="../gx/hammel/gmuse.jpg" HSPACE=10 HEIGHT=270 WIDTH=190></TD>
</TR>
</TABLE>
<A NAME="future"></A>
<H2>
Future Directions</H2>
Next month:
<P><A HREF="mailto:mjhammel@graphics-muse.org">Let me know what you'd like
to hear about!</A>
<P>
<HR WIDTH="100%">
<DIV ALIGN=right><FONT SIZE=-1>&copy; 1998 <A HREF="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</A></FONT></DIV>
<!--===================================================================-->
<P> <hr> <P>
<center><H4>Previous ``Graphics Muse'' Columns</H4></center>
<p>
<A HREF="../issue11/gm.html">Graphics Muse #1, November 1996</A><br>
<A HREF="../issue12/gm.html">Graphics Muse #2, December 1996</A><br>
<A HREF="../issue13/gm.html">Graphics Muse #3, January 1997</A><br>
<A HREF="../issue14/gm.html">Graphics Muse #4, February 1997</A><br>
<A HREF="../issue15/gm.html">Graphics Muse #5, March 1997</A><br>
<A HREF="../issue16/gm.html">Graphics Muse #6, April 1997</A><br>
<A HREF="../issue17/gm.html">Graphics Muse #7, May 1997</A><br>
<A HREF="../issue18/gm.html">Graphics Muse #8, June 1997</A><br>
<A HREF="../issue19/gm.html">Graphics Muse #9, July 1997</A><br>
<A HREF="../issue20/gm.html">Graphics Muse #10, August 1997</A><br>
<A HREF="../issue22/gm.html">Graphics Muse #11, October 1997</A><br>
<A HREF="../issue23/gm.html">Graphics Muse #12, December 1997</A><br>
<A HREF="../issue25/gm.html">Graphics Muse #13, February 1998</A><br>
<A HREF="../issue26/gm.html">Graphics Muse #14, March 1998</A><br>
<A HREF="../issue27/gm.html">Graphics Muse #15, April 1998</A><br>
<A HREF="../issue31/gm.html">Graphics Muse #16, August 1998</A>
<P><HR><P>
<center><H5>Copyright &copy; 1998, Michael J. Hammel <BR>
Published in Issue 32 of <i>Linux Gazette</i>, September 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./stemen.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./henning1.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->