Class TMaterialInfo

Unit

Declaration

type TMaterialInfo = class(TObject)

Description

Material information, that abstracts various ways to define material properties. This hides differences between VRML 1.0 Material, X3D and VRML 2.0 Material and CommonSurfaceShader.

Hierarchy

  • TObject
  • TMaterialInfo

Overview

Fields

Public internal const DefaultAmbientColor: TVector3 = (Data: (0.2, 0.2, 0.2));
Public internal const DefaultAmbientIntensity = 0.2;
Public internal const DefaultDiffuseColor: TVector3 = (Data: (0.8, 0.8, 0.8));
Public internal const DefaultSpecularColor: TVector3 = (Data: (0, 0, 0));
Public internal const DefaultEmissiveColor: TVector3 = (Data: (0, 0, 0));
Public internal const DefaultShininess = 0.2;
Public internal const DefaultShininessExp = DefaultShininess * 128;
Public internal const DefaultTransparency = 0.0;
Public internal const DefaultReflectionColor: TVector3 = (Data: (0, 0, 0));
Public internal const DefaultTransmissionColor: TVector3 = (Data: (0, 0, 0));
Public internal const DefaultReflSpecularExp = 1000000;
Public internal const DefaultTransSpecularExp = 1000000;

Methods

Public constructor Create(ANode: TX3DNode);
Public function AmbientColor: TVector3; virtual; abstract;
Public function DiffuseColor: TVector3; virtual; abstract;
Public function SpecularColor: TVector3; virtual; abstract;
Public function EmissiveColor: TVector3; virtual; abstract;
Public function PureEmissive: boolean;
Public function Shininess: Single; virtual; abstract;
Public function ShininessExp: Single;
Public function ReflectionColor: TVector3; virtual; abstract;
Public function TransmissionColor: TVector3; virtual;
Public function Transparency: Single; virtual; abstract;
Public function Opacity: Single;
Public function ReflSpecular: TVector3; virtual; abstract;
Public function ReflDiffuse: TVector3; virtual; abstract;
Public function TransSpecular: TVector3; virtual; abstract;
Public function TransDiffuse: TVector3; virtual; abstract;
Public function ReflSpecularExp: Single; virtual; abstract;
Public function TransSpecularExp: Single; virtual; abstract;

Properties

Public property Node: TX3DNode read FNode;

Description

Fields

Public internal const DefaultAmbientColor: TVector3 = (Data: (0.2, 0.2, 0.2));

Default material parameters.

They luckily match between all the material-like nodes:

The AmbientColor is an exception, the effective ambientColor for X3D is ambientIntensity * diffuseColor = (0.2 * 0.8, 0.2 * 0.8, 0.2 * 0.8).

Public internal const DefaultAmbientIntensity = 0.2;
 
Public internal const DefaultDiffuseColor: TVector3 = (Data: (0.8, 0.8, 0.8));
 
Public internal const DefaultSpecularColor: TVector3 = (Data: (0, 0, 0));
 
Public internal const DefaultEmissiveColor: TVector3 = (Data: (0, 0, 0));
 
Public internal const DefaultShininess = 0.2;
 
Public internal const DefaultShininessExp = DefaultShininess * 128;
 
Public internal const DefaultTransparency = 0.0;
 
Public internal const DefaultReflectionColor: TVector3 = (Data: (0, 0, 0));
 
Public internal const DefaultTransmissionColor: TVector3 = (Data: (0, 0, 0));
 
Public internal const DefaultReflSpecularExp = 1000000;
 
Public internal const DefaultTransSpecularExp = 1000000;
 

Methods

Public constructor Create(ANode: TX3DNode);
 
Public function AmbientColor: TVector3; virtual; abstract;
 
Public function DiffuseColor: TVector3; virtual; abstract;
 
Public function SpecularColor: TVector3; virtual; abstract;
 
Public function EmissiveColor: TVector3; virtual; abstract;
 
Public function PureEmissive: boolean;

Only the emissiveColor is not black (zero), which means that the material behaves like unlit.

This checks that ambient and diffuse and specular colors are all zero. It's an important information about the material sometimes. We can optimize this case when rendering.

Public function Shininess: Single; virtual; abstract;
 
Public function ShininessExp: Single;

Shininess exponent for Phong lighting equations.

Remember that the X3D Shininess field is "normalized", which means that it has to be multiplied by 128.0 to get actual exponent for lighting equations. This function returns the real exponent (already multiplied by 128.0, if necessary).

Public function ReflectionColor: TVector3; virtual; abstract;
 
Public function TransmissionColor: TVector3; virtual;
 
Public function Transparency: Single; virtual; abstract;
 
Public function Opacity: Single;

Opacity is just 1 - Transparency.

Public function ReflSpecular: TVector3; virtual; abstract;
 
Public function ReflDiffuse: TVector3; virtual; abstract;
 
Public function TransSpecular: TVector3; virtual; abstract;
 
Public function TransDiffuse: TVector3; virtual; abstract;
 
Public function ReflSpecularExp: Single; virtual; abstract;
 
Public function TransSpecularExp: Single; virtual; abstract;
 

Properties

Public property Node: TX3DNode read FNode;

Associated material node (TMaterialNode, TMaterialNode_1, TCommonSurfaceShaderNode).


Generated by PasDoc 0.15.0.