The Various Coordinate Systems:
This is valid in some form for all rendering environments.
Master Space, Model Space, Symbol Space:
Used to define hand-designed or procedurally-generated (master) objects or "symbols".
There may be a hierachy of such model spaces,
but at the lowest level (at the "leaves"), the geometry is "flat" (non-hiererchical).
World Space, Scene Space:
Used to composite the overall scene.
Hierarchy of (instantiated, transformed) groups and objects.
(Watch out in what sequence the transformations are applied !)
Rendering Space, Eye Space, Camera Space:
Defines from where we want to view the scene, and what lies outside the viewing angle.
We form a new coordinate system with its origin in the eye (or in the camera lens),
and with its z-axis in the looking direction; we also form an "up" direction for the display.
The projection screen (retina, film) is perpendicular to that direction, and lies at some distance;
it contains a rectangle (the "window") that defines what part of the overall scene will be rendered.
From the eye we do a point projection ( perspective projection )onto the screen;
alternatively, we can do a parallel projection from the direction of the eye.
In either case, we may clip away stuff that is too close or too far away.
This is the 2D space of the projection screen.
Often the scene hierarchy has been lost; it is now just a flat set of lines, polygons, etc.
The drawing primitives may have been (re-)arranged into (display) segments;
these may be grouped for similar treatment (color, transparency, visibility, spatial location).
This set may then be clipped by the "window" (rectangular area in the projection plane).
Normalized Device Coordinates:
Fit everything into a unit square for easy manipulation and mapping onto the screen
or into rectangular viewports (= `window' to the laymen) on the screen.
This is achieved through a simple coordinate transformation of all elements inside the "window."
This gives us device independence !
Pixels or x,y addresses of the actual display device.
Dots, lines, filled areas, etc ... are expressed typically in integers > 0.
Y-axis may be upside down (counting pixel rows downward).
Much more on all this in the next couple of weeks ...
and Boolean set operations:
Sausage = bent cylinder plus spherical end-caps.
Show 2D composite.
and winged-edge data structure:
Tessallate surface; describe polygons via vertices, edges.
Use a program to generate the sausage: Sweep a circle through space along a curve.
Start small for front-cap, keep constant through main part of sausage, taper down to zero for end cap.
("Procedural Generation of Parameterized Parts" preferable to: "Primitive Instancing" )
Ways to build complicated scenes in an organized manner.
This is a general principle that can combine parts made with any of the above methods.
Reuse such parts several time by making (possibly transformed) copies of them.
(more on that later)
Skim: 2ndEd: Ch 4, Ch 8, Ch 11.1,
Skim: 3rdEd: Ch 4, Ch 9, Ch 11.1,