home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
graphics
/
virt3d_1
/
!Virtual3D
/
details
< prev
Wrap
Text File
|
1995-04-23
|
5KB
|
142 lines
Now let's get technical..
!Virtual3D main features are:
- An optimal polygon plotroutine which is faster than any other routine
currently found on the Archimedes.
It's maximum speed is not very impressive (11.4 MPixels/s on 8-Mhz ARM2,
23.0 MPixels/s on 25-Mhz A5000), because it it optimized for plotting
a large number of very small polygons. More than 50 percent of all
polygons is smaller than 32 by 32 pixels!
On an ARM2 it is about 15-20 times faster than the standard OS trianglefill
routine.
At this moment we are developing a new version of it, with 16-bit OS-class
clipping.
- An optimal polygon sorting algorithm which sorts polygons faster and
mathematically correct (in contrast to all other sorting routines).
Most 3D programs spend a lot of time sorting the polygons in their
correct order. We have never seen a program that does this correctly.
We first sort the polygons of every object in the world seperately,
and then combine these polygons to get a scene.
We have currently implemented two Visible Surface Determination algorithms,
one of which takes optimal O(N) time to sort N polygons (as opposed to
at least O (N log N) time for Quicksort or O (N * N) time for Depthsort), and
one which takes NO (no!) time at all! Unfortunately, not all objects can be
sorted with the last method:
in our example-world only 5 of the 37 different objects couldn't.
Of course this sorting is only mathematically correct for every single object
in the world. Only when two objects collide, an additional sorting step is
needed. We will include it in the near future.
- Smart object rotation to reduce the number of points to be rotated.
Mostly there are only a few different objects in a world, so the same objects
are placed at many positions in the world. When a scene contains two or more
objects of the same type (eg. a wood) we don't retransform these objects
multiple times. We have also numerous other point-rotation optimizations in
the pipeline, so we don't need machinecode for rotation for a while...
- Simple but powerful object animation.
Objects can rotate, change shape, and translate. There is no collision
detection.
- Large and very dense worlds are possible.
There is virtually no limit to the size of the world. The number of polygons
in a scene should not be more than about 200, otherwise the framerate will
be too low on an ARM2.
- Very high framerate (with an ARM3, it is so fast that sometimes more than
100 frames per second are generated!).
Because of the fast algorithms used, the number of polygons in a scene and the
framerate can be very high compared to other 3D programs (we won't mention
any names... ( not even 4D)) Even the screen resolution can be higher in future.
- Programmed in high level C.
Yes, 95% of the code is still C. We intend to write some more machinecode
(eg. rotation can be made 3 times faster), but at this moment the polygon
plotroutine is the most time-consuming routine (about 30% of the processor
time) and should be improved.
At this moment the demo also runs on UNIX/X-Windows, but will on any
computer which can draw polygons.
Our plans for the future:
- a 2D graphics library, including polygon, line, and rectangle drawing
(with optional gouraud shading or texturing), much faster than anything around
- a 3D graphics library, including transformation and sorting of objects
in a world from any viewpoint at any resolution
- an animation library for animating objects in the world (and objects within
objects) with models for generic cars, planes, and so on, with collision
detection
- an intelligence module which controls the cars, planes by giving simple
commands to an object, so objects can interact with each other
- an object editor (for drawing new objects)
- a world editor (for making new worlds, and animations)
Thanks...
- House with chimney, guard, army depot and radar stations 'borrowed' from PC
(y..k!) Flight Sim Toolkit (it's really bad on the PC!) by Simis
- World and objects created using Archimedes Flight Sim Toolkit by Simis
- The world is built using Simis World tool, which means that objects can be
positioned to an accuracy of 1.6 m (!). This is the reason for the strange
gaps in the road.
And again...
This software is freeware, © 1994, 1995 Mattijs van Delden & Wilco Dijkstra.
(this means : keep your hands off!)
You may distribute this software freely, provided that it contains all the files
in the list below:
!Boot
!Run
!Sprites
a
b
c
d
!RunImage
!Help
Details
and that they remain unaltered! If you cannot guarantee not to use !Dissi or
something else, please erase this program now! We know where you live!
Try making something better instead of wasting your cheap time.
If you are interested in 3D stuff or you just want to tell us how lovely you
think the program is (a cheque saves you the trouble of writing to us) contact us.
We intend to keep developing the program and we could use people that can for example
- write WIMP-editors for Objects and World
- Know about modelling planes, cars, maybe even bees (?..)
- program brilliantly
- design 3D objects and worlds
- Have ideas for 3D games, but not the programming skills (yes, you 90% of UK)
You can contact us on:
csg215@cs.rug.nl or csg216@cs.rug.nl
Wilco Dijkstra / Mattijs van Delden
Kombuis 28
9732 GB Groningen
Netherlands