File: gm.html

package info (click to toggle)
lg-issue32 4-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,328 kB
  • ctags: 142
  • sloc: makefile: 34; sh: 34; ansic: 25
file content (1074 lines) | stat: -rw-r--r-- 50,480 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
<!--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 ============================================================-->