// parser lexer | evaluator forth simple (first define the type !!) | generator ppm

--
try incorpore the ray tracer notion in directly is hard !!
better to separate GML from ray tracing, then incorpore when ray tracing work
try do ray tracer independantly of GML
 define object sphere/.... with color ... with light ...
then mix the 2


subdivide in manageable task (and test incrementally)
 without illumination, just ray casting with plane (need intersection calculus)
  and no surface fonction (always same color/params) (* fix Ia kd ks n *)
 then with pointlight (just Lj component, and without shadow calculus)
 incorpore in GML
 union
 height (ratio)
 fix pb of img dans raytrace.ml : pb sphere, other side not shadowed;shadow ray
 do specular reflection (just Lj component, but with shadow ray this time)
 pb directionnal light

DO calculuate vector sortant specular et sortant vers other obj
DO translation/rotation/... (rotation is simple map_cons... or must
  take point de gravite et faire rotation auteur de ca ?)
 use matrix, each time transform the ray by this matrix => 
 need a matrix per obj (and do inverse mapping)
DO procedural texturing
DO pb shpere if inside ??
DO light contribution of obj and specular
tier1 finished here 

 then with more complex object, with more complex light (tier2)
 then with more complex aggregate of object (intersection/..) (tier3)

difficulty = geometry 3d !!

--
spheres.gml/fib.gml = tier1