0033661: Data Exchange, Step Import - Tessellated GDTs are not imported
[occt.git] / src / Graphic3d / Graphic3d_TextureUnit.hxx
CommitLineData
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.
18enum 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};
97enum
98{
72f6dc61 99 Graphic3d_TextureUnit_NB = Graphic3d_TextureUnit_15 + 1,
cc8cbabe 100};
101
102#endif // _Graphic3d_TextureUnit_HeaderFile