docs: clarify point sprite discussion

Plagiarizes email explanation from Roland.
This commit is contained in:
Keith Whitwell 2010-08-05 10:58:02 +01:00
parent 5e56c8907b
commit ccbd9ae7cc
1 changed files with 23 additions and 16 deletions

View File

@ -126,11 +126,15 @@ sprite_coord_enable
Specifies if a texture unit has its texture coordinates replaced or not. This Specifies if a texture unit has its texture coordinates replaced or not. This
is a packed bitfield containing the enable for all texcoords -- if all bits is a packed bitfield containing the enable for all texcoords -- if all bits
are zero, point sprites are effectively disabled. If any bit is set, then are zero, point sprites are effectively disabled.
point_smooth and point_quad_rasterization are ignored; point smoothing is
disabled and points are always rasterized as quads. If enabled, the four If any bit is set, then point_smooth MUST be disabled (there are no
vertices of the resulting quad will be assigned texture coordinates, round sprites) and point_quad_rasterization MUST be true (sprites are
according to sprite_coord_mode. always rasterized as quads). Any mismatch between these states should
be considered a bug in the state-tracker.
If enabled, the four vertices of the resulting quad will be assigned
texture coordinates, according to sprite_coord_mode.
sprite_coord_mode sprite_coord_mode
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
@ -141,20 +145,23 @@ have coordinates (0,0,0,1). For PIPE_SPRITE_COORD_UPPER_LEFT, the upper-left
vertex will have coordinates (0,0,0,1). vertex will have coordinates (0,0,0,1).
This state is used by :ref:`Draw` to generate texcoords. This state is used by :ref:`Draw` to generate texcoords.
.. note::
When geometry shaders are available, a special geometry shader could be
used instead of this functionality, to convert incoming points into quads
with the proper texture coordinates.
point_quad_rasterization point_quad_rasterization
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
Determines if points should be rasterized as quads or points. Certain APIs, Determines if points should be rasterized according to quad or point
like Direct3D, always use quad rasterization for points, regardless of rasterization rules.
whether point sprites are enabled or not. If this state is enabled, point
smoothing and antialiasing are disabled. If it is disabled, point sprite OpenGL actually has quite different rasterization rules for points and
coordinates are not generated. point sprites - hence this indicates if points should be rasterized as
points or according to point sprite (which decomposes them into quads,
basically) rules.
Additionally Direct3D will always use quad rasterization rules for
points, regardless of whether point sprites are enabled or not.
If this state is enabled, point smoothing and antialiasing are
disabled. If it is disabled, point sprite coordinates are not
generated.
.. note:: .. note::