Beebug1st October 1985
Published in Beebug #35
Glentop's 3D Graphic System
Geoff Bains takes a look at a new versatile graphics development system that promises to get more from your Beeb's screen than you ever thought possible
There are many graphics systems on the market for the BBC Micro. These will allow you to create pictures of varying complexity on your Beeb's screen and display them. What all these packages lack, however, is any real application for the resulting pictures. All you can do is to save them to cassette or disc and load them in again at a later date.
The Graphics Development System from Glentop Publishers, however, is a different story. This unique package allows you to create wireframe representations of 3D objects on the screen, manipulate them in a variety of ways and then to use the resulting images in Basic or assembler programs to produce some stunning animated images.
The graphics creation programs are a little different from many on the market. This package is exclusively concerned with wireframe models. There is no block filling, shading, or even much in the way of colour. The models are defined as a series of three-dimensional co-ordinates, representing each point of the wireframe, entered into an editor. As well as the co-ordinates each point is also defined as a draw or move operation with the colour and type (solid or dotted) of line used.
The data tables produced by the editor can be saved onto disc and reloaded for further editing. Unfortunately there is no option to insert extra points into the middle of a data table; these can only go onto the end. This does mean that alterations can take up unnecessary extra table entries.
Once an object's data is entered it can be viewed on the screen. The program displays a perspective projection of the wireframe and allows you to alter the viewpoint and perspective, and to perform rotations, scalings, and translations in three dimensions. The various parameters are displayed alongside the image and are altered using the cursor keys.
That's all very well but it doesn't go very much further than the 3D rotation program in Beebug Vol. 1 No. 10. However, the Graphics Development System doesn't stop there. Shapes can be rotated about any of the three axes to form surfaces. The program to do this is very versatile, allowing either the lines parallel or perpendicular to the axis of rotation only to be created, or both, and the angle through which the rotation is performed and the step size to be altered at will. The creation of such 'profiles' is, like all the operations in the Graphics Development System, extremely fast.
Any wireframe model can be used as a 'macro' and stretched, translated, rotated, enlarged in different ways with each result saved. All these new models can be then linked together to form a new creation. In this way, complex models can be built up with the minimum of data entry. The interlocking rings shown here, for example, were created by manipulating a simple diamond shape (five data entries only!). This was turned about one axis to give a profile and the resulting ring used as a macro. This was translated and rotated to form the two rings which were then linked together to form the whole picture.
The only limit to this model creation is the Beeb's memory. The Graphics Development System operates perfectly, however, so larger models are available with this connected. The package also has a disc and printer dump option allowing you to save your masterpieces in a more immediate form.
The model-creation section of the Graphics Development System is very effective but it is somewhat eclipsed by the other half of the package - the programs to help you make some use of the models you have created. These consist of two types. Firstly there are the machine code routines that can operate on the data that represents the 3D co-ordinates of an object. These are all bundled together in one group in a variety of formats for use with different systems - cassette, disc, or second processor - and in different memory positions.
To access these routines there is provided the beginnings of a Basic program with procedures already defined to access the machine code. To display the image of an object then you just load the machine code, load the data, and run the Basic program suitable amended to include calls to the procedures required (PROCgcol, PROCtrans, PROCrot, PROCproject, etc.)
Objects can be animated in this way and several demonstrations of this are provided on the disc. However, better animation can be achieved by resorting to assembler to access the 3D routines rather than Basic. This again is fairly simple as it is really just a case of calling up the routines when needed. However, really fast animation can be achieved by using another feature of the Graphics Development System.
The Beeb's OS can plot lines on the screen at the rate of about 9,000 pixels per second. The Graphics Development System contains its own line drawing routines that will draw at a rate of 30,000 pixels a second. Although it has some restrictions (pixel co-ordinates, GCOL0 type plotting only, no windows or redefinable origin, and it will not work with second processor) the speed difference can be staggering. A marvellous Elite-type space craft performs a complex turning manoeuvre without a suggestion of flicker in one of the demonstrations. (We have included this demo on this month's magazine cassette/disc so you can see the effect to the full).
All this takes some getting to grips with. The manual is adequate but better tutorials could be given. However, if you are looking for a package that will really take your Beeb to the limits of graphics and animation for a reasonable price, then the Graphics Development System delivers the goods.