CompuServe Messages

#IPAS/Plug-Ins Wish List

    11-May-95 16:55:51
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.)