0033661: Data Exchange, Step Import - Tessellated GDTs are not imported
[occt.git] / src / Graphic3d / Graphic3d_TypeOfShadingModel.hxx
CommitLineData
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 21enum 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 69enum
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