mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
5.1 KiB
116 lines
5.1 KiB
.. _sampler: |
|
|
|
Sampler |
|
======= |
|
|
|
Texture units have many options for selecting texels from loaded textures; |
|
this state controls an individual texture unit's texel-sampling settings. |
|
|
|
Texture coordinates are always treated as four-dimensional, and referred to |
|
with the traditional (S, T, R, Q) notation. |
|
|
|
Members |
|
------- |
|
|
|
wrap_s |
|
How to wrap the S coordinate. One of PIPE_TEX_WRAP_*. |
|
wrap_t |
|
How to wrap the T coordinate. One of PIPE_TEX_WRAP_*. |
|
wrap_r |
|
How to wrap the R coordinate. One of PIPE_TEX_WRAP_*. |
|
|
|
The wrap modes are: |
|
|
|
* ``PIPE_TEX_WRAP_REPEAT``: Standard coord repeat/wrap-around mode. |
|
* ``PIPE_TEX_WRAP_CLAMP_TO_EDGE``: Clamp coord to edge of texture, the border |
|
color is never sampled. |
|
* ``PIPE_TEX_WRAP_CLAMP_TO_BORDER``: Clamp coord to border of texture, the |
|
border color is sampled when coords go outside the range [0,1]. |
|
* ``PIPE_TEX_WRAP_CLAMP``: The coord is clamped to the range [0,1] before |
|
scaling to the texture size. This corresponds to the legacy OpenGL GL_CLAMP |
|
texture wrap mode. Historically, this mode hasn't acted consistently across |
|
all graphics hardware. It sometimes acts like CLAMP_TO_EDGE or |
|
CLAMP_TO_BORDER. The behavior may also vary depending on linear vs. |
|
nearest sampling mode. |
|
* ``PIPE_TEX_WRAP_MIRROR_REPEAT``: If the integer part of the coordinate |
|
is odd, the coord becomes (1 - coord). Then, normal texture REPEAT is |
|
applied to the coord. |
|
* ``PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE``: First, the absolute value of the |
|
coordinate is computed. Then, regular CLAMP_TO_EDGE is applied to the coord. |
|
* ``PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER``: First, the absolute value of the |
|
coordinate is computed. Then, regular CLAMP_TO_BORDER is applied to the |
|
coord. |
|
* ``PIPE_TEX_WRAP_MIRROR_CLAMP``: First, the absolute value of the coord is |
|
computed. Then, regular CLAMP is applied to the coord. |
|
|
|
|
|
min_img_filter |
|
The image filter to use when minifying texels. One of PIPE_TEX_FILTER_*. |
|
mag_img_filter |
|
The image filter to use when magnifying texels. One of PIPE_TEX_FILTER_*. |
|
|
|
The texture image filter modes are: |
|
|
|
* ``PIPE_TEX_FILTER_NEAREST``: One texel is fetched from the texture image |
|
at the texture coordinate. |
|
* ``PIPE_TEX_FILTER_LINEAR``: Two, four or eight texels (depending on the |
|
texture dimensions; 1D/2D/3D) are fetched from the texture image and |
|
linearly weighted and blended together. |
|
|
|
min_mip_filter |
|
The filter to use when minifying mipmapped textures. One of |
|
PIPE_TEX_MIPFILTER_*. |
|
|
|
The texture mip filter modes are: |
|
|
|
* ``PIPE_TEX_MIPFILTER_NEAREST``: A single mipmap level/image is selected |
|
according to the texture LOD (lambda) value. |
|
* ``PIPE_TEX_MIPFILTER_LINEAR``: The two mipmap levels/images above/below |
|
the texture LOD value are sampled from. The results of sampling from |
|
those two images are blended together with linear interpolation. |
|
* ``PIPE_TEX_MIPFILTER_NONE``: Mipmap filtering is disabled. All texels |
|
are taken from the level 0 image. |
|
|
|
|
|
compare_mode |
|
If set to PIPE_TEX_COMPARE_R_TO_TEXTURE, the result of texture sampling |
|
is not a color but a true/false value which is the result of comparing the |
|
sampled texture value (typically a Z value from a depth texture) to the |
|
texture coordinate's R component. |
|
If set to PIPE_TEX_COMPARE_NONE, no comparison calculation is performed. |
|
compare_func |
|
The inequality operator used when compare_mode=1. One of PIPE_FUNC_x. |
|
normalized_coords |
|
If set, the incoming texture coordinates (nominally in the range [0,1]) |
|
will be scaled by the texture width, height, depth to compute texel |
|
addresses. Otherwise, the texture coords are used as-is (they are not |
|
scaled by the texture dimensions). |
|
When normalized_coords=0, only a subset of the texture wrap modes are |
|
allowed: PIPE_TEX_WRAP_CLAMP, PIPE_TEX_WRAP_CLAMP_TO_EDGE and |
|
PIPE_TEX_WRAP_CLAMP_TO_BORDER. |
|
lod_bias |
|
Bias factor which is added to the computed level of detail. |
|
The normal level of detail is computed from the partial derivatives of |
|
the texture coordinates and/or the fragment shader TEX/TXB/TXL |
|
instruction. |
|
min_lod |
|
Minimum level of detail, used to clamp LOD after bias. The LOD values |
|
correspond to mipmap levels where LOD=0 is the level 0 mipmap image. |
|
max_lod |
|
Maximum level of detail, used to clamp LOD after bias. |
|
border_color |
|
Color union used for texel coordinates that are outside the [0,width-1], |
|
[0, height-1] or [0, depth-1] ranges. Interpreted according to sampler |
|
view format, unless the driver reports |
|
PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK, in which case special care has to be |
|
taken (see description of the cap). |
|
max_anisotropy |
|
Maximum anisotropy ratio to use when sampling from textures. For example, |
|
if max_anisotropy=4, a region of up to 1 by 4 texels will be sampled. |
|
Set to zero to disable anisotropic filtering. Any other setting enables |
|
anisotropic filtering, however it's not unexpected some drivers only will |
|
change their filtering with a setting of 2 and higher. |
|
seamless_cube_map |
|
If set, the bilinear filter of a cube map may take samples from adjacent |
|
cube map faces when sampled near a texture border to produce a seamless |
|
look.
|
|
|