home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Raytrace & Morphing / SOS-RAYTRACE.ISO / programm / raytrace / rayce27 / history.doc < prev    next >
Encoding:
Text File  |  1994-02-02  |  12.6 KB  |  389 lines

  1. HISTORY.DOC -- Todo, what's new, version history.
  2.  
  3.  
  4. TodoPriorityQueue (sorry, parts are in dutch. I'm too lazy to
  5. translate it)
  6.  
  7. (2.7)    - algebraics?
  8.     - solve lighting conflict + extended spotlights
  9.  
  10. [spd todo]
  11.         - triangles for 3-polyg
  12.     - torus
  13.     - clips -> bounds + clip
  14.  
  15.     - snelle priority queues zonder    zovaak malloc(), snellere
  16.     zoektijd.  (SMH)
  17.     - standard test scenes voor image_map en algebraic, extrusion,
  18.     disc
  19.     - shadow cache with ul depth
  20.     - last ray ID in object bijhouden.
  21.      - speed up raytracer framework to allow REAL RAW speed (such
  22.     as in PoVray, which can do 0.17 ms/ray, versus 0.30ms/ray
  23.     with Rayce on my machine)        
  24.     - attenuation ipv shadowing for non opaque objects
  25.     - Microfacet modellen:
  26.         * Hall
  27.       * Beckmann
  28.       * Reitz
  29.       * Cook Torrance
  30.       * Gauss
  31.           * Blinn
  32.     - trap interrupts while writing disk file
  33.     - camera code rewrite (TK)
  34.       * meer modellen: cylindrisch, bol, architectonisch
  35.       * lens blur
  36.       * PoV compatibiliteit?
  37.     - primitive cone.
  38.         - flat polygons voor extrusion of polygonal object.
  39.     - ray constant caching
  40.     - move clip testing to all_intersections()
  41.     - smarter sampling: use a jittered grid.
  42.     - directonal light.
  43.     - automatische efficiency:
  44.           * BSP
  45.       * hierarchische bounds
  46.       * grid
  47.     - functies als expressies
  48.     - better dox. Use makeinfo or groff?
  49.     - speed in autobounds
  50.     - solid texturing
  51.     - blending of hierarchic textures.
  52.     - texture blending
  53.         - AAflag voor objecten
  54.     - bumps
  55.     - bounding for csg nests
  56.     - Renee T.'s lichtbundels
  57.     - no_shadow, no_reflect, no_refract, no_eye analoog aan PoV's
  58.     no_shadow.
  59.     - aligning, mbv bboxes
  60.     - Heightfield primitive
  61.     - Metaball primitive.
  62.     - backward raytracing
  63.     - slanting
  64.     - diepte output
  65.     - runtime expressies (LvdS)
  66.     - bezier patches
  67.     - Splines for extrusion
  68.     - rotational/scale blur    
  69.     - functies met tijdsinterval
  70.  
  71. v2.7:    - ray.h: PoVcolor zorgt voor betere compatibiliteit.
  72.     - clips en bounds apart.
  73.     - polygons
  74.     - scrapped parallelograms and triangles.  
  75.     - flags voor all_xxx_intersections()
  76.     - multi bounding/clipping shapes.
  77.     - data structuren voor auto-effenciency.
  78.     - algebraic.c: realloc() voor polystack.
  79.     - simpele spotlights.
  80.     - extrusions
  81.     - <float> betekent <float, float, float>
  82.     - cylinders als speciaal geval van extrusions
  83.     - precompute in methods.
  84.     - rays als * doorgeven.
  85.     - primitive-source netter
  86.     - smooth triangles and normal triangles.
  87.     - changed thunk() into assert() calls
  88.     - discs, on special request :)
  89.     - speed up rotations by passing matrix.    
  90.     - use tables for random values.
  91.     - binary search voor tokens.
  92.     - superquadrics/hyperspheres
  93.     - realloc() in precompute_algebraic
  94.     - tellen nou ook in precompute_xxx
  95.     - moved inverse transform in object structure 
  96.     - torus in XZ vlak (ok)
  97.     - shapes.inc: platonische veelvlakken  (SMH)
  98.     - syntax extensie: #declare bla = sphere { .. } object { bla }
  99.     - frompov.doc, over PoV compatibility
  100.     - ongelijkmatige scale<> voor disc en sphere
  101.     - autobounding van primitives.
  102.     - smooth background gradient in every direction
  103.     - merged dqueue and struct intersect
  104.     - betere timer resoluties
  105.     - refr_samples en refl_samples verwijderd
  106.     - Total Internal Reflection (Shawn McHorse)
  107.     - optimize triangle/polygon intersection: projection to 2d
  108.     needs less computation.
  109.     - non convex polygons.
  110.  
  111. BUGFIXES:
  112.     - texture.c: specular with imagemap
  113.     - sphere.c: als |r.dir| <> 1
  114.     - rayparse.y: declared vectors
  115.     - object.c: free_object: enige lekken gedicht.
  116.  
  117. (EN)    - ray.h: color *PoVcolor in texture, better PoV compatibility
  118.     - separated clips and bounds
  119.     - implemented convex polygons
  120.     - scrapped parallelograms and triangles.
  121.     - multiple boundingshapes & clipshapes.
  122.     - some autoefficiency data structures.
  123.     - limited spotlights
  124.     - extrusions
  125.     - syntax extension: <a> means <a,a,a>
  126.     - finite primitive cylinders are a special case of extrusions
  127.     - rays are passed by pointer    
  128.     - smooth triangles
  129.     - added discs
  130.     - speed up parsing: rotations by passing matrix, binary search
  131.     for tokens
  132.     - superquadrics
  133.     - moved inverse transforms to object structure
  134.     - uneven scaling: discs, spheres 
  135.     - pov compatibility documentation
  136.     - Total Internal Reflection (Shawn McHorse)
  137.     - revamped shading routine (Shawn McHorse)
  138.     - DJGCC compile (Shawn McHorse)
  139.     - smooth background gradient in every direction
  140.     - refr_samples and refl_samples taken out of code
  141.     - non convex polygons.
  142.  
  143. Version history.
  144.  
  145. v2.6    (nov 23, 1993) (internet: 10 dec)
  146.  
  147.     - Totaal nieuwe object-datastructuur. Alles is een "object", en
  148.     het is objectgeorienteerd geprogrammeerd, met "methods".
  149.     - Hierarchische texturing voor CSG's en composites.
  150.     - Nieuwe Syntax.
  151.     - mint/maxt voor rays.
  152.     - Inverse mappings.
  153.     - CSG geoptimeerd: nu per CSG nest: 1x intersect per primitieve,
  154.     en MINDER dan 1 inside/outside test (door gebruik van gesloten
  155.     curve-stelling). Quadrics en algebraics kunnen Jordan curves
  156.     zijn door "closed".
  157.     - brilliance. (a la PoV)
  158.     - image maps, voorlopig alleen in TGA
  159.     - stochastische AA. (ok)
  160.     - Shadow cache. (erg simpel)    
  161.     - adaptive tree cutoff (ut)
  162.     - clipping shapes (ok)
  163.     - default texture (ok)
  164.     - betere shadowcache (ok)
  165.     - interpolation (ok)
  166.     - GIF input (ok)
  167.     - Linux port (ok)
  168.     - kleine syntax veranderingen, naar PoV 2.0 toe: komma's
  169.     - expressies.
  170.     - willekeurige algebraische oppervlakken! (En bugggyyyy dat ze
  171.     waren! Maar nu niet meer, hopelijk!)
  172.     - realloc() voor polyinstructies.
  173.     - uniform scale 
  174.     - stats nu in methods.
  175.  
  176.  
  177.     bugfixes from previous releases:
  178.     - shade.c: ldot is nu ook stoch. gesampeld.
  179.     - specular met distributed RT.
  180.     - norm(box normal)
  181.     - box: normal nu genormaliseerd.
  182.     - rayparse.y: triangle/sphere declares.
  183.     - token.c: torus free'en
  184.     - rayparse.y: redecl' van colors
  185.     - shade.c: penumbra lightsources... Specular, Foutje, Bedankt!
  186.     - raymath.c:  STOMME SUKKEL DAT JE BENT!  INVERSE TRANSFORMATIE
  187.     OMGEKEERD VERMENIGVULDIGEN. (so hee, dat was stom! )
  188.     - torus.c: wat een gedonder met die bounding shapes.
  189.     - intersect.c: flip normaal als vorm geinverteerd is.
  190.     - token.c: nested comments
  191.     - token.c: EOF in a comment
  192.     - object.c: copy_object forgot isclip
  193.     - solve.c: suppressed sturm warnings
  194.  
  195.  
  196. (EN)    - Radaballical data structure rewrite. Now object oriented (like
  197.     PoV, yes, again). And it allows hierarchical texturing.
  198.     - shadow testing is done more efficiently: early exit on the
  199.     first blocking object.
  200.     - optimised CSG: now needs less than 1 inside/outside and 1
  201.     intersection test per primitive for a CSG nest.
  202.     - brilliance
  203.     - Image maps, toroidal, spherical, planar, cylindrical.
  204.     - Stochastic Antialiasing.
  205.     - Simple shadow caching.
  206.     - adaptive tree cutoff
  207.     - clipping shapes
  208.     - default texture
  209.     - GIFs
  210.     - interpolation
  211.     - Rayce now runs under linux.
  212.     - Slight syntax change, to conform with pov2
  213.     vector expressions, float expressions.
  214.     - Arbitrary polynomial surfaces. Via "algebraic { x^2+y^2 - 1
  215.     }". Some surfaces don't work correctly.
  216.     - uniform scale (nicked from PoV)
  217.     - stats moved to methods
  218.     
  219.  
  220. v2.5    - look_at en aspect.  Geen PoV compatible camera, omdat ik nou nog
  221.     niet weet hoe die werkt.
  222.     - single frame penumbra, area lightsources. (OK)
  223.     - up -> sky
  224.     - single frame gloss (OK)/translucency
  225.     - driehoekjes waren heel makkelijk: gewoon even gamma += alpha
  226.     aan de parallelogram sources toevoegen.
  227.     - polynoom solver met Cardano, Sturm etc...
  228.     - beter gebruik van de israw bij box: scale en translate niet
  229.     via matrices als dat niet  nodig is.
  230.     - allerlei voorzieningen die CSG voor mij gemakkelijker gaan
  231.     maken.
  232.     - queue.c: depth queues, intersects met een queue.
  233.     - composites hebben nu snelheid.
  234.     - csg.c: Constructive solid Geometry (klinkt dat niet even mooi? laat
  235.     ik het nog eens zeggen: Constructive Solid Geometry!!!)
  236.     - Die CSG heeft bovendien allerlei gemene bugs gevonden!
  237.     - Quartics uit graphics gems.
  238.     - Torus primitieve uit Graphics Gems.^U2^[^H, zelf gecoded, want
  239.     problemen met scale <>.
  240.     - transform_normal().
  241.     - minimum intersect tolerance instelbaar.
  242.  
  243.     BUGFIXES:
  244.     - FoV bug gerepareerd (OK)
  245.     - bugfixje met bewegende objecten (normaal werd adhv verkeerd
  246.     punt berekend.
  247.     - rayparse.y:  (quadrics en copy_plane) ik hoop dat niemand het
  248.     heeft gezien (schaam)
  249.     - oepps copy_composite().... foutje .... (en deze hebben ze wel
  250.     gezien :-( )
  251.  
  252. (EN)    - look_at and aspect for the camera. No PoV compatible camera
  253.     yet...
  254.     - single frame penumbra
  255.     - up is now sky
  256.     - Some serious bugfixes: fov now really works, reading quadrics,
  257.     composites should work, motion blurred boxes.
  258.     - triangles
  259.     - polynomial eqs, thanks to Vort by David G Hook, Bernie Kirby
  260.     - depth queues. (anybody out there who knows what a priority
  261.     queue REALLY is?)
  262.     - a lot of bugfixes.
  263.     - Constructive Solid Geometry!!!!!  YESSS!  it works!  Even
  264.     mathematically more consistent than PoV's
  265.     - cubic/quartic/sturm solver from Vort and Graphics Gems
  266.     - a torus primitive, CSG-able
  267.     - box and torus now use transpose of inverse for normal
  268.     transformation.
  269.     - tolerance for minimum intersection distance.
  270.  
  271. v2.4:
  272.     - parall.c, eva: square heet nu parallelogram
  273.     - composites, als in pov
  274.     - bounding shapes, als in pov
  275.     - composit.c, parse.c, intersec.c, object.c, eva: door invoeren
  276.     composites nu veel recursieve structuren, en dito functies.
  277.     - raymath.c: meer matrix routines.
  278.     - box.c toegevoegd; boxes!
  279.     - intersect.c: intersect_xxx() in xxx.c
  280.     - debug.c: print_xxx() in xxx.c
  281.     - uitgebreidere debug vlaggen.
  282.     - een Bison parser. Nou moet ik (c) aan GPL aanpassen
  283.     - rayce is GPL-ware
  284.     - een aparte nederlandse rayce_ne.doc ga ik niet bijhouden; wel
  285.     een aparte nederlandse history, omdat ik me hier wat vrijer kan
  286.     uiten. Jawel... De amerikanen die dit lezen zullen het toch niet
  287.     snappen :-).  En ik kan het nu maken om in de dox te zeggen het
  288.     is een "pain in the reet" <grijns>
  289.     - rays worden nu in een schijf, niet in een vierkant gesampelt.
  290.  
  291. (EN)    - implemented composites; this needs recursive datastructures,
  292.     and recursive functions
  293.     - boundings shapes
  294.     - more matrix routines
  295.     - box{}es!
  296.     - parser now in YACC.. (actually Bison) (finally) (will have to
  297.     do something about legalese...)
  298.     - debug options: 1 = tok'izer, 2 = parser (YYDEBUG), 4 = memory
  299.     (coreleft()) 8 = print interior
  300.  
  301.     all the legal mumbo jumbo.
  302. v2.3:
  303.     - parse.c, shade.c, intersec.c, lights.c: multi lightsources,
  304.     lightsources zijn nu object {} 's
  305.     - shade.c, parse.c: in overeenkomst met pov: width -> 1/roughness.
  306.     - parse.c: declares nu met linked list. Netzoveel declares als in je
  307.     geheugen passen. Na inlezen file: free()
  308.     - parse.c, object.c, intersec.c, shade.c: objects nu in linked
  309.     list, netzoveel objects als er in het geheugen passen
  310.     - token.c: includes in een linked list: netzoveel includes als
  311.     het geheugen aankan
  312.     - sphere.c: snelheids verbetering: shortcut als we van de sphere
  313.     af kijken.
  314.     - square.c: nu mijn eigen intersectie routines met
  315.     van te voren berekende constanten.
  316.     - parse.c: light_sources te declaren.
  317.     - free_xxx routines: nu is alles netjes te alloc'en en free'en.
  318.     - mooiere statistieken a la PoV
  319.     - andere shape data structuur
  320.     - inline vector operaties, wat een geploeter.
  321.     - licht met falloff: 1, 1/r, 1/r^2, en andere exponenten.
  322.  
  323.     - shade.c: schaduwstralen moeten v\'o\'or de lichtbron worden
  324.     geblokkeerd, anders geen schaduw
  325.     - sphere.c: FOEI george, een bol is x^2+y^2+z^2 = r^2 <- let op
  326.     de ^2!
  327.     
  328.  
  329. (EN)    - shadows only if rays are blocked before lightsource
  330.     - multiple lightsources
  331.     - roughness (= 1/width)
  332.     - includes, declarations and objects in linked list. No more
  333.     MAX_xxx limits.
  334.     - new parallelogram intersection routines: faster and better
  335.     documented
  336.     - lights with falloff
  337.     - inline vector operations
  338.     - better statistics
  339.     - implemented free_xxx routines.
  340.  
  341. v2.2:
  342.     - splitsing van files: quadric.c, sphere.c, square.c, plane.c,
  343.     texture.c, object.c.
  344.     - vector.c nu in raymath.c
  345.     - raymath.c: matrix routines
  346.     - translate (getest: sphere, quadric, plane)
  347.     - scale (getest: sphere, quadric, plane)
  348.     - rotate (getest: sphere, quadric,plane)
  349.     - trace.c, devdep.c: signal troep in devdep.c
  350.     - background kleur instelbaar.
  351.     - intersection.c, ea: intersect_xxx geeft nu een waarde voor de
  352.     parameter t.
  353.     - token.c: includes
  354.  
  355.     - bug: stacksize!!
  356.  
  357. (EN)    - sources: each class of routines has a files
  358.     - matrix and vector routines in raymath.c
  359.     - translate, scale, rotate
  360.     - user settable background color
  361.     - includes
  362.  
  363. 2.1:
  364.     - trace.c: TGA output
  365.     - trace.c: continue (-c)
  366.     - parse.c/token.c: PoV achtige parser/tokenizer
  367.     - proto.h: ANSI prototypes
  368.     - ray.h: datastructuren "verbeterd".
  369.     - devdep.c, trace.c: keyboard exit (-x)
  370.     - intersect.c: quadrics.
  371.     - intersect.c: motion in de rays
  372.     - intersect.c: normalen en snijdingen apart berekenen.
  373.     - parse.c: declares
  374.     - mem.c: mem.c verwijderd.
  375.     - raycache verwijderd
  376.  
  377. (EN)    - TGA output
  378.     - continue option
  379.     - PoV style language
  380.     - ANSI function prototypes
  381.     - better datastructures
  382.     - keyboard exit
  383.     - quadrics
  384.     - motion now in rays, not in object
  385.     - normals and intersections calculated separately
  386.     - declarations in input
  387.  
  388.  
  389.