[comp.graphics] Real-time graphics via computer - custom hardware?

karl@ddsw1.MCS.COM (Karl Denninger) (12/08/90)

Consider the following problem:

I would like to build a graphics display which can display high-res color
images from a computer-generated list of objects (ie: the screen has xxx
objects, here are their coordinates, and apparent sizes) in real-time.  To
me, real-time means something better than 10-15 frames per second; 30 would
be ideal, I'll settle for 10-15.  I'm willing to pipe in the coordinates via
some kind of shared-memory scheme, direct DMA, or whatever.

Resolution requirements are fairly high; perhaps as high as 1280x1024 in 256
colors (yes, I know this is getting to be a tall order!)  I'll settle for
PC-VGA resolution (it really isn't bad; 640x480x256 colors).  Display will
be a 27" color tube.

I'm willing to build custom hardware if needed.  My >preference< is to buy
something off the shelf, but I don't want 30 MIPS of general-purpose
computer on this one; what I'm actually looking for here is a board or
chipset which can take as input a list of object indices, position vectors
(x, y, z with "z" being distance away) and render them in realtime.
Needless to say, the list will change at that same 30 times per second.

Does such a board or chipset exist?  Does the technology exist to do this
and keep the display board cost reasonable?  I don't want to spend $25,000
per unit; I may need as many as 20 of these things, and ideally would like
to keep the board cost under $5k/unit in small quantities.

It's obvious that at 1024x1280 this is going to be a hell of a problem.  At
640x480, or even 400x300 it's not going to be easy.  I can't see resolution
being worse than this though and still being crisp enough for what I need.
VGA-style resolution (and color mapping) is probably the bottom of the line
on this one.

Points to where to start looking for this kind of harwdare appreciated.  I
>know< this is a tall order; that's ok, I expect it to be.

PC-based graphics cards (or entire machines) are best, followed by custom
hardware and chips.  

Can an Amiga 3000 handle this kind of graphics load?  I know they have some
darn nice graphics capabilities, but are they up to something this nasty?

--
Karl Denninger (karl@ddsw1.MCS.COM, <well-connected>!ddsw1!karl)
Public Access Data Line: [+1 708 808-7300], Voice: [+1 708 808-7200]
Macro Computer Solutions, Inc.   "Quality Solutions at a Fair Price"

scott@proto.COM (Scott McGowan) (12/10/90)

In article <1990Dec08.075337.10213@ddsw1.MCS.COM>, karl@ddsw1.MCS.COM 
(Karl Denninger) writes:
> Consider the following problem:
> 
> I would like to build a graphics display which can display high-res color
> images from a computer-generated list of objects (ie: the screen has xxx
> objects, here are their coordinates, and apparent sizes) in real-time.  To
> me, real-time means something better than 10-15 frames per second; 30 would
> be ideal, I'll settle for 10-15.  I'm willing to pipe in the coordinates via

[...further problem description deleted...]

> Can an Amiga 3000 handle this kind of graphics load?  I know they have some
> darn nice graphics capabilities, but are they up to something this nasty?

The Amiga 3000 will do what you want in 64 colors, 640 * 400 NTSC.  You may
want this NTSC output as you could view on a wide screen TV, store on VCR,
or use a genlock to overlay onto external video. (Amiga Genlock units run
$150 to $800 depending on quality)  The A3000 can accomplish this with it's
math co-processor calculating the points in the X,Y plane from your X,Y,Z
data.  Then use A3000's hardware line draw and polygon fill to complete the
job.  The A3000 has 2M byte of Video dedicated DRAM, thus you could have
a fair number of screens.  If you have some 2 dimentional objects that need
prjection on the screen at selected times, and with selectible priority
(which one is one top of another) the A3000 will do this also.  Lastly the
A3000 has ability to show forground and background screens that can overlap
with specified colors being clear and thus showing the other screen through.
The A3000 can show pictures in 4096 colors, but redraws are typically slow.
you can however mix a 4096 color screen with any of the other screens at
the beginning of any horizontal trace.  The A3000 has 2 buses with the
BLITTER (Bit Image Manipulator), 68000 and video processor (line draw, area
fill, and sprite manipulation) on the video bus.  The other bus has 32 bit
DRAM, 16 or 20 MHz (depending on your wallet), 68030 and a math co-processor
the two buses communicate as needed and run independently, thus an area fill
or line draw can take place as you calculate new points on the 32 bit bus
where your code resides.  Hope this helps. 

mark@calvin..westford.ccur.com (Mark Thompson) (12/11/90)

In article <1990Dec08.075337.10213@ddsw1.MCS.COM> karl@ddsw1.MCS.COM (Karl Denninger) writes:
>I would like to build a graphics display which can display high-res color
>images from a computer-generated list of objects (ie: the screen has xxx
>objects, here are their coordinates, and apparent sizes) in real-time.  To
>me, real-time means something better than 10-15 frames per second; like 30.
>Resolution requirements are fairly high; perhaps as high as 1280x1024 in 256
>colors.

In summary you want real-time 3D rendering at 1280x1024 for <$5K each
for 20 systems.
Your best bet is an off the shelf i860 based rendering engine. These are
capable of somewhere around 20K to 50K polygons per second for a modest
price: $5K to $10K. This will limit your scene complexity to under 600
to 1600 polygons, a fairly crude scene. To do better than this you are going
to have to pay the BIG bucks. These boards are available for various
platforms from several vendors. Of hand I know of Levco and Lazerus who
make them for the Mac and PEECEE respectively. I hear there is one in the
works for the Amiga also. Since you are doing real-time animation, before
by you buy one of these, check out the overhead required for such a task
on each board, for example screen clears better be damn FAST! Also make
sure they are double buffered.

>I'm willing to build custom hardware if needed.  My >preference< is to buy
>something off the shelf. I may need as many as 20 of these things, and
>ideally would like to keep the board cost under $5k/unit in small quantities.

You will not be able to build it your self and make the price point,
not at only 20 units.

>It's obvious that at 1024x1280 this is going to be a hell of a problem.  At
>640x480, or even 400x300 it's not going to be easy.

No, the real problem is the rendering speed, not the resolution.

>VGA-style resolution (and color mapping) is probably the bottom of the line
>on this one.

You cannot have smooth shading without true color. It is very unlikely
that you will be able to remap your true color display into 8bits in
real time. This means your absolute minimum is 12 bits per pixel for
acceptable results, but it will look pretty bad unless you dither.

>Can an Amiga 3000 handle this kind of graphics load?  I know they have some
>darn nice graphics capabilities, but are they up to something this nasty?

NO off the shelf micro can handle real time rendering. The Amiga can't be
beat for cost effective real time animation at up to 60 frames per second,
however these are pre-computed animation loops. Unless you seriously
degrade your scene complexity, remove smooth shading, and drop your resolution
will you ever get close to 10-15 frames per second.

Contacts:
Levco........(619) 457-2011
Lazerus......(415) 339-6263
These are both good rendering engines but I do not know if they are capable
of real-time animated rendering.

Hope this helps.
+--------------------------------------------------------------------------+
|  Mark Thompson                                                           |
|  mark@westford.ccur.com                                                  |
|  ...!{decvax,uunet}!masscomp!mark   Designing high performance graphics  |
|  (508)392-2480                      engines today for a better tomorrow. |
+------------------------------------------------------------------------- +

buck@drax.gsfc.nasa.gov (Loren (Buck) Buchanan) (12/12/90)

In article <61528@masscomp.ccur.com> mark@calvin.westford.ccur.com (Mark Thompson) writes:
>Your best bet is an off the shelf i860 based rendering engine. These are
>capable of somewhere around 20K to 50K polygons per second for a modest
>price: $5K to $10K. This will limit your scene complexity to under 600
>to 1600 polygons, a fairly crude scene. 

Another possibility is the new board set from Silicon Graphics which will
give similar performance for $5k (it double buffers 4096 colors, or will
single buffer 16 million).  This board has 24bit Z-buffer for quick and
easy hidden surface removal.  It is AT bus based, and is NOT a CGA/EGA/etc.
emulator.

You may be able to increase the frame rate if you can pull the sorts of
tricks used by the video games (redraw only small parts of the screen at a
time, minimize true 3D operations, etc.).

The big advantage of custom hardware is that it can be tailored to your
specific application.  Generation of displays is quite often easy to
parallelize.  Silicon Graphics in its high end workstations has 20 pixel
processors working in parallel to modify screen memory.  The AT&T Pixel
machine can be set up with a single 18 processor or dual 9 processor
pipelines feeding into a set of pixel processors.

I did not see the original posting, and without knowing more about the
application, I really cannot say which approach mentioned in this or Mark's
posting will best do the job.

B Cing U

Buck

Loren Buchanan     | buck@drax.gsfc.nasa.gov   | #include <std_disclaimer.h> 
CSC, 1100 West St. | ...!ames!dftsrv!drax!buck | typedef int by
Laurel, MD 20707   | (301) 497-2531            | void where_prohibited(by law){}
Phone tag, America's fastest growing business sport.

rjc@wookumz.ai.mit.edu (Ray Cromwell) (12/12/90)

In article <61528@masscomp.ccur.com> mark@calvin.westford.ccur.com (Mark Thompson) writes:
>In article <1990Dec08.075337.10213@ddsw1.MCS.COM> karl@ddsw1.MCS.COM (Karl Denninger) writes:
>>I would like to build a graphics display which can display high-res color
>>images from a computer-generated list of objects (ie: the screen has xxx
>>objects, here are their coordinates, and apparent sizes) in real-time.  To
>>me, real-time means something better than 10-15 frames per second; like 30.
>>Resolution requirements are fairly high; perhaps as high as 1280x1024 in 256
>>colors.
[...]
>
>>Can an Amiga 3000 handle this kind of graphics load?  I know they have some
>>darn nice graphics capabilities, but are they up to something this nasty?
>
>NO off the shelf micro can handle real time rendering. The Amiga can't be
>beat for cost effective real time animation at up to 60 frames per second,
>however these are pre-computed animation loops. Unless you seriously
>degrade your scene complexity, remove smooth shading, and drop your resolution
>will you ever get close to 10-15 frames per second.

  The Amiga 3000 may be able to handle the job, if the job is simple enough.
If his scenes are composed of 50,000 vectors, or ray tracing. The A3000
can't do it. (Atleast not until the 68050, or some i860 board becomes
availible) If however he wants to do some simple solid modeling, like
maybe 8,000-10,000 vectors per second. The Amiga's blitter can handle this
fine. In fact, I have some nice Amiga demos that do real-time solid
modeled graphics (animated too) on a 7mhz A500. The only thing that is
precomputed is a table of cos/sin, and all the transformations/rotations of
vertices.
On an A3000 with the FPU, these matrix calculations could be performed in
real time. Still, I wouldn't recommend the A3000 until he describes
what he wants to do in more detail. He may need something like an Iris or
Sparc. There's always the new graphic boards becoming availible for
the Amiga line. Like the Video Toaster, VideoMaster 32, ColorBurst,etc.
(the last 2 are vaporware until after Christmas)

>Contacts:
>Levco........(619) 457-2011
>Lazerus......(415) 339-6263
>These are both good rendering engines but I do not know if they are capable
>of real-time animated rendering.

i860's are nice. I just don't like any Intel chips getting near my amiga :-)
Anybody know what the specs are on the Silicon Graphic's machines?

>Hope this helps.
>+--------------------------------------------------------------------------+
>|  Mark Thompson                                                           |
>|  mark@westford.ccur.com                                                  |
>|  ...!{decvax,uunet}!masscomp!mark   Designing high performance graphics  |
>|  (508)392-2480                      engines today for a better tomorrow. |
>+------------------------------------------------------------------------- +