Welcome to the haeberli subtree. This subtree contains a wealth of programming tools, source code, image data, and libraries created by one of the most astonishingly inspired beings SGI ever enticed into its hallowed halls. The DTjanitor regards this treasure-trove as the crown jewels -- the very sine qua non -- of the Toolbox.
OBLIGATORY NOTE
THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. DO NOT USE NEAR WATER. DO NOT USE WHILE OPERATING HEAVY MACHINERY.
This software is provided without support and without any obligation on the part of Silicon Graphics, Inc. to assist in its use, correction, modification or enhancement. There is no guarantee that this software will be included in future software releases. But what is guaranteed anyway?
last updated: August, 1995
Contents:
GO TO GO TO Description (below in this document) Directory (or file) 128env - cubical format environment maps 128sph - collection of 128x128 spherical environment map images 128tex - collection of 128x128 texture map images 512sph - collection of 512x512 spherical environment map images abekas - utilities from Abekas Video Systems autopaint - "autopaint" an rgb image into various "altered states" compexp - compression explorer w/adjustable compression params enhance - swank image processing GUI prog using libui.a envtools - environment map tools fish - 180 degree Fisheye image fonts - outline fonts in our polygonal outline font format fonttools - outline font tools grafica - toolbox-local copy of paul's http://www.sgi.com/graphica ibrowse - a simple image file browser images - some IRIS images that can be "ipaste"d to the screen imgscr - scripts extending the power of programs in img/ps -tools imgtools - a collection of tools for dealing with images imp - "the new impressionist" -- an image paint program impression - interactive tools create "paintings" of scanned photos include - files defining various data structures used by the libs ipaste_ogl - OpenGL version of ipaste jpeg - jpeg img [de]compression sw+supt to manip SGI img files leep - software implementation of the LEEP projection lib - contains pre-built--rle, tri, tiff, vor--libraries libcan - basic support for creation and manipulation of canvases libgutil - a graphics utility library libimage - a library for reading and writing images libui - source to the showcase user-interface library movies - sample movie files for the imgtools/expmov program mpeg - contains a public domain MPEG video software decoder mtex - img-processor massages imgs for use as texture maps objects - a bunch of sgo objects objtools - SGO object tools pat - VERY SWANK halftoning image explorer pstools - postscript processing tools for the IRIS sgisep - has been removed--see note below styline - create interactive hidden line drawing of geometric obj tools - desktop and graphics utilities tools vidiot - "video feedback" prog animates a face w/audio input vidpan - tools for controlling a Panasonic Video disc recorder vidsony - " " " a SONY LVR-5000 Video disc recorder vidtools - tools for processing streams of video images vortest - example to document the structures in lib/libvor.aOne can also view this subtree's contents organized in the following groups:
pstools --
mpeg --
vidiot --
vidtools --
vidpan --
vidsony --
abekas --
128env --
128sph --
128tex --
512sph --
envtools -- (create and manipulate environment maps)
cylenv - make a cylindrical projection from a cubical env map drawenv - draw an environment map; pan and tile the camera around envreduce - zoom a cubical env map down by a factor of 2 envexpand - zoom a cubical env map up by a factor of 2 fromfish - convert a mercator projection scanned fisheye image to a cubical env map frommerc - convert a mercator projection into a cubical env map sphereenv - make a spherical env map from a cubical by rendering a reflective sphere tofish - create a fisheye view of a cubical env map
fish --
fonts --
objfnt.c - this module contains basic support for our polygonal outline format charfill.c - this module contains code to create and draw anti- aliased bitmaps of an outline font
fonttools --
adjustfont - change the char spacing and origin of chars in a font afm2tfm - converts Adobe font metric files into TEX font metrix files bevelstring- creates extruded beveled chars from a spline outline of a polygon font boldfont - make a font bold by convolving with a line charfill - render antialiased text using a polygonal outline font checkfont - check a font for self intersections clonewid - copy widths from one typeface to another drawfont - draw characters with triangle meshes in a GL window fntslide - an example application that fills a polygonal font fontimg - make an image of a string of text fonttest - demonstrates drawing filled and outlined text frompfa - convert a .pfa font into the Hex format frompsf - convert a .psf font into the Hex format fromtype1 - converts an Adobe Type1 font to a spline or polygonal font in sgi format meshfont - automatically triangulate a polygonal font mfrc - convert Type1 font from resource part of mac file into ascii Type1 paintfont - a paint program that lets you create your own fonts by interactively painting character's glyphs printfont - prints a textual description of a font rawtohex - this will convert the binary type1 from to a printable hex format restoraw - take an Adobe type1 font from a Macintosh and write out a binary type1 font simpfont - used to eliminate fine detail in an outline font smallcaps - make lower case chars print as small caps texfont - turn an outline font into a texture map textmap - use texture mapping to draw text totype1 - convert an outline font into a PostScript font undup - eliminate duplicate points on a .of file warpfont - apply geometric transformations (add slope or jitter) to a font
impression --
imgtools/pat --
autopaint --
imp --
movies --
mtex --
128sph --
A collection of 23 128x128 spherical environment map images
--got any 128x128 and/or 256x256 spherical environment map images
you can contribute to this collection?
Please contact the DTjanitor (also via
voice: 415/390-3556, or fax: 415/967-6239).
128tex --
A collection of 8 128x128 texture map images
--got any 128x128 and/or 256x256 texture map images
you can contribute to this collection?
Please contact the DTjanitor (also via
voice: 415/390-3556, or fax: 415/967-6239).
512sph --
fish --
images --
align1.rgb - align2.rgb - colblue.rgb - images from the water temple (see movies/water.mov) colwat.rgb - cool2.bw - cutline.bw - horlines.bw - "border" images used by imgtools/addborder regmark.bw - to surround an image with a border shadow.bw - thresh.bw - used by ../imgtools/bmthresh.c (threshold one image with another and write out a bitmap) chris.bw - logo.bw - IRIS black and white images rathouse0.bw - rathouse1.bw - "rat house reality" black and white images rathouse2.bw - PuebloB1.rgb - photographs taken inside PuebloB2.rgb - Pueblo Bonito, Chaco Canyon, New Mexico RoundRock.rgb - Round Rock, Arizona where hiways 12 and 191 meet Aztec.rgb - Aztec Nat'l Monument in Aztec, New Mexico, Lomaki.rgb - Lomaki House from Wupatki Ruins, Arizona ratman.rgb - a toolbox janitor gear[1-8].rgb, duogear - photogs of gears turned into image files. brick.rgb - brick wall (for architecture buffs) flw{2}.rgb - shots of Frank Lloyd Wright house fute.rgb - the front of Casa Mazzotti in Albisola, Italy coffee.rgb - coffee cup + saucer + stirrer + sugar cubes + coffee glass.bw - closeup of [crystal?] glass peppers.rgb - closeup of multi-colored chili peppers redgold.rgb - two bottles filled with red or gold something rose.rgb - closeup of red roses sunflower.rgb - closeup of sunflowers laid out tulhand.rgb - hand holding flask reflecting tulips tulips.rgb - closeup of tulips liquid.rgb - tulwhite.rgb - Sapoa originals cane.rgb - candles singing in the night crane?.rgb - crane staionary devtb.bw - "developer toolbox" strings devtb_env.rgb - built w/bevelstring + spin fishcam.rgb - image of a still camera fold.bw - paper folding image forestcar.rgb - car material returning to whence it came match1.rgb - closeup of matchbooks mat1.rgb - from Milano shirt.rgb - closeup of folds in blue-white stripped worn shirt stool.rgb - image of a wooden stool/seat austin.rgb bill.rgb, chair.rgb, cloth.rgb cmyk.rgb, desk.rgb, deerstroke.rgb, drab.rgb, gun.rgb, jeff.rgb, kanchar.rgb, kandplate.rgb, kanh.bw kat.rgb, kupka.rgb, tango.rgb, tent.rgb, vasechair.rgb, vaseclose.rgb - smattering of images from paul's virtual img space.
ibrowse --
ipaste_ogl --
imgscr--
autoexp - automatically expand the contrast of an image. bwto2 - use a B/W to interpolate between two colors. chromablur - blur the chroma of an image. epstogif - convert an eps file to gif format. filmgrain - add noise to an image. flip3 - triple an image by flipping it in x. fromjpg - convert a jpg file to .sgi format. gifspace - make a transparent spacer image. gleam - add a gleam to an image. handcolor - make a hand-colored wood cut. hipass - use a blur factor and an extrapolation value hsvquant - quantize an image in hue, saturation and value. intense - uses hipass to increase hi and low frequencies. linezoom - resize an image of B/W line art. makespec - make an image that is a spectrum of color. maxsat - maximize the saturation of an image. mkgauss - make a gausian image. noiseblur - blur an image and then add noise to it. nowhite - remove white from an image. pixelvis - make an image look like pixel vision video. rgmerge - merge two images for red-green display. showhsv - make a B/W image showing hue, saturation or value. softfocus - apply soft focus and noise to an image. splitalpha - separate an rgba img into an rgb and an alpha image. stripalpha - remove the alpha channel from an RGB image. tobands - make an RGB image into 3 separate .bw images
imgtools--
abs -- get the absolute value of an image absdiff -- difference two images add -- add two images together addborder -- surround an image with a border image addframe -- add a border to an image addnoise -- add noise to an image align -- automatic perspective alignment applymap -- use color map to transform screen image to rgb image approx -- use simulated anhealing to create a painting assemble -- assemble an array of smaller images bgpaste -- paste an image or list of images into the root window blend -- linearly interpolate two images blur -- low pass filter an image bmdither -- dither img to 1-bit deep bitmap w/err propagation dithering bmscreen -- apply a halftone screen to an image and write out a bitmap bmthresh -- threshold one image with another and write out a bitmap bspimg -- display a bsp representation of an image btree -- display an image using binary tree ordering cglue -- create an rgb image out of 3 black and white images chromakey -- make a mat from an image click -- click on an image and print pixel positions compexp -- compression explorer conimg -- (replaces nullimg) creates a constant (single) color image convolve -- convolve an input image with a kernel image corimg -- color correct image for printing w/four color process corimg3 -- color correct image for printing w/three color process cortab -- make an n by n by n rgb-to-cmyk values correction table cscale -- individually scale the R G B channels of an image cutimg -- extract an particular sized image from a source devel -- develop an abstract image on the screen div -- divide the brightness of two images duotone -- create a duotone image from a single channel image encode -- classify an image chosing colors from a specified color map enhance -- enhance an image interactively expmov -- expand a movie of compressed images in .mov format fieldfilt -- field filter 2-field video frame removing shear artifacts fieldmerge-- merge two field images into one frame findcolor -- find colors in a source image fitimg -- uniformly scale an image to a specific size fromalias -- convert an Alias image to an IRIS image frombin -- convert a binary dump of image data to an IRIS image frombm -- convert a one-bit-per-pixel bitmap to an image file fromcdi -- convert a Computer Design (CDI) image to an Iris image fromcmyk -- convert a CMYK image to an RGB image fromcore -- read images out of a core dump file fromdi -- convert an old SGI .di dithered image into an IRIS image fromface -- convert a UNIX faceserver image to IRIS format fromfax -- convert a group 3 fax file to an IRIS image file fromgif -- convert a Compuserve GIF image to IRIS format fromhsv -- convert an HSV image to RGB fromlinks -- convert a LINKS ".rgb" image file to an IRIS image file fromlog -- convert a logarithmic image to linear space frommac -- convert a MacPaint image to IRIS format frommov -- convert a frame from a compressed movie to an image file frompcx -- convert a Zsoft PCX bitmap file into an SGI format frompic -- convert a MOVIE BYU .PIC image to IRIS format frompict -- convert a mac PICT file to IRIS image file format fromppm -- convert a PPM file to IRIS format fromrad -- convert an Image Graphics Library RAD image to SGI format fromrla -- convert a Wavefront image to an IRIS image fromsoft -- convert an SoftImage picture to an Iris image fromstiff -- convert streaming TIFF format data to SGI image series fromsun -- convert a sun rasterfile image to IRIS format fromtarga -- convert a targa image into an IRIS image fromtiff -- convert almost any tiff image file to IRIS format fromutah -- convert a UTAH raster toolkit image into an IRIS image fromvicar -- convert a VICAR image to an Iris image fromxbm -- convert an X Bitmap image to IRIS format fromxwd -- convert an xwd file to IRIS format fromyuv -- convert an Abekas yuv image to IRIS format gammawarp -- lighten or darken an image gendit -- perform general image dithering gifinter -- interleave a GIF file gifstat -- print info about a GIF image graddir -- determine the direction of the gradient across an image greyscale -- make 19 different image patterns halftone -- half-tone an image, using Hollaway's technique hash -- draw hash lines to represent an image hipass3 -- high pass filter an image using a 3x3 filter kernel hist -- compute and display the histogram of an image file histeq -- perform histogram equalize an image file hquant -- quantify an image to n most representative colors hscale -- scale the hue of an image iavg -- average a set of images iblend -- blend 2 images using a (bw) mat icmp -- visually compare two iris images iexpand -- expand an image iflip -- flip an image imean -- finds the average pixel value of an image imgbit -- look at one bit of an image file imgcmp -- find the maximum of two images and output 0 or 255 imgdiff -- difference two images imgexp -- expand the range of pixel values in an image imgsize -- print the xsize, ysize, and zsize of an image imgtovis -- display slices of an image imgwrap -- shift pixels left one bit invert -- invert an image ipan -- interactively correlate two images to make a panarama ipaste -- display an image ireduce -- reduce an image iroll -- rotationally roll an image in x and y directions irotate -- rotate an image by a given angle isame -- compare 2 imgs pixel by pixel to see if they're the same iset -- set type (NORMAL,DITHERED,SCREEN,COLORMAP) of an image istat -- print the header information of a list of image files iv -- an ipaste for RGB, JPEG, TIFF and GIF images izoom -- magnify or minify a picture with or without filtering lerp -- blend two images interactively loadmap -- loads a colormap stored in a file logpol -- perform a log polar mapping of an image logpolinv -- invert a log polar mapping of an image mapimg -- translates a screen image into an RGB image marpap -- make marbled paper patterns matrix -- use 4x4 matricies to process color images max -- calculate the max of two images maxdev -- chose pixels from the most different image merge -- merge N images for lenticular display min -- calculate the minimum of two images mkalpha -- generate an rgba image from two rgb images mkmov -- compress a series of images into a movie file mkpal -- make a palette for a set of images mksep -- convert an RGB image into C, M, K, and K images mktiles -- make an input image into an array of tiles mkwarp -- correct for geometric distortions in a camera movie -- show a series of images as a movie movpaste -- paste a single image from a movie file onto the screen mult -- multiply two images negadd -- negative add two images noblack -- remove all the black from an image normtodir -- determine the direction of the gradient across an image oneband -- get a single band (or channel) of an image over -- put one image on top of another pan4pnt -- automatically correlate a set of imgs to make a panarama panrend -- render a panarama pat -- a halftoning explorer perhist -- determine the percentage histogram of an image file persub -- select 4 pnts in an img and map region to rectangular img perswarp -- perform a 2D projective warp on an input image pertopix -- convert a percentage of img diameter to a number of pixels phasecor -- use phase correlation to align two images pickmap -- chose a color map from an image postcard -- make an image look like a postcard pquant -- use simulated anhealing to do quantization pyramid -- make a pyramid of images pyrblend -- blend two pyramidal images using a pyramidal mat pyrdelta -- calc the diff between levels of a set of pyramid images pyrglue -- glue a family of pyramid images together qquant -- quick quantization of rgb image quant -- quantify an image to have n levels randimg -- generate a random noise image randmap -- make a random color map file randsub -- extract a random region of size xsize ysize from an image readimg -- simple example using libimage to read an RGB image file rectimg -- display a color or BW image on the iris repcolor -- replace specified colors within an image rle -- force an image to be stored using run length encoding rmsdiff -- calculate the rms difference between two images roam -- roam around a very large image using tiles rothue -- rotate the hue of an image sadd -- signed addition of 2 images saturate -- increase of decrease an image's saturation level savemap -- save the current contents (or subrange) of the colormap scope -- explore/view an image of any size scrsave -- save a part of the screen into an IRIS image file setlum -- modifies the luminance (brightness) on an image shear -- shear an image diagonally showbw -- display a BW image on the IRIS using 256 entry colormap showshift -- show a movie of two images at some x y offset slide -- zoom an image up for full screen display snapshot -- save a portion of the screen in an image file softframe -- add a black frame around an image sproof -- create a soft proof of an RGB image sproof3 -- create a soft proof of an RGB image sub -- subtract two images subimg -- extract a sub-region from an image into a new image file thresh -- threshold one image with another using a threshimage tile -- repeat an image in two dimensions toalias -- convert an IRIS image to an Alias image toarray -- convert an IRIS image to c array declaration toascii -- use text characters to represent an IRIS image tobin -- convert an IRIS image to a binary dump of pixel data tobw -- convert an IRIS color image to black and white tocmyk -- convert an RGB image into a CMYK image tofax -- convert an IRIS image file to FAX format togif -- convert an IRIS image to a Compuserve GIF image tohsv -- convert an RGB image to HSV tolog -- convert an image to logarithmic space tomac -- convert an IRIS image to MacPaint format topcx -- convert an IRIS image to PCX format topic -- convert an IRIS image to MOVIE BYU .PIC format topict -- convert an IRIS image to Macintosh PICT format toppm -- convert an IRIS image to Jef Poskanzer's ppm format tops -- convert an IRIS image to PostScript format tosgi -- convert RGB, JPEG, TIFF or GIF images to SGI format tosun -- convert an IRIS image to a sun raster file tosunbm -- convert an IRIS image to 1 bit deep SUN rasterfile totarga -- convert an IRIS image to a type 2 (RGB) targa image totiff -- convert a color or b&w IRIS image file into tiff format toutah -- convert an IRIS image to Utah raster toolkit format toxbm -- convert an IRIS image to an X bitmap file toxpm -- convert an rgb image file to xpm format toxwd -- convert an IRIS image to X11 window dump (xwd) format toyuv -- convert an IRIS image to yuv format trans128 -- use input alpha channel to map transparency to 128,128,128 transcor -- find the x/y translation to best align two images transrot -- translate and rotate an image unframe -- remove constant colored pixels from around an image unlight -- even out illumination in an image unwarp -- correct for pin-cusion distortion in images vcool -- check for "hot" video colors verbatim -- force an IRIS image to be stored in verbatim format vhist -- display a 3-D volume histogram of a color image warp -- make a movie of warped images writeimg -- simple libimage example to write out an RGB image file xzoom -- magnify or minify an image in the x direction zoomx -- zoom an image so its x-size is 1280/1024 pixels zoomy -- zoom an image so its y-size is 1024/768 pixels
libimage --
NOTE: there is a new image processing library called libil.a. This Image Library (IL) is a bonafide software product with completely documented and supported features. Its default image file format is tiff, but it also understands everything about IRIS image file format. This C++ library is an object-oriented, extensible toolkit for creating, processing and displaying images on all SGI platforms. With the release of this IL, the singular reliance on libimage's core capabilities is being superceded by a library supplying a superset of functionality available from libimage. It is important for all developers and programmers to understand the reality of libil.a's existence.
libgutil --
libcan --
jpeg --
libui --
lib/libtiff --
lib/librle.a --
lib/libtri --
lib/libvor.a --
and:
Virtual-sphere interface libgutil/track.c General image dithering libgutil/gendit.c & imgtools/gendit.c Picking colors from screen libgutil/getapixel.c Graphics machine type query gfxmachine() inside libgutil/glstuff.c Screen gamma calibration tools/gamcal.c
Simple Geometry Format modules --
All of these are used to create objects of sgo format for representing 3D geometry. Each sgo object is either a list of quadrilaterals, a list of triangles, or a list of triangle meshes. The programs in the "objtools" dir provide various tools for operating on these objects. These tools use various functions from libgutil that support a simplified interface to describe shading, automatic triangle mesh generation and efficient drawing of geometry.
libgutil/tmeshobj.c has code which takes an sgo format object composed of a list of triangles and makes this into a tmesh.
objects --
objtools --
avgnorm - averages the normals on all polygons in a triangle or quadralateral object explode - translate verticies in direction of normals fitobj - fits an object into a unit cube layer - view an sgi object interactively makeoct - can be used to create spheres objprint - prints a textual description of an object objstat - prints info about an sgi object sgoFormat- documents/demonstrates how to create an sgo (Silicon Graphics Object) spin - virtual sphere rotation interface sterrend - cheap red/cyan stereo subdiv - subdivide triangles to maximum edge length swcurve - create surfaces of rotation from a textual list of numbers tlbsp - BSP sort a triangle list
tldraw - draw a triangle list
tlfit - fit a triangle list to a -1,1 -1,1 space tlline - locate interesting edges in a set of triangles tllint - merge coordinates that are almost identical tlsplit - split all intersecting triangles in a triangle list tlsub - fit a triangle list into a -1.0..1.0 -1.0..1.0 space tltops - draw a triangle list
tltotext - print a triangle list in text format tomesh - auto tmesh generation. tosgo - converts old spin formant objects to sgo format totri - convert a quadlist object into a triangle list warpgeom - warps the geometry of an object warpnorm - this warps the normals of an object
PostScript-like path library - libgutil/path.c Matrix library of routines - libgutil/matrix.c Vector library of routines - libgutil/vect.c Easier GL lighting of geometry - libgutil/glshade.c Automatic triangle meshing - libgutil/tomesh.c tomesh.c provides the routines to take a set of triangles and make a tmesh out of this list of triangles
sgisep --
tools --
atorus - attractors on a torus unfolded+flattend onto a 2-D plane blanktime - set the number of frames before the screen blanks cedit - a simple color editor clock - a simple desk clock colorbars - colorbar generator cycol - display a palette of colors dynadraw - caligraphic drawing program gamcal - visually check gamma display calibration grid - draw a 10 by 10 grid for aligning a camera to the display ical - a simple desk calendar interp - gamma-corrected linear color ramp generator mag - pixel replication and magnification in a window makemap - reload default color lut values into the GL color map mousemon - display state of the three mouse buttons palette - display a palette of colors in the colormap phwarp - warp images on a hi-end gfx subsystem-based machine resglue - glue one or more resource files onto the end of an executable reslist - list the resourcefiles that have been glued onto a program scrhack - apply various hacks to the screen showmap - display the contents of the GL color map textcolors- set the colors used by a xwsh window tritest - triangulation test/example program for libtri.a vis - copy the bytes of a file to the screen weave - a weaving simulator for IRIS workstationsgraphics utility tools:
rgntest - an rgn example useful for management of regions
grafica --
styline --
vortest --