cc8cbabe |
1 | // Copyright (c) 2017 OPEN CASCADE SAS |
2 | // |
3 | // This file is part of Open CASCADE Technology software library. |
4 | // |
5 | // This library is free software; you can redistribute it and/or modify it under |
6 | // the terms of the GNU Lesser General Public License version 2.1 as published |
7 | // by the Free Software Foundation, with special exception defined in the file |
8 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
9 | // distribution for complete text of the license and disclaimer of any warranty. |
10 | // |
11 | // Alternatively, this file may be used under the terms of Open CASCADE |
12 | // commercial license or contractual agreement. |
13 | |
14 | #ifndef _Graphic3d_TextureUnit_HeaderFile |
15 | #define _Graphic3d_TextureUnit_HeaderFile |
16 | |
17 | //! Texture unit. |
18 | enum Graphic3d_TextureUnit |
19 | { |
20 | // value as index number |
21 | Graphic3d_TextureUnit_0, |
22 | Graphic3d_TextureUnit_1, |
23 | Graphic3d_TextureUnit_2, |
24 | Graphic3d_TextureUnit_3, |
25 | Graphic3d_TextureUnit_4, |
26 | Graphic3d_TextureUnit_5, |
27 | Graphic3d_TextureUnit_6, |
28 | Graphic3d_TextureUnit_7, |
29 | Graphic3d_TextureUnit_8, |
30 | Graphic3d_TextureUnit_9, |
31 | Graphic3d_TextureUnit_10, |
32 | Graphic3d_TextureUnit_11, |
33 | Graphic3d_TextureUnit_12, |
34 | Graphic3d_TextureUnit_13, |
35 | Graphic3d_TextureUnit_14, |
36 | Graphic3d_TextureUnit_15, |
37 | |
72f6dc61 |
38 | // aliases |
077a220c |
39 | |
72f6dc61 |
40 | //! sampler2D occSamplerBaseColor. |
41 | //! RGB(A) base color of the material and alpha mask/opacity. |
42 | Graphic3d_TextureUnit_BaseColor = Graphic3d_TextureUnit_0, |
43 | //! sampler2D occSamplerEmissive. |
44 | //! RGB emissive map controls the color and intensity of the light being emitted by the material. |
45 | Graphic3d_TextureUnit_Emissive = Graphic3d_TextureUnit_1, |
46 | //! sampler2D occSamplerOcclusion. |
47 | //! Occlusion map indicating areas of indirect lighting. |
48 | //! Encoded into RED channel, with 1.0 meaning no occlusion (full color intensity) and 0.0 complete occlusion (black). |
49 | Graphic3d_TextureUnit_Occlusion = Graphic3d_TextureUnit_2, |
50 | //! sampler2D occSamplerNormal. |
51 | //! XYZ tangent space normal map. |
52 | Graphic3d_TextureUnit_Normal = Graphic3d_TextureUnit_3, |
53 | //! sampler2D occSamplerMetallicRoughness. |
54 | //! Metalness + roughness of the material. |
55 | //! Encoded into GREEN (roughness) + BLUE (metallic) channels, |
56 | //! so that it can be optionally combined with occlusion texture (RED channel). |
57 | Graphic3d_TextureUnit_MetallicRoughness = Graphic3d_TextureUnit_4, |
58 | |
59 | //! samplerCube occSampler0. |
60 | //! Environment cubemap for background. Rendered by dedicated program and normally occupies first texture unit. |
61 | Graphic3d_TextureUnit_EnvMap = Graphic3d_TextureUnit_0, |
62 | |
63 | //! sampler2D occSamplerPointSprite. |
64 | //! Sprite alpha-mask or RGBA image mapped using point UV, additional to BaseColor (mapping using vertex UV). |
65 | //! This texture unit is set Graphic3d_TextureUnit_1, so that it can be combined with Graphic3d_TextureUnit_BaseColor, |
66 | //! while other texture maps (normal map and others) are unexpected and unsupported for points. |
67 | //! Note that it can be overridden to Graphic3d_TextureUnit_0 for FFP fallback on hardware without multi-texturing. |
68 | Graphic3d_TextureUnit_PointSprite = Graphic3d_TextureUnit_1, |
69 | |
78c4e836 |
70 | //! sampler2D occDepthPeelingDepth. |
71 | //! 1st texture unit for Depth Peeling lookups. |
72 | Graphic3d_TextureUnit_DepthPeelingDepth = -6, |
73 | |
74 | //! sampler2D occDepthPeelingFrontColor. |
75 | //! 2nd texture unit for Depth Peeling lookups. |
76 | Graphic3d_TextureUnit_DepthPeelingFrontColor = -5, |
77 | |
d84e8669 |
78 | //! sampler2D occShadowMapSampler. |
79 | //! Directional light source shadowmap texture. |
80 | Graphic3d_TextureUnit_ShadowMap = -4, |
81 | |
72f6dc61 |
82 | //! sampler2D occEnvLUT. |
83 | //! Lookup table for approximated PBR environment lighting. |
84 | //! Configured as index at the end of available texture units - 3. |
85 | Graphic3d_TextureUnit_PbrEnvironmentLUT = -3, |
78c4e836 |
86 | |
72f6dc61 |
87 | //! sampler2D occDiffIBLMapSHCoeffs. |
88 | //! Diffuse (irradiance) IBL map's spherical harmonics coefficients baked for PBR from environment cubemap image. |
89 | //! Configured as index at the end of available texture units - 2. |
90 | Graphic3d_TextureUnit_PbrIblDiffuseSH = -2, |
78c4e836 |
91 | |
72f6dc61 |
92 | //! samplerCube occSpecIBLMap. |
93 | //! Specular IBL (Image-Based Lighting) environment map baked for PBR from environment cubemap image. |
94 | //! Configured as index at the end of available texture units - 1. |
95 | Graphic3d_TextureUnit_PbrIblSpecular = -1, |
cc8cbabe |
96 | }; |
97 | enum |
98 | { |
72f6dc61 |
99 | Graphic3d_TextureUnit_NB = Graphic3d_TextureUnit_15 + 1, |
cc8cbabe |
100 | }; |
101 | |
102 | #endif // _Graphic3d_TextureUnit_HeaderFile |