docs: Cleanup Rasterizer a bit.

I'm getting better at this, I think.
This commit is contained in:
Corbin Simpson
2010-01-18 17:12:13 -08:00
parent 2b4ad02321
commit 2598f00078
2 changed files with 49 additions and 45 deletions

View File

@@ -11,19 +11,56 @@ multisample state, scissoring and flat/smooth shading.
Members
-------
bypass_vs_clip_and_viewport
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Whether the entire TCL pipeline should be bypassed. This implies that
vertices are pre-transformed for the viewport, and will not be run
through the vertex shader.
.. note::
Implementations may still clip away vertices that are not in the viewport
when this is set.
flatshade
If set, the provoking vertex of each polygon is used to determine the
color of the entire polygon. If not set, fragment colors will be
interpolated between the vertex colors.
Note that this is separate from the fragment shader input attributes
CONSTANT, LINEAR and PERSPECTIVE. We need the flatshade state at
^^^^^^^^^
If set, the provoking vertex of each polygon is used to determine the color
of the entire polygon. If not set, fragment colors will be interpolated
between the vertex colors.
The actual interpolated shading algorithm is obviously
implementation-dependent, but will usually be Gourard for most hardware.
.. note::
This is separate from the fragment shader input attributes
CONSTANT, LINEAR and PERSPECTIVE. The flatshade state is needed at
clipping time to determine how to set the color of new vertices.
Also note that the draw module can implement flat shading by copying
the provoking vertex color to all the other vertices in the primitive.
:ref:`Draw` can implement flat shading by copying the provoking vertex
color to all the other vertices in the primitive.
flatshade_first
Whether the first vertex should be the provoking vertex, for most
primitives. If not set, the last vertex is the provoking vertex.
^^^^^^^^^^^^^^^
Whether the first vertex should be the provoking vertex, for most primitives.
If not set, the last vertex is the provoking vertex.
There are several important exceptions to the specification of this rule.
* ``PIPE_PRIMITIVE_POLYGON``: The provoking vertex is always the first
vertex. If the caller wishes to change the provoking vertex, they merely
need to rotate the vertices themselves.
* ``PIPE_PRIMITIVE_QUAD``, ``PIPE_PRIMITIVE_QUAD_STRIP``: This option has no
effect; the provoking vertex is always the last vertex.
* ``PIPE_PRIMITIVE_TRIANGLE_FAN``: When set, the provoking vertex is the
second vertex, not the first. This permits each segment of the fan to have
a different color.
Other Members
^^^^^^^^^^^^^
light_twoside
If set, there are per-vertex back-facing colors. The draw module
@@ -33,6 +70,7 @@ light_twoside
front_winding
Indicates the window order of front-facing polygons, either
PIPE_WINDING_CW or PIPE_WINDING_CCW
cull_mode
Indicates which polygons to cull, either PIPE_WINDING_NONE (cull no
polygons), PIPE_WINDING_CW (cull clockwise-winding polygons),
@@ -110,43 +148,7 @@ scissor
multisample
Whether :term:`MSAA` is enabled.
bypass_vs_clip_and_viewport
Whether the entire TCL pipeline should be bypassed. This implies that
vertices are pre-transformed for the viewport, and will not be run
through the vertex shader. Note that implementations may still clip away
vertices that are not in the viewport.
gl_rasterization_rules
Whether the rasterizer should use (0.5, 0.5) pixel centers. When not set,
the rasterizer will use (0, 0) for pixel centers.
Notes
-----
flatshade
^^^^^^^^^
The actual interpolated shading algorithm is obviously
implementation-dependent, but will usually be Gourard for most hardware.
bypass_vs_clip_and_viewport
^^^^^^^^^^^^^^^^^^^^^^^^^^^
When set, this implies that vertices are pre-transformed for the viewport, and
will not be run through the vertex shader. Note that implementations may still
clip away vertices that are not visible.
flatshade_first
^^^^^^^^^^^^^^^
There are several important exceptions to the specification of this rule.
* ``PIPE_PRIMITIVE_POLYGON``: The provoking vertex is always the first
vertex. If the caller wishes to change the provoking vertex, they merely
need to rotate the vertices themselves.
* ``PIPE_PRIMITIVE_QUAD``, ``PIPE_PRIMITIVE_QUAD_STRIP``: This option has no
effect; the provoking vertex is always the last vertex.
* ``PIPE_PRIMITIVE_TRIANGLE_FAN``: When set, the provoking vertex is the
second vertex, not the first. This permits each segment of the fan to have
a different color.