[comp.graphics] Point Graphics

mccaugh@uiucdcsb.cs.uiuc.edu (03/14/88)

 I would be very interested in any info on the emerging concept of "point
 graphics" which is a graphics model assuming 'smart pixels' -- w.g., in 
 an animation sequence involving the possibility of 2 or more objects
 colliding, the first (i.e., fastest) object first sets a pixel-set to
 the value 'occupied' so that other objects moving into the set will
 cause a collision to be sensed. Presumably, the intent is to avoid
 computation of first- and second-degree simultaneous equations to
 decide presence of collision.
 I believe each pixel is represented by a record containing more info
 than just whether it is occupied (color, hue, etc.)

 Thanks for any help whatever.

 -- Scott

jbn@glacier.STANFORD.EDU (John B. Nagle) (03/16/88)

     Hidden surface elimination is often performed in hardware by
storing a Z value for each pixel and updating pixels in such a way that
points further than the one already stored at a given X,Y do not update
the screen, while nearer points update both the screen and the Z value.
This is called a Z-buffer.  A number of high-end graphics machines have
Z-buffers, including the high-end HP and Apollo solid modelling workstations.
Matrox makes a graphics board set for the IBM PC that includes a Z-buffer.

     Collision detection in 2D is standard on low-end game machines.  
Expansion of this concept into 3D is an obvious next step.  I've been
thinking idly about 3D sprites, and suspect that it wouldn't be all that
hard to do.  Z-depth is just like sprite priority, but with more bits.
That alone would give you 3D isometric sprites that could be moved in
X,Y and Z.  Perspective will require a bit more support.  But recognize
that you can probably get away with recomputing the perspective view
of the moving object only a few times a second (assuming that the
3D sprite is double-buffered) since it will blur as it moves and this
will conceal any transient effects.

     All this just gets you the ability to move a few objects around
in real time against a generally static background without having enough
computational power to redraw everything on every fram cycle.  But
you still don't have full collision detection.  A true voxel-based
collision detection system is likely to be a bit expensive for now.
But it might be possible to fake it for some common situations.

					John Nagle

terry@wsccs.UUCP (terry) (03/23/88)

In article <165500005@uiucdcsb>, mccaugh@uiucdcsb.cs.uiuc.edu writes:
> 
>  I would be very interested in any info on the emerging concept of "point
>  graphics" which is a graphics model assuming 'smart pixels' -- w.g., in 
>  an animation sequence involving the possibility of 2 or more objects
>  colliding, the first (i.e., fastest) object first sets a pixel-set to
>  the value 'occupied' so that other objects moving into the set will
>  cause a collision to be sensed. Presumably, the intent is to avoid
>  computation of first- and second-degree simultaneous equations to
>  decide presence of collision.

	I think that it would be possible to determine a graphics object
via rubber-banding bezier curves.  The method involved would be to simply
define your object in cubic arrangements of points, thereby giving sort
of spline-fractals.  Then you could determine collisions by determining
if any two lines defined by the edge of the cubic had a collision by
using any 3 of the 4 points involved to define a plane and determining
whether or not the fourth point was above or below the plane.  Admittedly,
if your curve exceeded the length of the line segment forming it, either
above or below the segment when projected into the plane defined by the
curve and the points defining the curve, you would have points sticking up
which could not be detected.  I believe this method would work if you
were to do several things:

	1) All points must be an integer unit distance apart, with implied
	   points at one unit intervals, therby describing equally sized
	   cubics which define the objects.

	2) All line segments must exceed or equal in heighth/depth the
	   curves they define, as projected onto them.

	3) The unit distance must be smaller than the resoloution of the
	   collisions to be detected (if your unit length was one millimeter,
	   you collision-detection accuracy could vary -+ a millimeter)

This would have the effect of defining an orthogonal 3 dimensional grid, within
which you could define your points defining your object.  If you have two
objects, this would have the effect of defining cubic objects in a single
reference frame, or multiple reference frames, if the objects are not defined
in cubics which are mutually perpindicular to each other.

Either way, you would simply have to do a matrix transformation for any angle
of approach of any two objects.  You calc the curves only for display
purposes.

	Much simpler!


| Terry Lambert           UUCP: ...{ decvax, ihnp4 }                          |
| @ Century Software          : ...utah-cs!uplherc!sp7040!obie!wsccs!terry    |
| SLC, Utah                                                                   |
|                   These opinions are not my companies, but if you find them |
|                   useful, send a $20.00 donation to Brisbane Australia...   |
| 'There are monkey boys in the facility.  Do not be alarmed; you are secure' |