Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: $Revision: 1.6.2.16 $; site datacube.UUCP
Path: utzoo!linus!decvax!cca!datacube!shep
From: shep@datacube.UUCP
Newsgroups: net.graphics
Subject: Re: Re: Texture mapping
Message-ID: <6700018@datacube.UUCP>
Date: Sat, 6-Jul-85 12:42:00 EDT
Article-I.D.: datacube.6700018
Posted: Sat Jul  6 12:42:00 1985
Date-Received: Mon, 19-Aug-85 22:44:19 EDT
References: <809@turtlevax.UUCP>
Lines: 50
Nf-ID: #R:turtlevax:-80900:datacube:6700018:000:2664
Nf-From: datacube!shep    Jul  6 12:42:00 1985


 In article <221@cmu-cs-h.ARPA> rfb@cmu-cs-h.ARPA (Rick Busdiecker) writes:
>Does anyone have an algorithm they'd be willing to share for mapping a
>raster image to an arbitrary polygon in space?  How about a pointer to a
>published algorithm?

 And Ken Turkowski @ CADLINC, Menlo Park, CA replies:
>Texture mapping is basically a resampling problem.  First you need to
>generate a mapping from the image to the polygon, then you need to
>invert it.  For every point in the target, map it back into the source,
>and apply a digital filter to the neighborhood of the source, so that
>the target image meets the Nyquist criterion (Shannon sampling
>theorem).

For mapping a 2-d raster scan image onto a 2-d polygon in three space the
"backward mapping" Turk describes is efficient. Furthermore, many types
of mappings, i.e. quadratic division, are separable, as was noted. A most
common use of this is the separated perspective backward mapping used
in the Ampex Digital Optics television special effects device. It uses
separate horizontal and vertical FIR interpolators to interpolate from
several source pixels a single target pixel. A good description of this
is in the US patent assigned to Ampex by architect Steve Gabriel and
engineer Phil Bennett.

General purpose hardware to perform these backward mappings in real-time
will be available by year's end. "General purpose" implies that for
every target pixel, there is a address in a "comes from" address store
that holds the source location in 2-space for the target pixel. Although
this is optimal for many applications, it does have it's pitfalls:

  Bi-cubic patches, a computationally efficient way of describing a
surface map, do NOT separate in the general case.

  Backward mapping has the problem of usually selecting only one point
in source space. Thus making it useless for many mappings. Enter 
"forward mapping"; where each source pixel is littered at different
amplitudes in the target space frame accumulator. Forward mapping has
destroyed many good hardware engineers and at least one company has
made a product that shows exactly how -NOT- to do it!

This mapping/warping stuff is real computationally intensive, usually
because of the interpolation, sometimes in the address generation. Array
processors take seconds to "warp" a 512*512*8*3 image. Thus for many
applications, dedicated hardware is required.

Shep Siegel                    ihnp4!datacube!shep
Datacube Inc.        ima!inmet!mirror!datacube!shep
617-535-6644         decvax!cca!mirror!datacube!shep
4 Dearborn Rd.       decvax!genrad!wjh12!mirror!datacube!shep
Peabody, Ma. 01960   {mit-eddie,cyb0vax}!mirror!datacube!shep