42cf5bc1 |
1 | // Created on: 1991-10-07 |
2 | // Created by: NW,JPB,CAL |
3 | // Copyright (c) 1991-1999 Matra Datavision |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
5 | // |
6 | // This file is part of Open CASCADE Technology software library. |
7 | // |
8 | // This library is free software; you can redistribute it and/or modify it under |
9 | // the terms of the GNU Lesser General Public License version 2.1 as published |
10 | // by the Free Software Foundation, with special exception defined in the file |
11 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
12 | // distribution for complete text of the license and disclaimer of any warranty. |
13 | // |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
16 | |
c357e426 |
17 | #ifndef _Graphic3d_TypeOfShadingModel_HeaderFile |
18 | #define _Graphic3d_TypeOfShadingModel_HeaderFile |
42cf5bc1 |
19 | |
dc89236f |
20 | //! Definition of the color shading model. |
c357e426 |
21 | enum Graphic3d_TypeOfShadingModel |
42cf5bc1 |
22 | { |
dc89236f |
23 | //! Use Shading Model, specified as default for entire Viewer. |
13b36bb1 |
24 | Graphic3d_TypeOfShadingModel_DEFAULT = -1, |
dc89236f |
25 | |
26 | //! Unlit Shading (or shadeless), lighting is ignored and facet is fully filled by its material color. |
27 | //! This model is useful for artificial/auxiliary objects, not intended to be lit, |
28 | //! or for objects with pre-calculated lighting information (e.g. captured by camera). |
13b36bb1 |
29 | Graphic3d_TypeOfShadingModel_Unlit = 0, |
dc89236f |
30 | |
13b36bb1 |
31 | //! Flat Shading for Phong material model, calculated using triangle normal. |
32 | //! Could be useful for mesh element analysis. |
33 | //! This shading model does NOT require normals to be defined within vertex attributes. |
34 | Graphic3d_TypeOfShadingModel_PhongFacet, |
dc89236f |
35 | |
13b36bb1 |
36 | //! Gouraud shading uses the same material definition as Phong reflection model, |
37 | //! but emulates an obsolete per-vertex calculations with result color interpolated across fragments, |
38 | //! as implemented by T&L hardware blocks on old graphics hardware. |
39 | //! This shading model requires normals to be defined within vertex attributes. |
40 | Graphic3d_TypeOfShadingModel_Gouraud, |
dc89236f |
41 | |
13b36bb1 |
42 | //! Phong reflection model, an empirical model defined by Diffuse/Ambient/Specular/Shininess components. |
43 | //! Lighting is calculated per-fragment basing on nodal normal (normal is interpolated across fragments of triangle). |
44 | //! This shading model requires normals to be defined within vertex attributes. |
45 | Graphic3d_TypeOfShadingModel_Phong, |
dc89236f |
46 | |
67312b79 |
47 | //! Metallic-roughness physically based (PBR) illumination system. |
13b36bb1 |
48 | Graphic3d_TypeOfShadingModel_Pbr, |
67312b79 |
49 | |
13b36bb1 |
50 | //! Same as Graphic3d_TypeOfShadingModel_Pbr but using flat per-triangle normal. |
51 | Graphic3d_TypeOfShadingModel_PbrFacet, |
67312b79 |
52 | |
dc89236f |
53 | // obsolete aliases |
13b36bb1 |
54 | Graphic3d_TOSM_DEFAULT = Graphic3d_TypeOfShadingModel_DEFAULT, |
55 | Graphic3d_TOSM_UNLIT = Graphic3d_TypeOfShadingModel_Unlit, |
56 | Graphic3d_TOSM_FACET = Graphic3d_TypeOfShadingModel_PhongFacet, |
57 | Graphic3d_TOSM_VERTEX = Graphic3d_TypeOfShadingModel_Gouraud, |
58 | Graphic3d_TOSM_FRAGMENT = Graphic3d_TypeOfShadingModel_Phong, |
59 | Graphic3d_TOSM_PBR = Graphic3d_TypeOfShadingModel_Pbr, |
60 | Graphic3d_TOSM_PBR_FACET = Graphic3d_TypeOfShadingModel_PbrFacet, |
61 | // |
dc89236f |
62 | Graphic3d_TOSM_NONE = Graphic3d_TOSM_UNLIT, |
63 | V3d_COLOR = Graphic3d_TOSM_NONE, |
64 | V3d_FLAT = Graphic3d_TOSM_FACET, |
65 | V3d_GOURAUD = Graphic3d_TOSM_VERTEX, |
66 | V3d_PHONG = Graphic3d_TOSM_FRAGMENT |
42cf5bc1 |
67 | }; |
68 | |
992ed6b3 |
69 | enum |
70 | { |
71 | //! Auxiliary value defining the overall number of values in enumeration Graphic3d_TypeOfShadingModel |
13b36bb1 |
72 | Graphic3d_TypeOfShadingModel_NB = Graphic3d_TypeOfShadingModel_PbrFacet + 1 |
992ed6b3 |
73 | }; |
74 | |
c357e426 |
75 | #endif // _Graphic3d_TypeOfShadingModel_HeaderFile |