#IPAS/Plug-Ins Wish List
11-May-95 16:55:51
Sb: #168647-#IPAS/Plug-Ins Wish List
Fm: Marion K. Marks 70700,2777
To: David Gould 100424,2533
Giving more thought to it, I figured out a better way to do it. It should
indeed be an .IXP, not an .AXP. But it would use the Z-Buffer (with the
appropriate change to 3DS.SET made, which should already be enabled if you have
LenzFX up and running) to determine the "edges" of objects. A parameter in the
Setup box could allow you to set how much of a difference in Z-Buffer (depth)
values for adjacent pixels would be needed to be detected as an "edge." This
would nicely solve the "arm-across-the-body" problem. Basically, the Z-Buffer
can be considered as a grayscale image (with 32-bit instead of 8-bit values for
precision, such that black is 0 and white is over 4 billion instead of merely
256 — or you can consider the Most Significant Byte as the mantissa and the
other three bytes as the decimal portion of a fixed-point scaled-integer
fraction, so that black is 0.0 and white is 255.9999999403954 [which is about
what 255 and 16,777,215/16,777,216ths works out to]) such that the value of
each pixel is a meaure of the DISTANCE between the camera and the point on the
object nearest the camera at that pixel location, with black being no object
(infinite distance, aka the Background) and pure white would be a point on an
object that is right at the Z-Clip distance from the camera itself, with grays
progressing toward black with increasing distance. This is how LenzFX does its
rack-focussing and other cool effects. Where the Z-Buffer values of adjacent
pixels are close together, it can be assumed that the pixels are part of the
same object. But where there is a sudden and sharp discontinuity between
Z-Buffer values for adjacent pixels, then they are almost certainly parts of
different objects, which means we've found an EDGE!
Perhaps the makers of LenzFX would be the best people to put out such an
Outlining .IXP, as they've proven their skill at dealing with the Z-Buffer. I
think it would make a handy addition to LenzFX Version 2.0. 🙂
As for outlining facial features, etc., that's what texture mapping is for.
<g>
Related wish for 3DSr"5" (the _real_ r4): multiple .AXPs per object,
preferrably unlimited. The scrolling list dialog for this would have a
three-state button for each .AXP that would tell it whether that .AXP would be
passed: the bounding box, the original object unmodified by any prior .AXPs, or
the object as it exists after having been modified by any prior .AXPs
(allowing, for instance, Bones Pro to act on a Skinned object, or vice-versa!).
Another IPAS-related wish: since many of us have The Scripting Extension
(not me, yet, or else I'd probably have whipped up an Outline script by now!)
and can thus write plug-ins in a high level language, would any of the
professional IPAS Plug-Ins developers be interested in working out deals
wherein they purchase or license TSE BASIC scripts that others of us have
developed and translate them into C coded IPAS routines and market them? Such
an arrangement could lead to an explosion in quality IPAS Plug-Ins, since a lot
more of us who have great ideas can implement them in TSE BASIC than in C! Yet
TSE BASIC scripts, particularly for .IXPs, .AXPs, and .SXPs, would likely not
sell well because they would be so slow. (The speed isn't as important for
.PXPs and .KXPs, as they don't have to execute repeatedly for each frame at
render time, but are used only occasionally during scene and animation design,
so a market for such scripts in their original TSE BASIC forms is more viable.)