Polygon Crucher SDK - Documentation
Documentation
Loading...
Searching...
No Matches
3DMaterial.h File Reference

The files handles materials definition. More...

Detailed Description

The files handles materials definition.

#include "3DAnimatable.h"
#include "RGBColor.h"
#include "DependentChannels.h"
#include "MaterialMap.h"

Go to the source code of this file.

Classes

class  C3DMaterial
 C3DMaterial is the base class for materials. There is currently two kinds of materials: C3DPbrMaterial or C3DStandardMaterial. Any kind of materials can be converted to C3DStandardMaterial, because many 3D exports only handle this kind of material. Cf. #MATERIALS to know more about materials. More...
 
class  C3DStandardMaterial
 C3DStandardMaterial is a basic material that defines ambient, specular, bump and other coefficients. More...
 
class  C3DPbrMaterial
 C3DPbrMaterial defines a PBR material which is used by different file formats such GLTF or FBX. More...
 
class  CMaterials
 CMaterials stores scene materials. CMaterials::CreateNewMaterial allows to create a material and insert it in the list. More...
 

Macros

#define MATERIAL_GUID_CLASS   MAKE_CUSTOM_ID('M', 'A', 'T', 'R')
 

Typedefs

typedef enum MATERIAL_COPY_FLAGS MATERIAL_COPY_FLAGS
 
typedef enum MATERIAL_FLAGS MATERIAL_FLAGS
 
typedef enum MATERIAL_CLASS MATERIAL_CLASS
 

Enumerations

enum  MATERIAL_COPY_FLAGS { MATERIAL_COPY_DEFAULT = 0x00 , MATERIAL_COPY_KEEP_ID = 0x01 , MATERIAL_COPY_REMOVE_ALL = 0x02 , MATERIAL_COPY_USE_HASH = 0x04 }
 
enum  MATERIAL_FLAGS {
  MATERIAL_NONE = 0x00 , MATERIAL_FLAGS_MASK = 0x000FFFFF , MATERIAL_IS_HIDDEN = 0x01 , MATERIAL_DISABLE_DIFFUSE_MODULATION = 0x02 ,
  MATERIAL_USE_FRONT_CHANNEL_WHEN_BACK_MISSING = 0x1000 , MATERIAL_INVALIDATION_MASK = 0xFFF00000 , MATERIAL_NAME_CHANGED = 0x00100000 , MATERIAL_MAPS_CHANGED = 0x00200000 ,
  MATERIAL_COLORS_CHANGED = 0x00400000 , MATERIAL_OTHERS_CHANGED = 0x00800000 , MATERIAL_MAPS_DOWNLOADED = 0x01000000
}
 
enum  MATERIAL_CLASS { MATERIAL_CLASS_UNDEFINED = 0 , MATERIAL_CLASS_STANDARD = 1 , MATERIAL_CLASS_PBR }
 

Enumeration Type Documentation

◆ MATERIAL_CLASS

C3DMaterial is the base material. C3DMaterial::GetClass allows to cast to the appropriate derived class

Enumerator
MATERIAL_CLASS_STANDARD 

The material is a C3DStandardMaterial.

MATERIAL_CLASS_PBR 

The material is a C3DPbrMaterial.

◆ MATERIAL_COPY_FLAGS

These flags give a way to control material copy

◆ MATERIAL_FLAGS

Flags defining different material properties

Enumerator
MATERIAL_DISABLE_DIFFUSE_MODULATION 

This means that the diffuse color has no effect on texturing (does not modulate texture)

MATERIAL_USE_FRONT_CHANNEL_WHEN_BACK_MISSING 

For the material maps, use the front UV on the back side (the flag is not active if front & back materials are defined or if back channel exists). The flag requires the object context and is taken into account in GetChannelID(CGeomInfo *info... for example.