Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
Sampler.h
1// Copyright 2022 ShenMian
2// License(Apache-2.0)
3
4#pragma once
5
6class Sampler
7{
8public:
9 // 纹理过滤方式
10 enum class Filter
11 {
12 Nearest,
13 Bilinear,
15 };
16
17 // 纹理环绕方式(纹理寻址方式)
18 enum class Warp
19 {
20 Repeat,
23 };
24
26 {
27 Filter minFilter = Filter::Nearest;
28 Filter magFilter = Filter::Bilinear;
29
30 Warp SWarp = Warp::Repeat;
31 Warp TWarp = Warp::Repeat;
32 Warp RWarp = Warp::Repeat;
33
34 float maxAnisotropy = 0.f;
35 };
36
37 Sampler(const Descriptor& desc);
38
39 Filter get_min_filter() const noexcept;
40 Filter get_mag_filter() const noexcept;
41
42 Warp get_s_warp_mode() const noexcept;
43 Warp get_t_warp_mode() const noexcept;
44 Warp get_r_warp_mode() const noexcept;
45
46protected:
47 Filter min_filter_;
48 Filter mag_filter_;
49 Warp s_warp_;
50 Warp t_warp_;
51 Warp r_warp_;
52};
Definition: Sampler.h:7
Warp
Definition: Sampler.h:19
@ MirrorRepeat
镜像重复, 正像/镜像交替.
@ Repeat
重复.
@ ClampToEdge
超出边界后重复边缘, 产生边缘被拉伸的效果.
Filter
Definition: Sampler.h:11
@ Nearest
最近点采样, 临近过滤.
@ Trilinear
三线性过滤.
@ Bilinear
双线性过滤.
Definition: Sampler.h:26