home *** CD-ROM | disk | FTP | other *** search
- This is a full Amiga port of rayshade version 4.0.6.3, which, in turn,
- is based on the sources of my previous Amiga port of rayshade, which
- contained in one place most of the bug fixes and enhancements that had
- been posted to the rayshade mailing list.
-
- Here are a few of the features of this port:
-
- * Utah RLE support.
- * Several RLE utilities.
- * CPP support.
- * Raypaint. (In color!)
- * -L switch to invoke the SAS/C preprocessor, if you have it. Slower than
- GNU cpp, but can preprocess things like #include "huge_file", on which
- cpp runs out of memory on the Amiga.
-
- Older versions of the Amiga port included a memory allocation hack that
- enabled rayshade to allocate up to twice the amount of memory than with
- the standard memory allocator. This was based on the observation that
- rayshade never freed the memory it allocated. As various additions to
- rayshade have made this observation false, the hack has been removed.
- The code for the hack has been left in libextra/stupidmalloc.c as a
- historical curiosity.
-
- INSTALLATION:
-
- (All binaries are compiled for a 68020+68881. They should run on all
- higher processors, but they will definitely crash if you only have a
- 68000/68010 or if you don't have an FPU.)
-
- 1. If you have gcc installed on your hard disk, just copy all the binaries,
- except cpp, from the BIN directory to some place on your hard disk, and
- you're all set. If you want to save images as IFF files from within the
- getami previewer, copy LIBS/iff.library to the LIBS: directory. Make
- sure that the cpp program from the gcc distribution is in your path.
-
- 2. If you don't have gcc, in addition to the above step, copy the cpp
- program as well, and copy LIBS/ixemul.library to the LIBS: directory.
- Make sure that the cpp program is in your path when you run rayshade or
- raypaint.
-
- WHAT'S INCLUDED:
-
- * The entire rayshade source tree, with the rayshade, raypaint, and
- rsconvert binaries, documentation, and example scene files.
- * The source for the Utah Raster Toolkit library.
- * Several utilities from the Utah Raster Toolkit to manipulate RLE bitmaps,
- * A couple of format conversion programs from the Utah Raster Toolkit to
- convert to and from RLE files.
- * The getami RLE file previewer.
- * The fbcat program from the FBM toolkit, that can convert between several
- image formats, including RLE.
- * Documentation for the supporting programs, in the MAN directory.
- * Various surface and other parameter settings, collected from various
- sources, in the RAYFILES directory. In it you will also find the RSdefs
- package, with additional definitions for NTSC HAM mode.
-
- RUNNING THE PROGRAMS:
-
- Make sure ixemul.library is in the LIBS: directory.
-
- Rayshade and raypaint require lots of stack. I would suggest starting
- with 50,000 bytes, increasing the stack if you start getting crashes.
- (Some scenes render fine with just 20,000 bytes of stack, while others
- need more. I routinely use 250,000-500,000 bytes, to play it safe, so I
- don't really know what the minimum safe value is. Yes, I know I'm
- overdoing it!)
-
- Rayshade works fine with VMM, a virtual memory management program, and I
- assume it also works with other similar programs like GigaMem, so if you
- run out of memory, fire up a virtual memory management program and keep
- on raytracing!
-
- Documentation for raypaint is in raypaint/README. Raypaint will render
- in color, unless you specify the -M option, in which case it will render
- in black and white. If you don't have a three button mouse, pressing
- both buttons at the same time will do the same thing. If you're using a
- program like DMouse that sends the current window/screen to the back
- when both buttons are pressed, you can try to fool it by pressing the
- right mouse button first.
-
- If you're rendering into NTSC screens, keep in mind the 1:1.1 aspect
- ratio of the pixels. For 320x200 or 320x400 screens, you can compensate
- using the fov command, with a ratio of horizontal/vertical equal to
- (320/200)/1.1=1.45454545, e.g "fov 65.45454545 45". For PAL screens the
- pixels are nearly square, so you can use a ratio of 320/256=1.25, e.g.
- "fov 56.25 45".
-
- RECOMPILING:
-
- 1. Copy INCLUDE/*.h to your include directory. Iff.h is only required for
- recompiling getami, so you can skip copying that, especially if you
- happen to have a newer version that 23.2.
- 2. Go to the STDERRFIX directory. Edit the Makefile to your satisfaction,
- and type make. Copy the resulting stderrfix.o and rle_stderrfix.o files
- to the GNU:Lib directory. These two files fix a problem with gcc, which
- does not create separate handles for stdout and stderr. For them to work
- properly, you must compile your main program using -Dmain=mymain. (This
- is done by the Makefiles, so you needn't worry.) Newer versions of gcc
- come with stderrfix.o in the GNU:lib directory, but you will still need
- to install rle_stderrfix.o.
- 3. Go to the URT/lib directory. Edit Makefile.amiga to your satisfaction,
- and attempt to run make to build librle.a. This may fail, as I've only
- managed to use the Makefile with SAS's smake. If you can't use make,
- just do a straightforward compilation to produce the files mentioned in
- the "makelib" file, then execute the "ar" command contained therein. I
- apologize for the inconvenience.
- 4. Go to the top level directory. Edit libextras/Makefile,
- libshade/Makefile, libray/lib*/Makefile, rayshade/Makefile,
- raypaint/Makefile, and etc/rsconvert/Makefile. Copy config.h.amiga to
- config.h, have a look at it to see if you want to change anything, then
- type "make -f Makefile.amiga" and go for a cup of coffee. After a while,
- you'll find the new binaries in rayshade/rayshade, raypaint/raypaint,
- and etc/rsconvert/rsconvert.
-
- In most cases I have provided Makefiles for SAS/C as well. I believe all
- programs compile fine with that compiler. However, as I have not really
- tested them (especially raypaint), I cannot guarantee that they actually
- work. (My SAS Makefiles refer to my LIB:unix.lib library. This is
- mainly for alloca, which is required by the bison parser. Grab a copy
- from one of the numerous GNU utilities, or use malloc, instead.)
-
- If you need to compile utilities from the Utah Raster Toolkit, you can
- ftp the source from cs.utah.edu. The only modifications I've made are in
- the library source (included in this archive). Once you've built the rle
- library, the utilities should compile as is. If you use gcc, make sure
- you compile with the '-Dmain=mymain' switch, and that you link with
- GNU:lib/rle_stderrfix.o or GNU:lib/stderrfix.o, depending on whether
- your program requires the rle library or not. If you use SAS/C, there is
- no need for the stderrfix hack.
-
- The directory URT/AMIGA_EXTRAS contains the source to a couple of
- utilities that are not in the official URT distribution, so you might
- want to add them to the URT sources, if you get them. (I believe that an
- older version of getami is part of the latest URT distribution. Unless
- you want a version of getami that runs under AmigaDOS 1.3, you can
- safely throw it away, and use the newer version provided here.)
-
- REPORTING PROBLEMS:
-
- If you encounter any problems related to the port, as opposed to
- problems with rayshade, let me know where I goofed, and I'll try to
- help.
-
- This archive was originally put together in an afternoon, after someone
- suggested that I should release my rayshade port which was more complete
- than the one that used to be available on aminet. All programs were
- compiled from scratch using gcc 2.5.8 or 2.6.0 (rayshade, raypaint,
- rsconvert), with options to produce code for a 68020 with a 68881
- coprocessor. I have been using 68040 versions of these programs happily
- for a couple of years, and 68020 versions for a couple of years before
- that, so I believe that you should not have any problems in using them.
- On the other hand, I cannot _guarantee_ that you won't encounter any
- problems with these programs, so it is up to you to decide whether to
- use them or not. In the event that running any of these programs causes
- a hardware failure, loss of data, or other damage, I bear no
- responsibility.
-
- Kriton Kyrimis (UUCP: pythia!theseas!kriton!kyrimis)
- (INTERNET: kyrimis@theseas.ntua.gr)
-