Oct 97 - Macintosh Q and A
Volume Number: 13
Issue Number: 10
Column Tag: develop
Macintosh Q & A
by Apple Developer Support Center
All Geometry Vertices Need UV Parameterization
Q. Is it possible to apply UV parameterization to some, but not all of a
geometry's vertices?
A. No, you must apply UV parameterization to all of the vertices in a given geometry.
______________________________
Default Number Of Surface Planes
Q. When rendering a QuickDraw 3D 1.5 file containing objects such as
cylinders and ellipsoids, the default number of surface planes is much
higher than in QD3D version 1.0.6. While this looks nice, it requires
more memory. Is there a way in my application to limit the 'resolution'
(i.e. the number of surface planes) used by QD3D 1.5?
A. You can use a subdivision style to get control over the number of faces generated.
For example, you can create a subdivision style object as follows:
theSubdivisionStyleData.method =
kQ3SubdivisionMethodScreenSpace;
theSubdivisionStyleData.c1 = (float)20;
theSubdivisionStyleData.c2 = (float)20;
mSubdivisionStyle =
Q3SubdivisionStyle_New(&theSubdivisionStyleData);
You can then submit the subdivision style in your rendering loop before you submit
your geometry.
______________________________
EllipsoidData Caps Field Explanation
Q. I am perplexed as to what the caps field in the TQ3EllipsoidData
structure is used for. Can you explain?
A. Here's an explanation. If you cut a pool ball in half, you get a solid hemisphere. If
you cut a basketball in half, you get a hollow hemisphere. The intention of the caps is
to specify which sort of a ball you'd like to pretend you're rendering. You will IN THE
FUTURE (NOT for 1.5.1) be able to specify min and max parameter values, making
partial ellipsoids (cones, etc.). When this feature is released, you can either leave the
caps field value as none (kQ3EndCapNone), in which case you'll get a hollow-looking
partial sphere, or interior (kQ3EndCapMaskInterior), in which case you'll get a
solid-looking partial sphere.
______________________________
Using Hardware Acceleration
Q. How do I set up QuickDraw 3D hardware acceleration? Is there any
specific API calls I have to make? Or does hardware acceleration just
work automatically if you have a hardware accelerator board installed?
A. The QD3D interactive renderer automatically uses hardware acceleration if a card
is present (and selects the best hardware if there are multiple cards). The wireframe
renderer does not.
You can tell a renderer to use hardware acceleration with the
Q3InteractiveRenderer_SetPreferences() and Q3View_SetRenderer functions.
Check out the BoxPaint sample code from the QD3D SDK which uses the above functions
to set the renderer.
______________________________
Default Surface/Shader UV Params For Caps of
Cones & Cylinders
Q. Does anyone know what the default surface/shader UV
parameterizations are for the caps of cones and cylinders in QuickDraw
3D version 1.5?
A. Check out the article titled, "New QuickDraw 3D Geometries", by Philip J.
Schneider in develop journal issue 28. Look for the section "Ellipsoids, Cones,
Cylinders, and Tori", where you'll find a discussion about the default UV
parameterization of these primitives. Here's a relevant excerpt from the article: "For
the cone and cylinder, the parametric origin is on the bottom edge, at the point where
the majorRadius vector ends. V goes up while U goes around in the direction shown by
the arrows. The bottom of the cone, and the top and bottom of the cylinder, are
parameterized exactly like the disk.
The discussion about the disk primitive is in the article as well.