home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / source / dkbsrc.lzh / WHATS.NEW < prev    next >
Text File  |  1990-08-09  |  7KB  |  127 lines

  1. This file outlines the changes from DKB 2.0 through DKB 2.04.
  2.  
  3.  
  4. Version 2.01:
  5.  
  6. 1. Bug in smooth triangles fixed (caused problems with TILES.DAT).
  7.  
  8. 2. Degenerate Triangles (some of which are in the data file SLANTBOX.DAT)
  9.    are ones with two of three points the same.  This is a "line" entity,
  10.    and as such it is a nonsensical 3-D object and makes the program choke.
  11.    Code added to detect and report line numbers that contain such objects.
  12.  
  13. 3. Supersampling is made to be nonrandom on a run-by-run basis.  There is
  14.    still a random jittering of the supersamples, but it happens based on
  15.    the x-y coordinates of the object (similar to the way textures are
  16.    "randomly" spread on object surfaces).  This makes for very consistent
  17.    jittering of the samples and almost no "flying dots" or randomly scattered
  18.    pixels as consecutive frames of an animation are rendered.
  19.  
  20. 4. Misspelling of "Paraboloid" in the file PARABOLO.DAT corrected.
  21.  
  22. 5. Removed usage message for an unimplemented option, -n.
  23.  
  24.  
  25. Version 2.02:
  26.  
  27. 1. Some functions were broken up into smaller parts to ease compilation memory
  28.    requirements, and so nearly all functions can be globally optimized with
  29.    MSC 6.0.  A couple of functions in parse.c and iff.c are still too large
  30.    to globally optimize, but these are in the overlaid modules (see below)
  31.    and the program only spends a fraction of its time in these functions once
  32.    at the beginning of the trace, so I didn't feel it was worth breaking them
  33.    into smaller routines.  Everything related to the actual scene tracing
  34.    IS fully optimized, however.
  35.  
  36. 2. ALL returns of malloc() (system memory allocation request) are checked for
  37.    consistency, so no more silent crashes should occur from lack of memory.
  38.    If any such thing does happen, it is probably related to stack usage.
  39.    Stack size is reduced from 32K to about 12K.  The tracer's actual stack
  40.    usage is quite moderate, since most things are malloc'ed.  Should be ok,
  41.    but if not, read the READ.ME file for more on what to do...
  42.  
  43. 3. RAW, IFF, and GIF Images are checked for a maximum size.  In the IBM/MS-DOS
  44.    version, this limit is 64K pixels.  This translates into just a tad over
  45.    320 x 200, but could be interpreted as 256 x 256 or 200 x 320, so long as
  46.    the total of (rows * colums) is less than or equal to the maximum size.
  47.    For the Amiga and Unix versions this can be unlimited, but is currently
  48.    set at 640x480 and 800x600, respectively.  In actual use you probably will
  49.    want to reduce the input image size, in order to have enough memory to
  50.    allocate more than one image per scene.
  51.  
  52. 4. Various minor things in many functions fixed to keep "LINT" and the pickier
  53.    "C" compilers happy (added typecasts, etc...).
  54.  
  55. 5. This version is compiled under MSC 6.0 rather than Turbo-C 2.0.  I had
  56.    a friend who has this compiler crunch it down for me, and I was amazed!
  57.    It runs 20% or so faster than the Turbo-C version (both using a math
  58.    coprocessor) by my time trials.  MAKEFILE's are included for each, the
  59.    MAKEFILE is for MSC and the MAKEFILE.TC file is for Turbo-C.  Also I
  60.    am using the MS-LINK overlay feature now to share memory on the tokenizer,
  61.    the parser, and the raw/iff/gif image readers.  This should give a bit more
  62.    memory to the tracer to run in.  In theory the overlaying process should
  63.    work for Turbo-C 2.0 as well because it seems to be just the linker that
  64.    performs this, but I haven't tried it yet.  Look at the DKBMSC.LNK file to
  65.    see how to do this.
  66.  
  67. 6. Not a change, but note the utilities are compiled in 8086/No 8087 mode to
  68.    be universal.  If you have an 80286 and/or 80x87 you may want to recompile
  69.    them with the /G...2 and /FPi87 options (286 opcodes, 80x87 inline) for
  70.    MSC (done by selecting the alternate CFLAGS in the MAKEFILE).  For Turbo-C,
  71.    use the -1 -a options (286 opcodes, word alignment) by also selecting the
  72.    alternate CFLAGS.  You will also have to select the alternate (floating
  73.    point library) form of LINKFLAGS in the MAKEFILE if you have an 80x87 and
  74.    are using Turbo-C.
  75.  
  76.  
  77. Version 2.03:
  78.  
  79. 1. IBM Version utility DUMP2RAW adjusted its output file extension based on
  80.    Amiga or IBM being defined.  The wrong one (Amiga) was left uncommented.
  81.    This caused the output files to be named .red, .grn, and .blu.  It was
  82.    intended for the IBM the extensions be .r8, .g8, and .b8, for compatibility
  83.    with PICLAB's "RAW" format.
  84.  
  85. 2. MAX_CONSTANTS raised from 100 to 250.  This should now allow more lengthy
  86.    color definition files to be included regularly in BASICSHA.DAT without
  87.    giving the dreaded "Too many constants" error during parsing.
  88.  
  89. 3. The good 'ol Microsoft Overlay Linker (NEVER buy a M-S product that has
  90.    a version number ending in .00!!) turns out to be what caused a wierd
  91.    problem writing TARGA files at 800x600 resolution.  The problem appeared
  92.    as though horizontal chunks of 20-30 lines were randomly skewed to the
  93.    left and right, and the problem somehow did not affect the DKB/QRT "RAW"
  94.    file output format.  Strange.  Well, anyway the program is no longer
  95.    overlaid, so it will take SLIGHTLY more memory to run.  However, the output
  96.    will be correct.  I have not had any problems running with 550K free RAM.
  97.  
  98.    (Note: Version 2.03 was not generally available for distribution, so don't
  99.    feel bad if you missed it...)
  100.  
  101. Version 2.04:
  102.  
  103. 1. The Microsoft compiler uses signed characters by default.  The Turbo-C
  104.    compiler and the Amiga Lattice compiler both used unsigned chars.  This
  105.    is corrected by using the /J option of MSC which changes the default to
  106.    unsigned chars.  This was causing color shades to be all but ignored when
  107.    using the display (-v +d) options (caused dull looking colors on screen)
  108.    but the trace data output files (.TGA, etc.) were correct.
  109.  
  110. 2. An astute user, Albert Waltner, caught an error in the original FRACTINT
  111.    GIF reader, GIF.C, at line 188, and reported it to me.  It caused the
  112.    'conditional expression is constant' compiler diagnostic.  This was caused
  113.    by comparing an unsigned char to < 0, which you really can't do.  The "C"
  114.    compiler was then converting this impossible condition to "FALSE".  I
  115.    believe I have figured out what the authors were trying to do originally
  116.    (looking for EOF or -1 returned) and have corrected it.
  117.  
  118. 3. The noise() functions we use evaluate the way the compiler deals with float
  119.    numbers, and has differing results based on the type of "C" compiler used.
  120.    This can sometimes cause the noise() functions to generate slightly dif-
  121.    ferent results that prior versions did.  More specifically, sparse clouds
  122.    in BOZO mode, and either uninteresting or crowded marble textures.  You may
  123.    need to play around with the COLOUR_MAP thresholds or TURBULENCE values to
  124.    obtain the best results.  This is neither a compiler nor program bug per
  125.    se, but it explains why some scenes may look different now, and I felt that
  126.    it should be mentioned.
  127.