home *** CD-ROM | disk | FTP | other *** search
- HISTORY.DOC -- Todo, what's new, version history.
-
-
- TodoPriorityQueue (sorry, parts are in dutch. I'm too lazy to
- translate it)
-
- (2.7) - algebraics?
- - solve lighting conflict + extended spotlights
-
- [spd todo]
- - triangles for 3-polyg
- - torus
- - clips -> bounds + clip
-
- - snelle priority queues zonder zovaak malloc(), snellere
- zoektijd. (SMH)
- - standard test scenes voor image_map en algebraic, extrusion,
- disc
- - shadow cache with ul depth
- - last ray ID in object bijhouden.
- - speed up raytracer framework to allow REAL RAW speed (such
- as in PoVray, which can do 0.17 ms/ray, versus 0.30ms/ray
- with Rayce on my machine)
- - attenuation ipv shadowing for non opaque objects
- - Microfacet modellen:
- * Hall
- * Beckmann
- * Reitz
- * Cook Torrance
- * Gauss
- * Blinn
- - trap interrupts while writing disk file
- - camera code rewrite (TK)
- * meer modellen: cylindrisch, bol, architectonisch
- * lens blur
- * PoV compatibiliteit?
- - primitive cone.
- - flat polygons voor extrusion of polygonal object.
- - ray constant caching
- - move clip testing to all_intersections()
- - smarter sampling: use a jittered grid.
- - directonal light.
- - automatische efficiency:
- * BSP
- * hierarchische bounds
- * grid
- - functies als expressies
- - better dox. Use makeinfo or groff?
- - speed in autobounds
- - solid texturing
- - blending of hierarchic textures.
- - texture blending
- - AAflag voor objecten
- - bumps
- - bounding for csg nests
- - Renee T.'s lichtbundels
- - no_shadow, no_reflect, no_refract, no_eye analoog aan PoV's
- no_shadow.
- - aligning, mbv bboxes
- - Heightfield primitive
- - Metaball primitive.
- - backward raytracing
- - slanting
- - diepte output
- - runtime expressies (LvdS)
- - bezier patches
- - Splines for extrusion
- - rotational/scale blur
- - functies met tijdsinterval
-
- v2.7: - ray.h: PoVcolor zorgt voor betere compatibiliteit.
- - clips en bounds apart.
- - polygons
- - scrapped parallelograms and triangles.
- - flags voor all_xxx_intersections()
- - multi bounding/clipping shapes.
- - data structuren voor auto-effenciency.
- - algebraic.c: realloc() voor polystack.
- - simpele spotlights.
- - extrusions
- - <float> betekent <float, float, float>
- - cylinders als speciaal geval van extrusions
- - precompute in methods.
- - rays als * doorgeven.
- - primitive-source netter
- - smooth triangles and normal triangles.
- - changed thunk() into assert() calls
- - discs, on special request :)
- - speed up rotations by passing matrix.
- - use tables for random values.
- - binary search voor tokens.
- - superquadrics/hyperspheres
- - realloc() in precompute_algebraic
- - tellen nou ook in precompute_xxx
- - moved inverse transform in object structure
- - torus in XZ vlak (ok)
- - shapes.inc: platonische veelvlakken (SMH)
- - syntax extensie: #declare bla = sphere { .. } object { bla }
- - frompov.doc, over PoV compatibility
- - ongelijkmatige scale<> voor disc en sphere
- - autobounding van primitives.
- - smooth background gradient in every direction
- - merged dqueue and struct intersect
- - betere timer resoluties
- - refr_samples en refl_samples verwijderd
- - Total Internal Reflection (Shawn McHorse)
- - optimize triangle/polygon intersection: projection to 2d
- needs less computation.
- - non convex polygons.
-
- BUGFIXES:
- - texture.c: specular with imagemap
- - sphere.c: als |r.dir| <> 1
- - rayparse.y: declared vectors
- - object.c: free_object: enige lekken gedicht.
-
- (EN) - ray.h: color *PoVcolor in texture, better PoV compatibility
- - separated clips and bounds
- - implemented convex polygons
- - scrapped parallelograms and triangles.
- - multiple boundingshapes & clipshapes.
- - some autoefficiency data structures.
- - limited spotlights
- - extrusions
- - syntax extension: <a> means <a,a,a>
- - finite primitive cylinders are a special case of extrusions
- - rays are passed by pointer
- - smooth triangles
- - added discs
- - speed up parsing: rotations by passing matrix, binary search
- for tokens
- - superquadrics
- - moved inverse transforms to object structure
- - uneven scaling: discs, spheres
- - pov compatibility documentation
- - Total Internal Reflection (Shawn McHorse)
- - revamped shading routine (Shawn McHorse)
- - DJGCC compile (Shawn McHorse)
- - smooth background gradient in every direction
- - refr_samples and refl_samples taken out of code
- - non convex polygons.
-
- Version history.
-
- v2.6 (nov 23, 1993) (internet: 10 dec)
-
- - Totaal nieuwe object-datastructuur. Alles is een "object", en
- het is objectgeorienteerd geprogrammeerd, met "methods".
- - Hierarchische texturing voor CSG's en composites.
- - Nieuwe Syntax.
- - mint/maxt voor rays.
- - Inverse mappings.
- - CSG geoptimeerd: nu per CSG nest: 1x intersect per primitieve,
- en MINDER dan 1 inside/outside test (door gebruik van gesloten
- curve-stelling). Quadrics en algebraics kunnen Jordan curves
- zijn door "closed".
- - brilliance. (a la PoV)
- - image maps, voorlopig alleen in TGA
- - stochastische AA. (ok)
- - Shadow cache. (erg simpel)
- - adaptive tree cutoff (ut)
- - clipping shapes (ok)
- - default texture (ok)
- - betere shadowcache (ok)
- - interpolation (ok)
- - GIF input (ok)
- - Linux port (ok)
- - kleine syntax veranderingen, naar PoV 2.0 toe: komma's
- - expressies.
- - willekeurige algebraische oppervlakken! (En bugggyyyy dat ze
- waren! Maar nu niet meer, hopelijk!)
- - realloc() voor polyinstructies.
- - uniform scale
- - stats nu in methods.
-
-
- bugfixes from previous releases:
- - shade.c: ldot is nu ook stoch. gesampeld.
- - specular met distributed RT.
- - norm(box normal)
- - box: normal nu genormaliseerd.
- - rayparse.y: triangle/sphere declares.
- - token.c: torus free'en
- - rayparse.y: redecl' van colors
- - shade.c: penumbra lightsources... Specular, Foutje, Bedankt!
- - raymath.c: STOMME SUKKEL DAT JE BENT! INVERSE TRANSFORMATIE
- OMGEKEERD VERMENIGVULDIGEN. (so hee, dat was stom! )
- - torus.c: wat een gedonder met die bounding shapes.
- - intersect.c: flip normaal als vorm geinverteerd is.
- - token.c: nested comments
- - token.c: EOF in a comment
- - object.c: copy_object forgot isclip
- - solve.c: suppressed sturm warnings
-
-
- (EN) - Radaballical data structure rewrite. Now object oriented (like
- PoV, yes, again). And it allows hierarchical texturing.
- - shadow testing is done more efficiently: early exit on the
- first blocking object.
- - optimised CSG: now needs less than 1 inside/outside and 1
- intersection test per primitive for a CSG nest.
- - brilliance
- - Image maps, toroidal, spherical, planar, cylindrical.
- - Stochastic Antialiasing.
- - Simple shadow caching.
- - adaptive tree cutoff
- - clipping shapes
- - default texture
- - GIFs
- - interpolation
- - Rayce now runs under linux.
- - Slight syntax change, to conform with pov2
- vector expressions, float expressions.
- - Arbitrary polynomial surfaces. Via "algebraic { x^2+y^2 - 1
- }". Some surfaces don't work correctly.
- - uniform scale (nicked from PoV)
- - stats moved to methods
-
-
- v2.5 - look_at en aspect. Geen PoV compatible camera, omdat ik nou nog
- niet weet hoe die werkt.
- - single frame penumbra, area lightsources. (OK)
- - up -> sky
- - single frame gloss (OK)/translucency
- - driehoekjes waren heel makkelijk: gewoon even gamma += alpha
- aan de parallelogram sources toevoegen.
- - polynoom solver met Cardano, Sturm etc...
- - beter gebruik van de israw bij box: scale en translate niet
- via matrices als dat niet nodig is.
- - allerlei voorzieningen die CSG voor mij gemakkelijker gaan
- maken.
- - queue.c: depth queues, intersects met een queue.
- - composites hebben nu snelheid.
- - csg.c: Constructive solid Geometry (klinkt dat niet even mooi? laat
- ik het nog eens zeggen: Constructive Solid Geometry!!!)
- - Die CSG heeft bovendien allerlei gemene bugs gevonden!
- - Quartics uit graphics gems.
- - Torus primitieve uit Graphics Gems.^U2^[^H, zelf gecoded, want
- problemen met scale <>.
- - transform_normal().
- - minimum intersect tolerance instelbaar.
-
- BUGFIXES:
- - FoV bug gerepareerd (OK)
- - bugfixje met bewegende objecten (normaal werd adhv verkeerd
- punt berekend.
- - rayparse.y: (quadrics en copy_plane) ik hoop dat niemand het
- heeft gezien (schaam)
- - oepps copy_composite().... foutje .... (en deze hebben ze wel
- gezien :-( )
-
- (EN) - look_at and aspect for the camera. No PoV compatible camera
- yet...
- - single frame penumbra
- - up is now sky
- - Some serious bugfixes: fov now really works, reading quadrics,
- composites should work, motion blurred boxes.
- - triangles
- - polynomial eqs, thanks to Vort by David G Hook, Bernie Kirby
- - depth queues. (anybody out there who knows what a priority
- queue REALLY is?)
- - a lot of bugfixes.
- - Constructive Solid Geometry!!!!! YESSS! it works! Even
- mathematically more consistent than PoV's
- - cubic/quartic/sturm solver from Vort and Graphics Gems
- - a torus primitive, CSG-able
- - box and torus now use transpose of inverse for normal
- transformation.
- - tolerance for minimum intersection distance.
-
- v2.4:
- - parall.c, eva: square heet nu parallelogram
- - composites, als in pov
- - bounding shapes, als in pov
- - composit.c, parse.c, intersec.c, object.c, eva: door invoeren
- composites nu veel recursieve structuren, en dito functies.
- - raymath.c: meer matrix routines.
- - box.c toegevoegd; boxes!
- - intersect.c: intersect_xxx() in xxx.c
- - debug.c: print_xxx() in xxx.c
- - uitgebreidere debug vlaggen.
- - een Bison parser. Nou moet ik (c) aan GPL aanpassen
- - rayce is GPL-ware
- - een aparte nederlandse rayce_ne.doc ga ik niet bijhouden; wel
- een aparte nederlandse history, omdat ik me hier wat vrijer kan
- uiten. Jawel... De amerikanen die dit lezen zullen het toch niet
- snappen :-). En ik kan het nu maken om in de dox te zeggen het
- is een "pain in the reet" <grijns>
- - rays worden nu in een schijf, niet in een vierkant gesampelt.
-
- (EN) - implemented composites; this needs recursive datastructures,
- and recursive functions
- - boundings shapes
- - more matrix routines
- - box{}es!
- - parser now in YACC.. (actually Bison) (finally) (will have to
- do something about legalese...)
- - debug options: 1 = tok'izer, 2 = parser (YYDEBUG), 4 = memory
- (coreleft()) 8 = print interior
-
- all the legal mumbo jumbo.
- v2.3:
- - parse.c, shade.c, intersec.c, lights.c: multi lightsources,
- lightsources zijn nu object {} 's
- - shade.c, parse.c: in overeenkomst met pov: width -> 1/roughness.
- - parse.c: declares nu met linked list. Netzoveel declares als in je
- geheugen passen. Na inlezen file: free()
- - parse.c, object.c, intersec.c, shade.c: objects nu in linked
- list, netzoveel objects als er in het geheugen passen
- - token.c: includes in een linked list: netzoveel includes als
- het geheugen aankan
- - sphere.c: snelheids verbetering: shortcut als we van de sphere
- af kijken.
- - square.c: nu mijn eigen intersectie routines met
- van te voren berekende constanten.
- - parse.c: light_sources te declaren.
- - free_xxx routines: nu is alles netjes te alloc'en en free'en.
- - mooiere statistieken a la PoV
- - andere shape data structuur
- - inline vector operaties, wat een geploeter.
- - licht met falloff: 1, 1/r, 1/r^2, en andere exponenten.
-
- - shade.c: schaduwstralen moeten v\'o\'or de lichtbron worden
- geblokkeerd, anders geen schaduw
- - sphere.c: FOEI george, een bol is x^2+y^2+z^2 = r^2 <- let op
- de ^2!
-
-
- (EN) - shadows only if rays are blocked before lightsource
- - multiple lightsources
- - roughness (= 1/width)
- - includes, declarations and objects in linked list. No more
- MAX_xxx limits.
- - new parallelogram intersection routines: faster and better
- documented
- - lights with falloff
- - inline vector operations
- - better statistics
- - implemented free_xxx routines.
-
- v2.2:
- - splitsing van files: quadric.c, sphere.c, square.c, plane.c,
- texture.c, object.c.
- - vector.c nu in raymath.c
- - raymath.c: matrix routines
- - translate (getest: sphere, quadric, plane)
- - scale (getest: sphere, quadric, plane)
- - rotate (getest: sphere, quadric,plane)
- - trace.c, devdep.c: signal troep in devdep.c
- - background kleur instelbaar.
- - intersection.c, ea: intersect_xxx geeft nu een waarde voor de
- parameter t.
- - token.c: includes
-
- - bug: stacksize!!
-
- (EN) - sources: each class of routines has a files
- - matrix and vector routines in raymath.c
- - translate, scale, rotate
- - user settable background color
- - includes
-
- 2.1:
- - trace.c: TGA output
- - trace.c: continue (-c)
- - parse.c/token.c: PoV achtige parser/tokenizer
- - proto.h: ANSI prototypes
- - ray.h: datastructuren "verbeterd".
- - devdep.c, trace.c: keyboard exit (-x)
- - intersect.c: quadrics.
- - intersect.c: motion in de rays
- - intersect.c: normalen en snijdingen apart berekenen.
- - parse.c: declares
- - mem.c: mem.c verwijderd.
- - raycache verwijderd
-
- (EN) - TGA output
- - continue option
- - PoV style language
- - ANSI function prototypes
- - better datastructures
- - keyboard exit
- - quadrics
- - motion now in rays, not in object
- - normals and intersections calculated separately
- - declarations in input
-
-
-