home *** CD-ROM | disk | FTP | other *** search
/ BURKS 2 / BURKS_AUG97.ISO / BURKS / LINUX / HOWTO / mini / graphics.txt < prev    next >
Text File  |  1997-07-07  |  67KB  |  1,432 lines

  1.  
  2.                    The Linux Graphics Mini-HowTo
  3.  
  4.                             Version 1.3
  5.  
  6.           This document is maintained by Michael J. Hammel
  7.                 The master page for this document is
  8.       http://www.csn.net/~mjhammel/linux-graphics-howto.html.
  9.                     Last updated: May 15th, 1996
  10.  --------------------------------------------------------------------
  11.  
  12.       Table Of Contents
  13.     * Whats New
  14.          o General
  15.          o The Internet Ray Tracing Competition
  16.     * Introduction
  17.          o Purpose
  18.          o Where to get this software
  19.          o Updates and Errata
  20.          o The Four Basic Types of Graphics Tools
  21.     * [Updated!] Graphics Basics
  22.          o File Formats
  23.          o Pixels vs. Primitives and Rendering vs. Drawing
  24.          o [Updated!] Static vs. Animated Images
  25.          o Live Video
  26.          o System Requirements
  27.          o Texts on Computer Graphics
  28.     * Image Viewing Tools
  29.     * Image Creation Tools
  30.          o Drawing and Paint Programs
  31.          o [Updated!] Raytracers and other 3D tools
  32.          o Fractal-based tools (heightfields, etc.)
  33.          o [Updated!] Modelers
  34.          o [Updated!] Programming Interfaces (APIs)
  35.          o Image Libraries
  36.          o Other Image Creation Tools
  37.     * Image Manipulation Tools
  38.          o [Updated!] Static Image Manipulators
  39.          o Animated Image Manipulators
  40.     * Image Conversion Tools
  41.     * Tools yet to be evaluated
  42.     * Other Topics
  43.          o Creating Web page graphics
  44.          o Fonts on Linux
  45.          o A word about the X11 directories
  46.          o Distributed Rendering
  47.          o Newsgroups
  48.          o References
  49.     * Acknowledgments
  50.     * Register for updates
  51.  
  52.  --------------------------------------------------------------------
  53.  
  54. Whats New
  55.  
  56. General
  57.  
  58. Current Version Number: 1.2
  59.  
  60. I added markers to the Linux Graphics mini-Howto so readers could quickly
  61. find changes from previous versions. Anything marked with the New graphic,
  62. [New!], is new. That should make it easy to find. There is also an Updated
  63. graphic, [Updated!], for things which existed in previous releases but were
  64. incomplete, wrong or otherwise needed to be changed.
  65.  
  66. Readers can register to be notified when this document is updated.
  67.  
  68. The Internet Ray Tracing Competition
  69.  
  70. The Internet Ray Tracing Competition is back online. This contest was
  71. originally started by Matt Kruse and generally ran in the comp.graphics.*
  72. hierarchy. Matt was a bit overwhelmed by the work and had to stop the
  73. competition back in November or December. A new group of individuals has
  74. picked it up (I'm on the backup Admin team, and Matt is helping coordinate
  75. things) and the first contest has started. Although open to renderers that
  76. run on any OS, many of the competitors and readers of
  77. comp.graphics.rendering.raytracing (where Matt started the original
  78. competition) are Linux users of POVRay.
  79.  
  80. Check the IRTC Home Page for more details. For those with ftp only links,
  81. try ftp://ftp.povray.org:/pub/irtc.
  82.  [ArroContents
  83.  
  84.  --------------------------------------------------------------------
  85.  
  86. Introduction
  87.  
  88. Purpose
  89.  
  90. The Linux Operating System has gone from a hackers paradise to a system used
  91. for everything from ISP Internet Servers to a document publishing platform.
  92. One area which has not gotten much exposure is the use of Linux in dealing
  93. with graphical images. This document will attempt to cover the tools
  94. available for viewing, creating, manipulating, and converting graphics
  95. images on Linux systems.
  96.  
  97. Although many of the tools that will be explored here are X windows based,
  98. this document will not cover the configuration issues associated with
  99. running X Windows. Where necessary, information regarding system
  100. requirements, such as X server extensions, will be provided. Also, the tools
  101. discussed here relate to graphics "images", that is, pictures. This document
  102. does not cover graphical "interfaces", that is, windowing systems features.
  103.  
  104. This document also does not cover tools that are designed for display using
  105. non-X-based interfaces, such as VGA/SuperVGA tools. I don't have much
  106. interest in those environments. Perhaps someone else will start a mini-Howto
  107. for those tools.
  108.  
  109. Most of the information here is based on information I've gathered on my own
  110. over the Net. Terminology is taken, when needed, from Computer Graphics:
  111. Principles and Practice, 2nd Edition by Foley, Van Dam, et al. I will not
  112. attempt to make this an introduction to computer graphics, however. There
  113. are references included in the subsection titled Texts on Computer Graphics
  114. and at the end of this document in the subsection titled References for
  115. serious minded graphics programmers.
  116.  
  117. Where to get this software
  118.  
  119. Most of the software listed in this document is available either in the
  120. various Linux distributions in the X11 trees or from the sunsite archives
  121. and its mirrors. A few items are available only via a commercial vendor.
  122. Most of these require upgrades to the X server to work, and only the
  123. commercial vendors servers have most of those extensions. Where a commercial
  124. vendor of a particular product is known I have given the name of the vendor.
  125. However, I don't have contact information for these. You'll have to search
  126. around for those (try the Linux Journal, which I know they advertise in).
  127.  
  128. Updates and Errata
  129.  
  130. If any readers find mistakes or omissions that I should know about I
  131. encourage you to contact me at mjhammel@csn.net. I know alot of the tools
  132. listed do not have up-to-date version information, so if you have
  133. information on these please send it to me. Please include why your
  134. information should be considered authoritative (ie where did you get it
  135. from). I also know that there are many tools available on the sunsite
  136. archives that I have not covered here. I simply haven't gotten to them all
  137. (I don't even have disk space for them all). If you have information on
  138. these, especially if you're the author of those tools, please send me email
  139. explaining the tools name, purpose, and where it fits into this document.
  140. The more specific you are in your information the better.
  141.  
  142. Note: due to the outrageous fees imposed by my ISP I haven't been able to do
  143. alot of perusing the net lately. I'm going to switch ISP's, but I have to
  144. find a job first. When I do both, I'll move my web pages (including this
  145. document) to its new home and leave notices on my old site as to where the
  146. new site is. What this means is I won't be updating this document much in
  147. the next few weeks unless I get alot of feedback from the Linux community
  148. (via email). So please: feel free to speak up!
  149.  
  150. The Four Basic Types of Graphics Tools
  151.  
  152. When you get right down to it, there are basically four (4) different kinds
  153. of tools that deal with graphical images:
  154.  
  155.    * Image Viewing Tools
  156.  
  157.      These are tools which read in image files of various formats and
  158.      display them visually. Some tools do nothing more than display the
  159.      images. Many display them and allow you to manipulate them or convert
  160.      them to other formats.
  161.  
  162.    * Image Creation Tools
  163.  
  164.      These are tools which allow the user to draw, paint, or render images.
  165.      Drawing and painting tools are rather common on computer systems these
  166.      days. Generally available rendering software, software which creates
  167.      images from models, is relatively new, especially to Linux.
  168.  
  169.    * Image Manipulation Tools
  170.  
  171.      Manipulation tools allow a user to take an existing image and change it
  172.      in some way, usually on a pixel by pixel basis. The manipulation will
  173.      change colors, hues, color-depths, and a variety of other things.
  174.  
  175.    * Image Conversion Tools
  176.  
  177.      Image files come in many formats. Although there are a number of
  178.      formats that are quite popular, none is the defacto-standard. Viewing,
  179.      creation, and manipulation tools generally support a variety of
  180.      formats. However, its possible that you'll come across a format that a
  181.      particular tool does not support. In this case you'll need to conver
  182.      the image from the first format into one your other tool supports. This
  183.      is where the conversion tools come into play.
  184.  
  185. Each of these will be covered in length in this document. It is interesting
  186. to note that many of the tools discussed will overlap more than one of these
  187. types. For example, tools that create images are seldom very interesting
  188. unless you can view what they've created.
  189.  [ArroContents
  190.  
  191.  --------------------------------------------------------------------
  192.  
  193. Graphics Basics
  194.  
  195. [Updated!] File Formats
  196.  
  197. There are 100's of different formats used for graphics images on computer
  198. systems(Graphics1). Some of the more popuplar static formats are:
  199.  
  200.    * GIF - Graphics Interchange Format originally from Compuserve. GIF is
  201.      8-bit color, lossless and is good for synthetic (line drawings,
  202.      "cartoonish") images, and doesn't compress well.
  203.    * JPEG - from the Independent JPEG Group, JPEG supports 24-bit color, is
  204.      lossy, works well for realistic (scanned photos, hight quality
  205.      anti-aliased renderings with smooth changes in color and shading, etc)
  206.      images and compresses well.
  207.    * TGA - formerly from TrueVision in support of their Targa display
  208.      adapter. The TGA format is normally used for 24-bit color images, but
  209.      supports 8, 16, 24 and 32-bit (24 bits for image data and 8 bits for
  210.      alpha channel) images too.
  211.    * XBM - X Bitmaps (grayscale bitmaps)
  212.    * XPM - X Pixmaps (color bitmaps)
  213.    * PNG - Portable Network Graphics, from the PNG group, supports bit
  214.      depths from 1 (mono) to 64 (super-truecolor + alpha). PNG was developed
  215.      because GIF compression was patented by Unisys and couldn't support
  216.      24-bit or alpha images. Compresses better than GIF, but not as well as
  217.      JPEG.
  218.  
  219. Lossy means that parts of the image data are discarded. So if an image is
  220. compressed, some of the image data is lost. If the image is decompressed and
  221. compared to the original, there will be missing data. Generally, the data
  222. lost during compression is redundant information and doesn't affect the
  223. visual appearance of the image. However, at higher compression ratios the
  224. lost data is not redundant and the quality of the image degrades.
  225.  
  226. Lossless means that no data is lost during compression. TGA, XBM, XPM, and
  227. PNG are all lossless formats.
  228.  
  229. Alpha refers to the transparency of images. A full alpha channel in an image
  230. allows for any level of transparency (from fully opaque to completely
  231. transparent) across the entire image. GIF and PNG support palette based
  232. transparency where a single pixel value is the transparent color. However,
  233. with GIF the pixel color is either fully opaque or fully transparent. PNG
  234. supports a range of transparency for the transparent color index. PNG also
  235. supports, along with TGA, a full alpha channel.
  236.  
  237. There are not nearly so many animation formats, especially those that are
  238. available for Linux systems. A couple of the more commonly known formats
  239. are:
  240.  
  241.    * MPEG - from the Motion Pictures Experts Group
  242.    * FLI/FLC - originally from AutoDesk Animator, FLI supports 256 color at
  243.      320x240 resolution and FLC supports 16 bit color at higher resolutions
  244.    * AVI
  245.    * Quicktime - from Apple Computer
  246.  
  247. See the section titled Static vs Animated Images to learn more about the
  248. differences in image types.
  249.  
  250. Each of these formats is well suited for different situations. GIF and JPEG
  251. images are currently the only widely supported image types for Web browsers.
  252. TGA provides 24-bit images, which means when reducing the image size the
  253. quality of the new image is likely to be nearly as good as the original. PNG
  254. is a portable format that was recently developed in light of copyright or
  255. patent issues for other formats.
  256.  
  257. Which format you use is dependent on which tool you use and the environment
  258. in which you wish to use your images. Most tools support the GIF format and
  259. many support JPEG. If you're doing Web page development you will be working
  260. primarily with these image types when integrating your images into your
  261. pages. However, you may find that creating the images will require some
  262. other format, such as TGA for 3D images (depending on what tools you use).
  263. If this is the case you will have to deal with image conversion tools to get
  264. your image into the right format.
  265.  
  266. Pixels vs Primitives and Rendering vs Drawing
  267.  
  268. A pixel, or "picture element", is one point on the screen. It can be one
  269. color or one shade of gray. A graphics primitive is a shape, like a circle,
  270. sphere, box, or torus. To display primitives any number of pixels can be
  271. used. Tools that allow the user to create primitives are generally referred
  272. to as drawing or paint programs. Tools which are concerned with computing
  273. the color of individual pixels based on information about primitives
  274. (models) are called renderers. This process, computing pixel values from
  275. primitives, is also called rasterization.
  276.  
  277. This may seem a little confusing when you consider some paint programs allow
  278. you to set the color of individual pixels (such as using the Fat Bits option
  279. in xpaint). However, setting this color by hand is tantamount to drawing a
  280. line (another type of grapichs primitive) that is really short. In this
  281. case, the tool is not determining the pixel value based on model
  282. information. It is simply painting a pixel based on direct user feedback
  283. (and nothing else).
  284.  
  285. Life is never so simple and you'll find the line between these definitions
  286. blurs as you learn more about graphics tools, but eventually you won't
  287. really care. You'll be able to know what you need to do and what tool can do
  288. it, regardless of how its classified.
  289.  
  290. Static vs Animated Images
  291.  
  292. Static images are like paintings or photos. Most tools available deal either
  293. primarily or only with static images. Animated images can be created either
  294. by stringing static images together into a particular format and using
  295. another tool to play them back (such as mpeg_play) or by using a programming
  296. language specifically designed for creating animations. Examples of such
  297. languages (API's actually) are OpenGL and the PEX/Phigs X extensions.
  298.  
  299. Both types of tools will be covered by this document.
  300.  
  301. Live Video
  302.  
  303. One of the new forms of video adapters to come to market recently are the
  304. live video adapters. The adapters allow external sources, such as video
  305. cameras or VCRs, to connect directly to a PC and display on the users
  306. monitor. There is an extension to the X protocol to handle live video that
  307. is called xvideo. However, there are few applications available that make
  308. use of this extension. Of the 3 main X servers (XFree86, X Inside's
  309. Accelerated X, and the server from MetroX) available for Linux, only the two
  310. commercial versions support xvideo. Since this capability is still
  311. relatively new, it won't be covered in this document at the current time. As
  312. I get more information or new tools become available, I may add a section
  313. devoted to live video applications.
  314.  
  315. System Requirements
  316.  
  317. All the tools covered by this document require that the user have a properly
  318. installed Linux system. Most require a properly installed X environment,
  319. including the X shared libraries and an X server. A few tools require
  320. special extensions to the X server. Any special requirements, above the need
  321. for Linux and generic X Windows support (such as the X server extensions),
  322. will be listed with each of the tools.
  323.  
  324. A few words about hardware vs. software acceleration.
  325.  
  326. The architecture of the X windows system doesn't allow for applications to
  327. make direct use of video hardware. That responsibility falls to the X
  328. Server. Because of this, users with specialized hardware which can speed up
  329. graphics display, such as using MPEG hardware, cannot expect the
  330. applications to make use of this hardware. The applications are written to
  331. use the available API's which the X server can understand. Some of these
  332. allow the server to make use of special hardware (like the X Video
  333. extension). Other server extensions operate transparently to the
  334. applications. This means that the application cannot even ask for such
  335. support - it is up to the server to either support the hardware or not.
  336.  
  337. Some accelerations are handled in the server software instead of in
  338. hardware. An example of this is the 1.2 Accelerated X server from X Inside,
  339. which has software acceleration for its OpenGL support. This means that the
  340. OpenGL API is supported, but the server doesn't make use of specific
  341. hardware designed to aid programs which use this API. Instead, the server
  342. attempts to speed of graphics dispaly of OpenGL programs through various
  343. software tricks and techniques.
  344.  
  345. Texts on Computer Graphics
  346.  
  347. These are a few references for graphics in general. Other reference material
  348. that is specific to a tool will be listed with that tool in the following
  349. sections.
  350.  
  351.    * Foley, van Dam, Feiner and Hughes; Computer Graphics: Principles and
  352.      Practice 2nd Ed
  353.      Make sure you grab the 2nd Edition that uses C instead of Pascal!
  354.      There used to be an automatic email server for this text. Try email to
  355.      graphtext@cs.brown.edu with "Subject: Get-Text-Bug-List". Also,
  356.      "Subject: Help" returns other services provided.
  357.  
  358.    * Foley, et al; Introduction to Computer Graphics, 1994
  359.      This is a stripped down version of the previous reference, suitable for
  360.      an introductory computer graphics course. This one apparently only
  361.      supports C (ie there isn't a Pascal version).
  362.  
  363.    * Alan Watt; 3D Computer Graphics
  364.  
  365.    * Alan and Mark Watt; Advanced Animation and Rendering Techniques Addison
  366.      Wesley, 1994 Despite the title, most of the book is dedicated to
  367.      Computer Graphics (Rendering) and not to Animation.
  368.  
  369.    * Rogers and Adam; Mcgraw Hill; Mathematical Elements for Computer
  370.      Graphics
  371.  
  372.    * Cohen/Wallace; Radiosity and Realistic Image Synthesis
  373.  
  374.    * Hearn and Baker; Computer Graphics, 2nd edition, March 1994
  375.  
  376.    * Hill; Computer Graphics, December 1989
  377.  
  378.    * Angel; Computer Graphics, 1989
  379.  
  380.       For more information about doing graphics on Unix systems, please
  381.        see my Raytracing and other 2D/3D graphics for Unix Systems web
  382.                                    page.
  383.  
  384.  [ArroContents
  385.  
  386.  --------------------------------------------------------------------
  387.  
  388. Image Viewing Tools
  389.  
  390. Viewing tools allow a user to display an image. This includes tools which do
  391. no more than display the image once or place it on the background of an X
  392. display. Generally tools that allow you to view an image also allow you to
  393. do something else with it. This section is just for those people who wish to
  394. find a tool for simply viewing images.
  395.  
  396.    * xsetroot
  397.      Generally available with the base X11 installations and can be found in
  398.      /usr/bin/X11. Allows the user to display an image as the background to
  399.      their X display. This is pretty nifty to do, but if you're on a slow
  400.      machine or if you have 16M or less of memory it might be wise not to
  401.      use this. Having fancy images as a background slows window redraws when
  402.      you move them around.
  403.  
  404.    * xsetbg
  405.      Generally available with the base X11 installations and can be found in
  406.      /usr/bin/X11. However, this may not be in every distribution. xsetroot,
  407.      which does basically the same thing, might be more likely to be in a
  408.      distribution that does not have xsetbg.
  409.  
  410.    * xwud
  411.      Generally available with the base X11 installations and can be found in
  412.      /usr/bin/X11. This tool is used to view X window dumps (image files in
  413.      xwd format) created with xwd or other tools.
  414.  
  415.    * xv
  416.      Far and away the best image viewer available, xv includes Postscript
  417.      documentation of over 100 pages. This product is shareware. The latest
  418.      version is 3.10a. Most distributions contain a version of xv although
  419.      the version may not be the latest. xv is more known for its image
  420.      manipulation capabilities and will be discussed in more detail in the
  421.      section titled Image Manipulation.
  422.  
  423.  [ArroContents
  424.  
  425.  --------------------------------------------------------------------
  426.  
  427. Image Creation Tools
  428.  
  429. Creation tools include those which permit the user to use an electronic pen
  430. or pencil to create pictures, much like an artist on a canvas. They also
  431. include tools which allow a user to model pictures, similar to CAD (Computer
  432. Aided Design) programs, and then use those models with other tools to
  433. actually create the final image. Finally, any tool which provides an
  434. Application Programming Interface (API) which programmers can use to create
  435. images are also included.
  436.  
  437. Drawing and Paint Programs
  438.  
  439.    * xpaint - version 2.1.1 by David Koblas
  440.      File Formats Supported: TIFF, PPM, GIF, XBM, PS, XPM, XWD
  441.  
  442.      Generally available with the X11 installations on most distributions
  443.      and can be found under /usr/bin/X11. xpaint is comparable to tools such
  444.      as MacPaint or MS-Paint (or whatever the Microsoft paint program is
  445.      called), although not nearly as feature-rich. There is another tool
  446.      called spaint in
  447.      ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics/draw/, but I've
  448.      never used this and don't really know what it does.
  449.  
  450.      A beta version of Xpaint 2.2 from Torsten Martinsen
  451.      (bullestock@dk-online.dk) is now available. Based on the announcement
  452.      posted to comp.os.linux.announce it appears quite a few features have
  453.      been updated or added. I build it on my systems but he left some silly
  454.      things in the Imakefile's (hard coded the path to a config file). Other
  455.      than that it appears to build fine.
  456.  
  457.    * tgif
  458.      File Formats Supported: I'm not clear on this one, but I think it
  459.      supports XBM, XPM, EPS, GIF and OBJ (which may be a format specific to
  460.      tgif).
  461.  
  462.      This tool doesn't come in the base X11 installations but is available
  463.      on sunsite.unc.edu. I suspect its also available as a separate package,
  464.      possibly associated with the X packages, in the various distributions.
  465.  
  466.      tgif is a drawing program very much of the caliber of MacDraw. It has a
  467.      very extensive feature set and deals well with primitives and text. It
  468.      does all its work in 2D. The tool is based on Xlib and Xt, so Motif is
  469.      not required.
  470.  
  471.    * [Updated!] The GIMP - The General Image Manipulation Program
  472.      File Formats Supported: Depends on plug-ins that are configured. If the
  473.      correct libraries are available on your system then TGA, GIF, JPEG,
  474.      TIFF, XPM, and PNG are available.
  475.  
  476.      The GIMP is a tool similar in style to Adobe Photoshop but not nearly
  477.      so feature rich. It's being written by a couple of undergrads at UC
  478.      Berkley and is relatively new in its life cycle. The current release
  479.      for Linux is 0.54.
  480.  
  481.      Although The GIMP does allow for some image creation, its best use is
  482.      in image manipulation. More details on this application will be found
  483.      in the section titled Image Manipulation.
  484.  
  485. Raytracers and other 3D tools
  486.  
  487. These are the really fun tools. Raytracing applications take a model, which
  488. is a description of a scene or collection of one or more 3D objects, and
  489. determine how the scene would look in 3 dimensions. They take into
  490. consideration lighting, camera angles, reflection, textures, and lots of
  491. other things in determining the color of an individual pixel. One thing they
  492. don't do is determine how an object is lit by reflected light. That process
  493. is called radiosity. Some raytracers are starting have radiosity algorithms
  494. added to their code. Alot of the realism of Toy Story came from radiosity
  495. effects.
  496.  
  497.    * [Updated!] POV-Ray - The Persistance of Vision Raytracer
  498.      Current Version: 2.2, with a 3.0Beta binary available (source for 3.0
  499.      is not available for the Beta, but will be when the Beta period has
  500.      expired). Current beta version is at revision 7.
  501.      File Formats Supported: POV-Ray 2.2 outputs in TGA, RAW, and DUMP
  502.      formats, although the latter two are almost never used. There are
  503.      patches for 2.2 that allow it to support ppm, PNG, and JPEG output. It
  504.      reads in a model file that is ASCII text, formatted in a language
  505.      specific to POV-Ray. The a beta version of 3.0 available for Linux
  506.      supports TGA, PPM, and PNG formats.
  507.      Web Site: http://www.povray.org
  508.      Newsgroups: comp.graphics.rendering.raytracing
  509.  
  510.      POV-Ray is a truly wonderful program. It started life on Microsoft
  511.      based systems and has been ported to many Unix platforms, along with
  512.      Macintosh, Amiga and a few others. The program is maintained by a
  513.      volunteer network of developers, is well coordinated and has its own
  514.      domain (povray.org). There have been at least 3 texts published (Young3
  515.      & Enzmann4) related to POV-Ray, and more are no doubt in the works.
  516.  
  517.      POV-Ray has a very large following that have created a number of
  518.      utilities for use with the renderer. The POV-Ray web site doesn't
  519.      easily distinguish tools that are available for Unix (ie Linux)
  520.      platforms. I set up a Web page specifically to list and discuss these
  521.      utilities at http://www.csn.net/~mjhammel/povray/povray.html.
  522.  
  523.    * Polyray
  524.      File Formats Supported: unknown
  525.      Web Site: http://www.inf.fu-berlin.de/~leitner/grafik/polyray.html
  526.      Newsgroups: comp.graphics.rendering.raytracing
  527.  
  528.      Polyray is a raytracer. I don't know much more about it than that. I
  529.      just haven't had time to explore it yet. Polyray is available from the
  530.      sunsite archives and its mirrors.
  531.  
  532.      One user of Polyray reported:
  533.  
  534.           Polyray is a version of POV-Ray that does function surface
  535.           evaluations. Its pretty cool if you like doing the math for
  536.           topologies rather than using a script to string a bunch of
  537.           objects together.
  538.  
  539.    * Radiance
  540.      File Formats Supported: unknown
  541.      Web Site: http://radsite.lbl.gov/radiance
  542.      Newsgroups: comp.graphics.rendering.raytracing
  543.  
  544.      I know even less about Radiance, except that it appears to be available
  545.      for Linux systems from the Sunsite archives. A version also appears on
  546.      the Slackware 3.0 CD-ROM, so I'm guessing its also on many of the other
  547.      Linux CD-ROM distributions.
  548.  
  549.    * Rayshade
  550.      File Formats Supported: unknown
  551.      Web Site:
  552.      Newsgroups: comp.graphics.rendering.raytracing
  553.  
  554.      Rayshade also appears available for Linux systems from the Sunsite
  555.      archives. I don't know anything else about it, however.
  556.  
  557.    * BMRT - the Blue Moon Rendering Tool
  558.      File Formats Supported: RIB
  559.      Web Sites:
  560.         o ftp://ftp.gwu.edu/pub/graphics/BMRT.
  561.         o http://www.seas.gwu.edu/student/gritz/bmrt.html
  562.  
  563.      Newsgroups: comp.graphics.rendering.renderman
  564.  
  565.      A Renderman ((C) Pixar) compliant rendering engine. The following is
  566.      taken from the comp.graphics.rendering.renderman newsgroups FAQ:
  567.  
  568.           Larry Gritz has a shareware implementation, called the Blue
  569.           Moon Rendering Tools (BMRT). It supports ray tracing and
  570.           radiosity, area lights, full implementation of SL, volume and
  571.           imager shaders, and other advanced features. It also comes
  572.           with real-time RIB previewers (under X11 and/or OpenGL). BMRT
  573.           runs on SGI, HP, NEXTSTEP, Linux, IBM RS/6000, and DEC Alpha.
  574.           There are no Mac, Windows, or DOS versions. It is available
  575.           from ftp://ftp.gwu.edu/pub/graphics/BMRT. More information
  576.           about BMRT is available from
  577.           http://www.seas.gwu.edu/student/gritz/bmrt.html
  578.  
  579.      This tool is distributed in binary format for Linux and is very easy to
  580.      set up and run. However, how to create the shaders and RIB files is not
  581.      readily apparent. The sced modeler can output RIB files but I'm not
  582.      clear yet on how shaders are created. I would consider this a fairly
  583.      advanced tool, not for the beginner. Start with POV-Ray first, since it
  584.      has quite a bit of printed documentation and a large set of development
  585.      tools, then move into tools like BMRT.
  586.  
  587. Fractal-based tools (heightfields, etc)
  588.  
  589. These tools allow the user to create various sorts of images, many of which
  590. can be used by the 3D raytracers to produce moons, mountains, and other
  591. surface features.
  592.  
  593.    * HF-Lab v0.81
  594.      File Formats Supported:GIF, POT, TGA, PGM, MAT, OCT
  595.      Web Site: http://jumpjibe.stanford.edu:8080/beale/gforge/
  596.      Newsgroups: comp.graphics.rendering.raytracing
  597.  
  598.      This tool has a text based interface that allows the user to create
  599.      fractal surfaces, viewable in 2D and 3D. Although is uses a text
  600.      interface for input, the viewing windows are X windows. This is a very
  601.      interesting program thats easy to learn and use.
  602.  
  603.    * xfractint
  604.      File Formats Supported: GIF, POT (which is 16-bit GIF)
  605.  
  606.      I've not used this program, although it appears to come standard with
  607.      most Linux distributions. It is a Unix port of a DOS program, and in
  608.      fact has an option to "Shell to DOS". The man page is terse and I don't
  609.      appear to have the docs which come with the source. This might be
  610.      available from sunsite or ftp.x.org.
  611.  
  612. Modelers
  613.  
  614. Modelers are tools which are used to create the scene files used as input to
  615. 3D renderers (see above). Their output file formats are not image file
  616. formats, but rather formats specific to various renderers. Some modelers can
  617. also inport files of various formats. Again these import files are not image
  618. files, but other forms of model scene files.
  619.  
  620.    * Sced v0.94
  621.      File Formats Supported: POVRay, Radiance, Rayshade, Renderman (RIB),
  622.      VRML
  623.      Web Site: http://http.cs.berkeley.edu/~schenney/sced/sced.html
  624.      Newsgroups: comp.graphics.rendering.raytracing
  625.      comp.graphics.rendering.misc
  626.  
  627.      Sced is a constraint based scene editor, or authoring tool if you're
  628.      into VRML. It is a program for creating 3d scenes, then exporting them
  629.      to a wide variety of rendering programs. Programs supported are:
  630.         o POVray
  631.         o Rayshade
  632.         o any VRML browser
  633.         o anything that reads Pixar's RIB format
  634.         o Radiance
  635.         o Plus a couple of local (sced specific) formats
  636.  
  637.      Sced uses constraints to allow for the accurate placement of objects,
  638.      and provides a maintenance system for keeping these constraints
  639.      satisfied as the scene is modified.
  640.  
  641.      Sced is available from ftp://ftp.cs.su.oz.au/stephen/sced and (soon, if
  642.      its not already there) ftp://ftp.povray.org/pub/pov/modellers/sced.
  643.  
  644.    * Sceda v0.80
  645.      File Formats Supported: POVRay, Radiance, Rayshade, Renderman (RIB),
  646.      Genray, Genscan
  647.      Web Site: http://www.cyberus.ca/~denism/sceda/sceda.html
  648.      Newsgroups: comp.graphics.rendering.raytracing
  649.      comp.graphics.rendering.misc
  650.  
  651.      Sceda is a version of sced that supports animation. It allows a user to
  652.      model a scene, then describe how objects in that scene will move and
  653.      where they move to. Sceda then creates a series of intermediate scenes
  654.      that can be used as input (as individual files) to the rendering engine
  655.      to create an animation.
  656.  
  657.      Sceda is slightly behind Sced in version, but Stephen Chenney says
  658.      thats his fault and is hoping to fix that soon.
  659.  
  660.    * [Updated!] Midnight Modeler v2.1c
  661.      File Formats Supported: MNM, RAW, DXF
  662.      FTP Site:
  663.      ftp://sunsite.unc.edu/pub/Linux/apps/graphics/rays/pov/mnmlinux-pl2.tgz
  664.  
  665.      ftp://sunsite.unc.edu/pub/Linux/apps/graphics/rays/pov/mnm-linux-pl2.static.ELF.gz
  666.  
  667.      You need both files to run the ELF version (I think - you might only
  668.      need the second file if you don't have ELF shared libraries on your
  669.      system already).
  670.      Newsgroups: comp.graphics.rendering.raytracing,
  671.      comp.graphics.rendering.misc
  672.  
  673.      This is a port of a DOS program that is very CAD-like. The interface is
  674.      quite nice, however the program doesn't use X application defaults, so
  675.      setting the colors is difficult. On 256 color displays you're likely to
  676.      get alot of color flashing. The program is only available in binary,
  677.      since the original author of the DOS version apparently doesn't like to
  678.      give out his source.
  679.  
  680. Programming Interfaces (APIs)
  681.  
  682. An alternative to creating 3D animations by stringing together a series of
  683. static images is to create a program that creates the images on the fly.
  684. This is useful for having interactive environments where the images
  685. displayed can depend on user input.
  686.  
  687.    * OpenGL
  688.      Web Site:
  689.         o http://www.digital.com:80/pub/doc/opengl/ - man pages
  690.         o http://www.sgi.com/Technology/openGL/glspec/glspec.html -
  691.           specifications
  692.  
  693.      Newsgroups: comp.graphics.api.opengl, comp.graphics.api.inventor
  694.  
  695.      OpenGL comes from Silicon Graphics, Inc. and is a programming language
  696.      that has gained alot of popularity in the recent past. I know of a
  697.      couple of texts that are available:
  698.         o OpenGL Programming Guide, by Neider, Davis, and Woo;
  699.           Addison-Wesley
  700.         o OpenGL Reference Manual, OpenGL Architecture Review Board;
  701.           Addison-Wesley
  702.         o At least one text on OpenInventor, a less primitive language for
  703.           creating OpenGL applications (at least I think thats what it is).
  704.  
  705.      Sample source for the Programming Guide is available from
  706.      ftp://ftp.sgigate.sgi.com/pub/opengl, although the text says many
  707.      implementations come with this source already optimized for your
  708.      system. I don't know if thats true or not for Linux implementations.
  709.  
  710.      OpenGL implementations are available as server extensions and a set of
  711.      programming libraries from the two commercial X server vendors (X
  712.      Inside and MetroX).
  713.  
  714.    * MesaGL 1.2.6
  715.      Web Site: http://www.ssec.wisc.edu/~brianp/Mesa.html
  716.      FTP Site:
  717.         o ftp://sunsite.unc.edu/pub/Linux/X11/libs/Mesa-1.2.7.tgz
  718.         o ftp://iris.ssec.wisc.edu/pub/packages/development/graphics/mesa
  719.  
  720.      Newsgroups: comp.graphics.api.opengl
  721.      Mailing List: listproc@iqm.unicamp.br
  722.      use the following in the text of them message:
  723.      sub mesa <you name>
  724.  
  725.      This is a freely-available version of the OpenGL API. Since it has no
  726.      server extensions, all the accelerations of the OpenGL specification
  727.      are handled in software. This might be a good place to learn the OpenGL
  728.      language. Building the libraries and associated programs is very easy.
  729.      I tried the samples and demo programs on my 486/66DX2 with 40M memory.
  730.      Most were a bit sluggish. I would think if you're going to get into
  731.      interactive 3D programming you might consider at least a Pentium 90 or
  732.      better. Thats just a suggestion, though. Remember: faster graphics
  733.      cards (ones with special hardware acceleration) won't help for Mesa
  734.      since it doesn't make use of the features of those cards (the X server
  735.      would have to do that).
  736.  
  737.      The README file for Mesa states that Mark Kilgard, the author of Mesa,
  738.      writes a column about OpenGL in the X Journal and that if you're
  739.      looking to learn about writing OpenGL programs this might be a good
  740.      place to start. The examples are written in GLUT (the OpengGL Utility
  741.      Toolkit, which is discussed elsewhere in this document). Disclaimer: I
  742.      have no association with the X Journal.
  743.  
  744.    * GLUT - GL Utility Toolkit 3.0
  745.      Web Site: http://reality.sgi.com/employees/mjk_asd/glut3/glut3.html
  746.      FTP Site: ftp://sunsite.unc.edu/pub/Linux/libs/X/glut-3.0.tgz
  747.  
  748.      GLUT provides a simple portable, window-system independent interface
  749.      allowing you to write production OpenGL applications quickly and
  750.      easily. This is a replacement for aux and tk toolkits. The aux and tk
  751.      toolkits are used in the OpenGL Programming Guide and in SGI's demos,
  752.      respectively. However, they were not intended for production
  753.      applications.
  754.  
  755.      If you're going to write Mesa/OpenGL applications you would do so using
  756.      aux, tk, GLUT or GLX (not discussed in this document). This is similar
  757.      to saying "write X applications using Motif or the Athena Widgets, not
  758.      by using Xlib directly". Or at least I think it is.
  759.  
  760.    * [New!], lib3D Library - v0.1.1
  761.      FTP Site: ftp://sunsite.unc.edu/pub/Linux/libs/graphics
  762.  
  763.      This library was just uploaded to sunsite so it may still be in the
  764.      Incoming directory.
  765.  
  766.      This is the initial release of a 3D z-buffering rendering library. It
  767.      uses a hierarchy of models, cameras and lights that can be manipulated
  768.      by the user through the API.
  769.  
  770.    * SRGP / SPHIGS - The Simple Raster Graphics Package and Simple PHIGS
  771.      Web Site: unknown
  772.      Newsgroups: unknown
  773.  
  774.      SRGP is a library for teaching 2D computer graphics. It is the primary
  775.      tool covered in Computer Graphics: Principles and Practice (Foley2) in
  776.      chapters 2 and 3. It requires no special server extensions to use.
  777.  
  778.      SPHIGS is a simplified version of the PHIGS standard for 3D floating
  779.      point heirarchical graphics. It too comes as a library that requires no
  780.      special extensions to the X server to work. The
  781.  
  782.      Both of these are available in the sunsite archives under
  783.      ftp://sunsite.unc.edu/pub/Linux/X11/libs.
  784.  
  785.    * PHIGS / PEX
  786.      Web Site: unknown
  787.      Newsgroups: comp.graphics.api.pexlib
  788.  
  789.      I have very limited knowledge of these two other than they are
  790.      standards for 3D graphics. PHIGS, the Programmer's Heirarchical
  791.      Interactive Graphics Standard supports nested hierarchical groupings of
  792.      3D objects. PEX, I think, is an extension to the X protocol that
  793.      supports PHIGS (but I'm not completely sure).
  794.  
  795.      There may be support for these in some form from the XFree86 folks. I
  796.      haven't kept up to date on that particular server. X Inside was working
  797.      on support but I don't know if they have a commercially available
  798.      product. I don't have any information on support from MetroX.
  799.  
  800.      I've not seen any software only (libraries, etc) that support these.
  801.      I'm under the impression that you have to have a PEX capable server in
  802.      order to do PHIGS. Hopefully someone will contact me after reading this
  803.      document to clear things up.
  804.  
  805.    * Java
  806.      Web Sites:
  807.         o The Java-Linux Porting Project
  808.         o Java(tm) Home Page
  809.  
  810.      Newsgroups:
  811.         o comp.lang.java - general Java discussion
  812.         o alt.www.hotjava - discussion of the HotJava browser
  813.  
  814.      Mailing Lists:
  815.         o java-linux-request@java.blackdown.org - (Maintained by
  816.           karl@blackdown.org) Discussions and developments concerning the
  817.           port of Java to Linux. Send email to
  818.           java-linux-request@java.blackdown.org with the word `subscribe' in
  819.           the subject to be added to the list.
  820.         o java-linux-announce-request@java.blackdown.org - (Maintained by
  821.           karl@blackdown.org) Moderated list for announcements concerning
  822.           the Java-Linux porting projects. Please send e-mail to
  823.           java-linux-announce-request@java.blackdown.org with the word
  824.           subscribe in the subject, to be added to the list.
  825.  
  826.      I just started looking into Java and found a very nice place to start -
  827.      the Sunsoft Press JAVA Series. Each of these, there are 3 texts, comes
  828.      with a CD (the same CD in each). The first text is called Instant Java.
  829.      It is really nothing more than users guide for a set of Java applets
  830.      that are on the CD. My first try at using any of these produced a
  831.      animatation of a logo for the local Linux users group with very little
  832.      trouble. The problem with this is that to make the animation viewable
  833.      on the net, the images have to be very small in size and there
  834.      shouldn't be too many of them. 8 images worked ok (each about 20k), but
  835.      Netscape couldn't load 15 images (same sizes). If you want to just see
  836.      what Java can do, this is a nice book with which to experiment without
  837.      having to do any real programming (but you do need to understand HTML).
  838.  
  839.      An important point to this text and the pre-compiled applets on the CD
  840.      is that you don't need to download the Java Developer's Kit (JDK) to
  841.      use them. You only need the JDK (which has been ported to Linux) if you
  842.      want to write your own Java applets and compile them.
  843.  
  844.      The other texts in the series are more about programming in Java. I
  845.      haven't gotten that far yet. Hey, I just started. Cut me some slack.
  846.  
  847.      Another very good source of information about Java on Linux is Eric
  848.      Raymond's Java on Linux HOWTO.
  849.  
  850.    * VRML
  851.      Web Site: unknown
  852.      Newsgroups: unknown
  853.  
  854.      There apparently is only one VRML browser available for Linux at this
  855.      time: VRweb from the Univ. of Graz in Austria. It does not fully
  856.      support all the VRML specifications yet. It seems that in order to use
  857.      VRML you not only need to configure your own system but your ISP (or
  858.      whoever runs your Web server that serves your Web pages) must configure
  859.      the Web server to understand the vrml mime type.(Lutowski5)
  860.  
  861.      There are few tools that natively create VRML content but there are a
  862.      few converters which will take some other format and create VRML
  863.      files.(Lutowski5) I believe the SCED modeler will output VRML files
  864.      directly.
  865.  
  866.      Note: It is this authors opinion that the VRML market is at least 1.5
  867.      to 2 years away from being any use to the personal computer user. If
  868.      your interested in why I think so, send me email and I'll get on my
  869.      soapbox. <grin>
  870.  
  871. Image Libraries
  872.  
  873. There are a number of libraries that are freely available for use in
  874. non-commercial and even commercial development tools. These libraries
  875. provide an interface for an application to output images in some specified
  876. format. You should check the Licenses or Copyright information in each to
  877. how these libraries may be used.
  878.  
  879.    * TIFF Library
  880.      Web Site: unknown
  881.      Newsgroups:
  882.  
  883.    * PNG Library - 1.0 beta 2 - version 0.88
  884.      Web Site: http://quest.jpl.nasa.gov/PNG/
  885.      FTP Site: ftp://ftp.uu.net/graphics/png/src/
  886.      Newsgroups:
  887.  
  888.      PNG is a new file format that is catching on quite quickly. It was
  889.      developed in response to the problems associated with the GIF format
  890.      along with some possible legal problems regarding the compression
  891.      format used with GIF.
  892.  
  893.      There is a fairly good document (libpng.txt) which explains how to use
  894.      the library but its not a straight reference guide for the API. This
  895.      library requires the use of zlib 0.95 or later. The zlib library is
  896.      available from the PNG ftp/http site or from
  897.      ftp://ftp.uu.net/pub/archiving/zip/doc/.
  898.  
  899.    * JPEG Library
  900.      Web Site: unknown
  901.      Newsgroups: unknown
  902.  
  903.    * MPEG Library
  904.      FTP Site: ftp://ftp.mni.mcgill.ca:/pub/mpeg
  905.      Newsgroups: unknown
  906.  
  907.      This library is taken from the Berkely MPEG player and is used to
  908.      decode and dither MPEG movies. I believe Sunsite (and its mirrors) also
  909.      have copies of this library.
  910.  
  911. Other Image Creation Tools
  912.  
  913.    * xwd - X Window Dump
  914.      Generally available with the base X11 installations and can be found in
  915.      /usr/bin/X11. This tool is used to create X window dumps (image files
  916.      in xwd format). It is a command line drive program that allows you to
  917.      select an X window (which includes the root window and all the visibile
  918.      windows) to dump to a file. This is useful for debugging windowing
  919.      programs.
  920.  
  921.  [ArroContents
  922.  
  923.  --------------------------------------------------------------------
  924.  
  925. Image Manipulation Tools
  926.  
  927. Static Image Manipulators
  928.  
  929.    * xv
  930.      File Formats Supported: GIF, JPEG, TIFF, PostScript, PBM/PGM/PPM (Raw),
  931.      PBM/PGM/PPM (ASCII), XBM, XPM, BMP, Sun Rasterfile, IRIS RGB, Targa
  932.      (TGA), FITS, PM
  933.      Web Site: ftp://ftp.cis.upenn.edu/pub/xv
  934.      Newsgroups: unknown; probably any of the comp.windows.X groups
  935.  
  936.      First, xv is shareware for personal use. Commercial, Government, and
  937.      Institutional users must register their copies. Personal users who send
  938.      $40 or more for registration($25 is all thats asked) will get a
  939.      printed, bound copy of the manual, which is well over 100 pages now.
  940.  
  941.      I can't say enough good things about this tool. First, to let you know
  942.      how classy it is, keep an eye out for news reports about JPL or NASA
  943.      folks. I've noticed not just a few times that when they show images
  944.      that they received back from planetary probes they tool they use to
  945.      display them is xv! Thats probably a more sophisticated version than
  946.      the shareware one. Nonetheless, it gives you an idea of the clout xv
  947.      has.
  948.  
  949.      xv is a viewer and manipulator of images. It is not used to create
  950.      images. The color editor window is extremely powerful. There are so
  951.      many features here I can't imagine I've even tried 1/2 of them yet.
  952.  
  953.    * NetPBM / pbmplus
  954.      These tools are the most powerful that I've found for file format
  955.      conversion. Because of this, I'll reserve detailed discussion of these
  956.      packages until the Conversion Tools section.
  957.  
  958.      One thing I will mention is that most (if not all) of the tools in this
  959.      package for manipulating images require that you first convert your
  960.      image to ppm or pnm format. An example is ppmquant, which takes an
  961.      image of some arbitrarily large number of colors and converts to one
  962.      with a much smaller range of color index values. This is useful to keep
  963.      from using up an entire color palette in X. By doing this the user can
  964.      reduce the flashing effect often seen with programs that use a large
  965.      number of colors on displays with only 256 available colors.
  966.  
  967.    * ImageMagick v3.7.2
  968.      File Formats Supported: AVS, BMP, CMYK, EPS, EPSF, EPSI, FAX, FITS,
  969.      GIF, GIF87, GRAY, HISTOGRAM, HTML, MAP, MATTE, MTV, NULL, PCD, PCX,
  970.      PDF, PICT, PNM, PS, PS2, RAD, RGB, RGBA, RLA, RLE, SGI, SUN, TEXT, TGA,
  971.      TILE, UYVY, VICAR, VID, VIFF, X, XC, XBM, XWD, YUV, YUV3, PNG, JPEG,
  972.      TIFF, PhotoCD
  973.      Note: support for some of these require extra libraries or programs not
  974.      included with ImageMagick
  975.      Web Site: http://www.wizards.dupont.com/cristy/ImageMagick.html
  976.      Newsgroups: unknown
  977.  
  978.      This tool appears rather sophisticated, but I have yet to use it. I
  979.      have only heard good comments about it. My problem is I don't have all
  980.      the extra libraries on my system to build it yet. If you wish to use
  981.      JPEG, PNG, TIFF, HDF, Ghostscript, JBIG, MPEG, PICT, Radiance, RLE, or
  982.      XPM formats you'll need to make sure you have the appropriate external
  983.      libraries or applications that ImageMagick will need. The libraries and
  984.      applications are not included in the distribution, however the README
  985.      does list where to get them.
  986.  
  987.    * CJPEG / DJPEG - from the Independent JPEG Group (IJG)
  988.      File Formats Supported: unknown
  989.      Web Site: ftp://ftp.uu.net:/graphics/jpeg
  990.      Newsgroups: unknown
  991.  
  992.      These tools are referenced in the xv postscript documentation. They are
  993.      shipped as demos with libjpeg and are used for converting to/from JPEG
  994.      from/to other image formats.
  995.  
  996.    * [Updated!] The GIMP - The General Image Manipulation Program
  997.      File Formats Supported: Depends on plug-ins that are configured. If the
  998.      correct libraries are available on your system then TGA, GIF, JPEG,
  999.      TIFF, XPM, and PNG are available in the default distribution. There is
  1000.      at least one plug-in, for PhotoCD's, available for other file formats.
  1001.      Web Sites:
  1002.         o http://www.xcf.berkeley.edu/~gimp - the home page for the GIMP
  1003.         o http://ww.mint.net/~xach/xach.html - various GIMP information,
  1004.           including a Tips, Tricks and Tutorials page.
  1005.         o http://www.worldserver.pipex.com/home/adam/gimp/plug.html - The
  1006.           GIMP Plug-In Registry
  1007.         o http://www.mint.net/~xach/gimp/plugin_examples/examples.html -
  1008.           GIMP Plug-In Examples
  1009.  
  1010.      FTP Site: ftp://ftp.xcf.berkeley.edu/pub/gimp
  1011.      Newsgroups: unknown
  1012.      Mailing List: majordomo@xcf.berkeley.edu The text of the message should
  1013.      be a single line with the following in it:
  1014.                                subscribe gimp-list
  1015.  
  1016.      There is a hypermail archive of the discussions on this list maintained
  1017.      at http://www.nesc.k12.ar.us/~garman/gimp-list/.
  1018.  
  1019.      The GIMP provides
  1020.         o Multiple selection tools including rectangle, ellipse, free,
  1021.           fuzzy, bezier and intelligent.
  1022.         o Transformation tools including rotate, scale, shear and flip.
  1023.         o Painting tools including bucket, brush, airbrush, clone, convolve,
  1024.           blend and text.
  1025.         o Effects filters (such as blur, edge detect).
  1026.         o Channel & color operations (such as add, composite, decompose).
  1027.         o Plug-ins which allow for the easy addition of new file formats and
  1028.           new effect filters.
  1029.         o Multiple undo/redo.
  1030.      You can blend one image into another fairly easily. The GIMP Web pages
  1031.      have a short tutorial showing how this can be done.
  1032.  
  1033.      This tool is gaining support rather quickly. The last count had 34
  1034.      plug-ins finished, 3 in development and 6 planned. This is based on
  1035.      information from the maintainer of the plug-ins registry. I used some
  1036.      of the new plug-ins to create some new images for my Unix Utilities
  1037.      Page. Also, there is a growing number of web pages devoted to the GIMP
  1038.      (see above) with lots of really good information on how to use the
  1039.      plug-ins, add them to your GIMP source tree, tutorials, etc. The
  1040.      discussion group is made up mostly of programmers writing the plug-ins.
  1041.      I suspect, as fast as this tool is gaining popularity, that a
  1042.      discussion group for end-users will form soon as well.
  1043.  
  1044.      If you want to learn a little about things you might be able to do with
  1045.      a tool like The GIMP, check out the Kai's Power Tips and Tricks web
  1046.      page. This page is specifically for tools built for Adobe Photoshop,
  1047.      but it gives you an idea of some of the things The GIMP does now, and
  1048.      lots of what it could do with some external (ie plug-ins) development.
  1049.  
  1050. Animated Image Manipulators
  1051.  
  1052. I'm just getting started in learning about animation tools, so this section
  1053. is still under construction. All those with information on these or other
  1054. animation tools, please contact me. It should be noted that these tools may
  1055. not even be manipulators at all. They may just be tools for creating and
  1056. viewing images.
  1057.  
  1058.    * mpeg_play, mpeg_encode
  1059.      File Formats Supported: unknown
  1060.      Web Site: ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/encode/
  1061.      Newsgroups: unknown
  1062.  
  1063.      mpeg_play is available from the sunsite archives. I think mpeg_encode
  1064.      is also available there too. I've been told there are Linux binaries on
  1065.      the UCBerkeley web site listed above.
  1066.  
  1067.      Apparently these are quite powerful tools, but also are a bit involved
  1068.      to set up.
  1069.  
  1070.    * xanim
  1071.      File Formats Supported: xanim supports a ton of file formats. The
  1072.      following is taken from the man page for xanim and is slightly
  1073.      abbreviated:
  1074.      FLI, FLC, IFF, GIF87a, GIF89a, DL, Amiga PFX (may be disabled), Amiga
  1075.      MovieSetter, Utah Raster Toolkit RLE, MPEG Type I frames, WAV audio
  1076.      (only PCM audio codec)
  1077.           AVI formats:
  1078.         o IBM Ultimotion
  1079.         o JPEG
  1080.         o Motion JPEG
  1081.         o Intergraph JPEG
  1082.         o Microsoft Video 1
  1083.         o Uncompressed RGB (8 and 24 bit)
  1084.         o RLE
  1085.         o Editable MPEG
  1086.           Quicktime formats:
  1087.         o RAW - 4,8,16,24,24+, Gray 4 and Gray 8
  1088.         o Apple Graphics RLE
  1089.         o Apple Animation
  1090.         o Apple Video
  1091.         o SuperMac Cinepak
  1092.         o Component Video (YUV2)
  1093.         o Photo JPEG
  1094.      Web Site: http://www.portal.com/~podlipec/home.html
  1095.  
  1096.      XAnim is a program that can display animations of various formats on
  1097.      systems running X11. XAnim also provides various options that allow the
  1098.      user to alter colormaps, playback speeds, looping modes and can provide
  1099.      on-the-fly scaling of animations with the mouse.
  1100.  
  1101.    * FLI encoders
  1102.      File Formats Supported: unknown
  1103.      Web Site: ftp://www.pov.org/incoming
  1104.      Newsgroups: unknown
  1105.  
  1106.      Again, I don't know much about these tools. Terry Brown posted a note
  1107.      to comp.graphics.rendering.raytracing a few weeks ago that he had
  1108.      uploaded some FLI-based tools to the POV-Ray ftp site in the incoming
  1109.      directory. I don't know if they're still there or if they've been moved
  1110.      to a more appropriate directory.
  1111.  
  1112.    * Aero
  1113.      File Formats Supported: unknown
  1114.      Web Site: unknown
  1115.      Newsgroups: unknown
  1116.  
  1117.      This tool is a sort of modeler for creating animations. It is available
  1118.      from ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics/. There are a
  1119.      number of files there related to aero, including a README. Other than
  1120.      that I don't know much about it.
  1121.  
  1122.  [ArroContents
  1123.  
  1124.  --------------------------------------------------------------------
  1125.  
  1126. Image Conversion Tools
  1127.  
  1128. Conversion tools allow a user to take an image that is one file format and
  1129. turn it into another file format. These tools are very useful considering
  1130. the number of differnt image formats that are out there!
  1131.  
  1132.    * xv
  1133.      See the section on Image Manipulation Tools
  1134.  
  1135.    * NetPBM / pbmplus
  1136.      File Formats Supported: 10x, 4425, acad, ascii, atk, bbnbg, bmp, cmuwm,
  1137.      ddif, epsi, epson, fits, fs, g3, gem, gif, go, icon, icr, ilbm, lispm,
  1138.      lj, ln03, lps, macp, map, mgr, mitsu, pbm, pcx, pgm, pi1, pi3, pict,
  1139.      pj, pjxl, pk, plot, pnm, ppm, ps, ptx, puzz, rast, rgb3, sgi, sir,
  1140.      sixel, tga, tiff, uil, x10bm, xbm, xpm, xwd, ybm, yuv, yuvsplit, zinc
  1141.      Web Site: unknown
  1142.      Newsgroups: unknown
  1143.  
  1144.      pbmplus is the older name for this set of tools. I don't know the
  1145.      difference between them as I've only used the pbmplus set. However,
  1146.      both sets are available from the sunsite archives.
  1147.  
  1148.      You can use NetPBM/pbmplus to convert many (but not all) of the formats
  1149.      supported from their current format intp ppm or pnm formats. From there
  1150.      you can manipulate the program using any of a great number of tools
  1151.      (such as ppmquant or ppmrelief), convert to another format such as pgm
  1152.      and then use other tools (pgmhist, pgmoil, etc), or convert to some
  1153.      final image format (ppmtogif, ppmtotga). The trick is to find the right
  1154.      set of tools to start with, the right set of intermediate tools, and
  1155.      the right set of tools for final conversion. It takes a little
  1156.      practice, but eventually their use becomes almost second nature.
  1157.  
  1158.      Since there are so many tools in these packages it is essential that
  1159.      you install the man pages too. Most man pages are rather small (since
  1160.      most of the tools do only one thing to an image) but many of the tools
  1161.      have one or two command line options (or more) that will come in handy
  1162.      when using them.
  1163.  
  1164.    * ImageMagick
  1165.      See the section on Image Manipulation Tools
  1166.  
  1167.  [ArroContents
  1168.  
  1169.  --------------------------------------------------------------------
  1170.  
  1171. Tools yet to be evaluated
  1172.  
  1173. There are a large number of tools of which I've heard or seen reference to
  1174. but that I know next to nothing about. Below is a list of the tools I'll be
  1175. looking into in the future (who knows when). If you have information about
  1176. these tools please feel free to send it to me, especially if you are the
  1177. tool author or maintainer of Web pages or other documents regarding these
  1178. tools.
  1179.  
  1180.    * glut - I have this but haven't looked into it yet. Its associated with
  1181.      MesaGL (at the least) and I'll probably look into it when I get deeper
  1182.      into MesaGL.
  1183.    * khoros - http://www.khoros.unm.edu
  1184.      This URL takes forever to load through my ISP. I don't know if its the
  1185.      khoros' server side fault or my ISP's fault.
  1186.    * alchemy - http://www.handmadesw.com/hsi/products.html
  1187.      This is a commercial product of some kind.
  1188.    * python - http://www.python.org/sigs/image-sig/
  1189.      This URL has the same problem that the khoros one has.
  1190.    * Tools under ftp://sunsite.unc.edu/pub/Linux/X11/xapps:
  1191.         o geomview
  1192.    * Tools under ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics:
  1193.         o xmorph
  1194.    * Tools under ftp://sunsite.unc.edu/pub/Linux/X11/xapps/graphics/draw:
  1195.         o spaint
  1196.         o xfig
  1197.         o transfig
  1198.    * Tools under ftp://sunsite.unc.edu/pub/Linux/libs/X:
  1199.         o idraw - ftp://sunsite.unc.edu/pub/Linux/libs/X/iv3.1dist.tar.gz
  1200.         o YGL - ftp://sunsite.unc.edu/pub/Linux/libs/X/Ygl.3.0.3.tgz
  1201.  
  1202.  [ArroContents
  1203.  
  1204.  --------------------------------------------------------------------
  1205.  
  1206. Other Topics
  1207.  
  1208. Creating Web page graphics
  1209.  
  1210. My whole purpose for learning all this stuff was to figure out how to use a
  1211. Unix box (running on a PC) to create sophisticated graphics for web pages. I
  1212. was sick to death of hearing about all the tools available for the
  1213. Microsloth environment and was sure there were plenty of tools that could do
  1214. the same or nearly the same things as the commercial MS packages. I was
  1215. right, for the most part. The only tool that was missing was something that
  1216. handled, using a GUI-interface, the types of image manipulation that tools
  1217. like Adobe Photoshop could do. With the introduction of the GIMP this niche
  1218. is filled. The GIMP has lots of problems, but its a terrific start and the
  1219. authors design included the ability to add plug-ins right from the start. So
  1220. now, if the Unix community complains no tools like Photoshop are available,
  1221. the community has no one to blame but themselves.
  1222.  
  1223. If you're going to use Linux to create Web page graphics you should get hold
  1224. of the following tools at a minimum:
  1225.  
  1226.    * xpaint
  1227.    * xv
  1228.    * The GIMP
  1229.    * NetPBM/pbmplus
  1230.  
  1231. I suggest gettig ImageMagick too, based on the praise I've heard from
  1232. others. The GIMP is nice in that it allows you to create decent tiles for
  1233. backgrounds. A tile is an image, usually fairly small, that is repeated on
  1234. the background of a web page. The unique thing about a tile is that no
  1235. matter what the color variances are along the top, the same variances follow
  1236. along the bottom. The same is true along the sides. If this isn't true, the
  1237. tile edges will be visible in your background. The GIMP allows you take any
  1238. image and offset it along any edge, taking the offset amount and wrapping it
  1239. to the other side. You then can use a blending tool to mask out the old
  1240. edges (which will likely be quite visible). Viola! You have a seamless,
  1241. tileable image!
  1242.  
  1243. Be careful when creating backgrounds. The biggest problem with Web pages
  1244. with nifty backgrounds is the lack of care taken to choose a reasonably
  1245. contrasting font color. Having a dark purple background with dark blue text
  1246. sucks. I like grayscale backgrounds. They aren't as colorful, but they can
  1247. be just as snazzy images and, when the grayscale is light enough, a black or
  1248. near black text is easy to read. Remember: the eyes that read your pages are
  1249. not your own!
  1250.  
  1251. You can use xv to view images from some CD of images (probably on a
  1252. DOS-based CD-ROM of images) and then use it or xpaint or The Gimp to clean
  1253. it up, add or blend it to another image, or whatever. I find using pbmplus
  1254. utilities are better for converting image formats than xv since I can create
  1255. transparent and interlaced GIF's with pbmplus, whereas xv doesn't appear to
  1256. give me that opportunity.
  1257.  
  1258. If you're interested in creating 3D images for your pages you should get
  1259. hold of POV-Ray and the text Ray Tracing Creations (Young3). This is a
  1260. terrific tool for creating 3D images, but its not a point-and-click
  1261. interface. You have to manually edit ascii text files which are used as
  1262. input to the program. Its really not as hard as it might sound. Once you
  1263. learn how to create these scene files by hand you might consider getting a
  1264. modeler, such as sced, which does allow a GUI-based interface to creating
  1265. scene files. I don't suggest starting with a modeler first, though. It might
  1266. seem like it would be easier, but trust me, its not.
  1267.  
  1268. You can use POV-Ray to created 3D text as well, but you'll need to get one
  1269. of the numerous utitlies that POV users have written: font3d. This tool
  1270. allows you to take any set of TrueType font characters and turn them into 3D
  1271. objects for use with POV-Ray. Pretty cool idea, if you ask me. NOTE: POV-Ray
  1272. 3.0 has direct support for TrueType fonts, however I don't know if there is
  1273. a one-to-one correspondence in features in 3.0 with font3d.
  1274.  
  1275.        For more information about Unix utilities for use with POV-Ray,
  1276.      please see my Raytracing and other 2D/3D graphics for Unix Systems
  1277.                                  web page.
  1278.  
  1279. The output file from POV-Ray is TGA (Targa), which is a 24-bit image format.
  1280. This gives about 16 million colors for the image, but you really don't want
  1281. to use all that in your web page. Good web pages try to create images that
  1282. use colors from the same, limited (like 256) color palette. Using xv and
  1283. pbmplus on the TGA images will help to create decent 3D images that don't
  1284. hog all the colors on your web pages.
  1285.  
  1286. If you're getting into VRML or Java, 3D images are likely to be of some
  1287. interest to you. Again, POV-Ray is a great tool for this. However, I haven't
  1288. had time to research eith of these new languages so I don't know exactly how
  1289. the 3D images would fit in. Hopefully I'll get to these before the end of
  1290. this summer (or maybe if someone gives me a job doing it....)
  1291.  
  1292. Fonts on Linux
  1293.  
  1294. The fonts available with the various distributions of Linux are generally
  1295. those found in the X11 package. This is a relatively limited set of fonts
  1296. (compared to whats available under DOS, Windows, or even the Macintosh).
  1297. There are three ways to add to this limited set:
  1298.  
  1299.    * Grab the freeware and shareware font collections from Sunsite or one of
  1300.      its mirrors. I don't know the exact URL, but the file names are
  1301.      freefonts-0.10.tar.gz and sharefonts-0.10.tar.gz. These are rather nice
  1302.      fonts and most are scalable but there are no True Type fonts in these
  1303.      sets.
  1304.    * Get the Caldera Linux package. This distribution includes a font server
  1305.      with a number of True Type fonts.
  1306.    * Mount a DOS partition and use the wide array of True Type fonts
  1307.      available for DOS.
  1308.  
  1309. Why are True Type fonts important? Mostly for their use in 3D rendering
  1310. tools. POV-Ray 3.0 supports True Type fonts directly and the font3d utility
  1311. for POV-Ray 2.2 will only work with True Type fonts. If you're interested in
  1312. just adding some simple 2D text to some graphic image, you can use the X11,
  1313. freeware, or shareware fonts. The title graphic to this document was created
  1314. with a font from the freeware fonts package using Xpaint and the NetPBM
  1315. tools.
  1316.  
  1317. A word about the X11 directories
  1318.  
  1319. Throughout this document, tools which are generally distributed with X11
  1320. have been described as being under the /usr/bin/X11 directory. The existance
  1321. of this directory isn't guarenteed, however. By convention it should exist
  1322. as a link to the real directory tree. The real tree depends on which version
  1323. of X11 you are using. For X11R5, the bin directory would be /usr/X11R5/bin.
  1324. For X11R6 its /usr/X11R6/bin.
  1325.  
  1326. Life would be simple if this were the only way things were, but of course
  1327. its not. Some systems have another directory tree, /usr/X386. I believe this
  1328. is from the XFree86 project, but I'm not sure. On my Slackware 1.2 system
  1329. /usr/X386 is a symbollic link to /usr/X11R6. Its possible that some
  1330. distributions may not have this link.
  1331.  
  1332. In any case, the three system directories in which you might look to find an
  1333. X-based executable would be:
  1334.  
  1335.    * /usr/X11R6/bin or /usr/X11R5/bin (most Linux systems have R6 now)
  1336.    * /usr/bin/X11
  1337.    * /usr/X386/bin
  1338.  
  1339. Of course, if you built the binary yourself then you'll probably know where
  1340. you put it. At least one would hope so.
  1341.  
  1342. Distributed Rendering
  1343.  
  1344. Andreas Dilger has a tool, PVMPOV, which allows the use of a network of
  1345. computers to render a single image. PVMPOV can run on a number of platforms.
  1346. I believe it only works in conjunction with POV-Ray, however.
  1347.  
  1348. Newsgroups
  1349.  
  1350. The following is a list of Usenet newsgroups which have some association
  1351. with computer graphics. Most of these have FAQ's located on the FAQ
  1352. repository at ftp://rtfm.mit.edu.
  1353.  
  1354.      General Graphics (not specific to Linux)
  1355.  
  1356.    * comp.graphics.rendering.raytracing - This group is mostly comprised of
  1357.      users of 3D rendering tools that are available on a number of OSs. The
  1358.      vast majority of readers and posters are users of POV-Ray.
  1359.    * comp.graphics.rendering.misc - general rendering discussions
  1360.    * comp.graphics.algorithms - discussions about implementing graphics
  1361.      tools. Somewhat technical discussions.
  1362.    * comp.graphics.rendering.renderman - discussions related to the
  1363.      Renderman specification. This newsgroup was started by the guys at
  1364.      Pixar.
  1365.    * comp.graphics.api.opengl - discussion regarding OpenGL, including the
  1366.      Mesa and GLUT packages.
  1367.  
  1368.      Linux Graphics
  1369.  
  1370.    * comp.graphics.linux.x - general discussions regarding X windows
  1371.  
  1372. References
  1373.  
  1374.   1. Graphics File Formats; by ...
  1375.   2. Computer Graphics: Princples and Practice; 2nd Edition in C; Foley, van
  1376.      Dam, Feiner, Hughes; Addison-Wesley Publishing Company
  1377.   3. Ray Tracing Creations; 2nd Edition; Young, Wells; The Waite Group Press
  1378.   4. Ray Tracing Worlds with POV-RAY; Enzmann, Kretzchmar, Young; The Waite
  1379.      Group Press
  1380.   5. Rick Lutowski, http://www.iah.com/oa/ and oa@iah.com
  1381.  
  1382.  [ArroContents
  1383.  
  1384.  --------------------------------------------------------------------
  1385.  
  1386. Acknowledgments
  1387.  
  1388. As with all things Linux, this document will only be as good as the people
  1389. who contribute to it. So far I've done most of the work putting this
  1390. together, but there are a few people who have offered valuable assistance
  1391. regarding graphics in general:
  1392.  
  1393.    * John Beale <beale@jumpjibe.Stanford.EDU> for info on POV-Ray and
  1394.      heightfields, among other things.
  1395.    * Andreas Dilger <http://www-mddsp.enel.ucalgary.ca/People/adilger> for
  1396.      lots of POV-Ray and image format information
  1397.    * Rick Lutowski, http://www.iah.com/oa/ and oa@iah.com for VRML info.
  1398.    * The POVRay Team and the comp.graphics.rendering.raytracing newsgroup
  1399.  
  1400. Please note that if you have some special association with a particular
  1401. product and offer to help me set it up, get hold of it or learn to use it
  1402. then I'll probably mention you here. If you just send me pointers to tools I
  1403. probably won't list you here. Thats not a snub, I honestly appreciate the
  1404. pointers, but I can't list all of the people who send me URLs.
  1405.  [ArroContents
  1406.  
  1407.  --------------------------------------------------------------------
  1408.  
  1409. Registration
  1410.  
  1411. Enter your e-mail address to receive e-mail when this page is updated.
  1412.  
  1413. Your Internet e-mail address:
  1414.  
  1415.  
  1416.  [ArroContents
  1417.  
  1418.  ---------------------------------------------------------------------
  1419.  
  1420.  [Arrow]
  1421.     Back to Michael's Home
  1422.     Page
  1423.                                  Copyright 1996 by Michael J. Hammel
  1424.                                                     mjhammel@csn.net
  1425.                                               Created: April 9, 1996
  1426.                                                 Updated: May 2, 1996
  1427.                                  Registration courtesy of URL-minder
  1428.                                      Counter, courtesy of Net Digits,
  1429.                                                established 05/15/96.
  1430.  
  1431.  
  1432.