1 | //************************************ bs::framework - Copyright 2018 Marko Pintera **************************************// |
2 | //*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********// |
3 | #pragma once |
4 | |
5 | #include "BsRenderBeastPrerequisites.h" |
6 | |
7 | namespace bs { namespace ct |
8 | { |
9 | /** @addtogroup RenderBeast |
10 | * @{ |
11 | */ |
12 | |
13 | /** Contains static textures required for various render techniques. */ |
14 | class RendererTextures |
15 | { |
16 | public: |
17 | /** Initializes the renderer textures. Must be called before using the textures. */ |
18 | static void startUp(); |
19 | |
20 | /** Cleans up renderer textures. */ |
21 | static void shutDown(); |
22 | |
23 | /** |
24 | * 2D 2-channel texture containing a pre-integrated G and F factors of the microfactet BRDF. This is an |
25 | * approximation used for image based lighting, so we can avoid sampling environment maps for each light. Works in |
26 | * tandem with the importance sampled reflection cubemaps. |
27 | * |
28 | * (u, v) = (NoV, roughness) |
29 | * (r, g) = (scale, bias) |
30 | */ |
31 | static SPtr<Texture> preintegratedEnvGF; |
32 | |
33 | /** Tileable 4x4 texture to be used for randomization in SSAO rendering. */ |
34 | static SPtr<Texture> ssaoRandomization4x4; |
35 | |
36 | /** Cubemap containing indirect lighting, when no other is available. */ |
37 | static SPtr<Texture> defaultIndirect; |
38 | }; |
39 | |
40 | /** @} */ |
41 | }} |