Contents
Previous chapter Next chapter
Evaluation
When complete, there are a number of ways that my system
could be objectively evaluated:
-
Measure the number of polygons plotted per second. This is
a very widely cited benchmark, though how meaningful it is
in real terms is doubtful.
-
Can programs that use OpenGL be ported from other
platforms relatively easily? It should at least be possible
to compile and run simple graphics demos written in C.
-
Is my library generally faster than the RISC OS port of
Mesa? This could be assessed in timed tests.
-
Do fellow programmers consider the balance between speed
and sophistication of rendering to be reasonable? (I would
need to solicit opinions on this matter.)
-
Can my library be used from BASIC? Ideally novice
programmers should, with the aid of a tutorial, be able
learn OpenGL and write 'toy' graphics demos.
However, at the current stage of development (e.g. about half
way through), none of the above points are really
appropriate.
In terms of the tools that I created for my own evaluation
and debugging purposes during development, we have the
following:
-
A test harness that allows access to SWI routines and other
module facilities (assuming that the module is statically
linked) through APCS function definitions that can be
safely called from test programs written in C.
-
A moving starfield demo, with depth-shaded particles moving
at different velocities towards or away from the projection
reference point, to test perspective projection and
handling of very large numbers of primitives.
-
A test program that plots a number of
triangles/points/lines at random positions and depths,
defining those vertices further away in darker colours, and
those closer to the viewer in brighter colours. This
allowed many bugs in the painter's algorithm implementation
to be picked up by eye.
-
A test program that plots a single primitive of the type to
be tested, whilst allowing the vertices to moved around by
keyboard controls, and the vertex colours to be changed
also. This allowed many bugs in the basic primitive
rendering routines to be picked up by eye.
Contents
Previous chapter Next chapter