From: hollasch@kpc.com (Steve Hollasch)
Newsgroups: comp.graphics
Subject: Re: 3D projection
Summary: Current status
Date: 8 Apr 92 16:43:18 GMT
Article-I.D.: kpc.1992Apr8.164318.11425
Organization: Kubota Pacific Computer, Inc.

takkhoo@nunki.usc.edu (Tak Khoo) writes:
| Hi there!  Anyone out there know how to do 3D parallel/perspective
| projection?

    You'd better hurry.  Parallel projection is already patented (since
1977, I believe).  Apple is currently in a legal battle to copyright
perspective projection (Xerox did it for free and Apple sort of
appropriated it).  Althought technically the current status of perspective
projection is undecided, I'd stay away from it for now because the current
legal climate is rather hostile and Apple is "taking names" of those who
are using perspective projection without at least notifying the Apple
Legal Research Division (sorry - don't have the address handy).

    Orthogonal projection has been widely used by students such as
yourself for years now; it's not strictly public domain, but so far no
organization has stepped forward to copyright it.  Thus, it's probably
fairly safe to use this.  Just send e-mail to orth-proj@slash.dot.com and
they'll register you and send you a developer's packet.

    Besides creating your own personal projection (obviously the safest
and most recommended route), the following projections are probably pretty
safe legally (for now):

    Black-Hole Projection:
        Each point has a projection equal to a translation to the origin.
        One advantage of this approach is speed; it is possible to
        implement this step with a single-entry lookup table.  Other
        methods claim to have done away with the lookup table entirely,
        but I haven't seen the algorithm yet.  In fact I have heard of
        other research (the paper will be coming out at SIGGRAPH '93, I
        believe) that claims to have used lookup tables for the resulting
        _images_.

    Chorkoff Black-Hole Projection:
        Like black-hole projection, this method has a projection that is
        unique for every point.  However, this method translates each
        point to some screen coordinate S.  This enjoys many of the
        advantages of speed of the black-hole projection, but yields a
        greater variety of images.  Research into applying the black-hole
        lookup table approaches is currently under way.

    Nova Projection:
        Currently the fastest projection today, this method translates
        each point to a coordinate Q which lies outside of screen
        coordinates.  This greatly simplifies the clipping stage of the
        projection.  It may not be readily apparent, but it _is_ possible
        to pre-compute the image and store it prior to analyzing the
        geometry.

    Square Cone Projection:
        Calculate the screen coordinate by dividing by depth and the
        tangent of the spread angle of the cone.  Some people advocate
        this method as one of the most natural, but why bother with this
        hairy math when you can ask the net for an easier approach?

    J Projection:
        Somewhat obscure, but rather fascinating, in a way.  All points
        are "coalesced" to the nearest location of the letter "J" in
        screen coordinates.  The best font to use for this projection is
        still under debate.

    Butcher's Block Projection:
        Just ignore the Z coordinate of each point and use the X and Y
        coordinates.  Like square cone projection, this method uses
        coordinates and other messy stuff; it's horrendously complicated
        (though if you're an egg-head you could go to the library and
        learn it in under an hour), so I'd just stick with one of the
        other projections I've mentioned above.

________________________________________________________________________
Steve Hollasch                             Kubota Pacific Computer, Inc.
hollasch@kpc.com                           Santa Clara, California