Class TMaterialInfo

DescriptionHierarchyFieldsMethodsProperties

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: TVector3Single = (0.2, 0.2, 0.2);
Public internal const DefaultAmbientIntensity = 0.2;
Public internal const DefaultDiffuseColor: TVector3Single = (0.8, 0.8, 0.8);
Public internal const DefaultSpecularColor: TVector3Single = (0, 0, 0);
Public internal const DefaultEmissiveColor: TVector3Single = (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: TVector3Single = (0, 0, 0);
Public internal const DefaultTransmissionColor: TVector3Single = (0, 0, 0);
Public internal const DefaultReflSpecularExp = 1000000;
Public internal const DefaultTransSpecularExp = 1000000;

Methods

Protected procedure CalculateReflSpecular(out V: TVector3Single);
Protected procedure CalculateReflDiffuse(out V: TVector3Single);
Protected procedure CalculateTransSpecular(out V: TVector3Single);
Protected procedure CalculateTransDiffuse(out V: TVector3Single);
Public function AmbientColor: TVector3Single; virtual; abstract;
Public function DiffuseColor: TVector3Single; virtual; abstract;
Public function SpecularColor: TVector3Single; virtual; abstract;
Public function EmissiveColor: TVector3Single; virtual; abstract;
Public function Shininess: Single; virtual; abstract;
Public function ShininessExp: Single;
Public function ReflectionColor: TVector3Single; virtual; abstract;
Public function TransmissionColor: TVector3Single; virtual;
Public function Transparency: Single; virtual; abstract;
Public function ReflSpecular: TVector3Single; virtual; abstract;
Public function ReflDiffuse: TVector3Single; virtual; abstract;
Public function TransSpecular: TVector3Single; virtual; abstract;
Public function TransDiffuse: TVector3Single; virtual; abstract;
Public function ReflSpecularExp: Single; virtual; abstract;
Public function TransSpecularExp: Single; virtual; abstract;

Description

Fields

Public internal const DefaultAmbientColor: TVector3Single = (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: TVector3Single = (0.8, 0.8, 0.8);
 
Public internal const DefaultSpecularColor: TVector3Single = (0, 0, 0);
 
Public internal const DefaultEmissiveColor: TVector3Single = (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: TVector3Single = (0, 0, 0);
 
Public internal const DefaultTransmissionColor: TVector3Single = (0, 0, 0);
 
Public internal const DefaultReflSpecularExp = 1000000;
 
Public internal const DefaultTransSpecularExp = 1000000;
 

Methods

Protected procedure CalculateReflSpecular(out V: TVector3Single);

Calculate physical material properties using standard VRML material fields. See [http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_material_phong_brdf_fields].

These should be used by descendants implementation, for example CalculateReflSpecular should be used by descendant ReflSpecular when material node doesn't specify any value in FdReflSpecular field.

Protected procedure CalculateReflDiffuse(out V: TVector3Single);
 
Protected procedure CalculateTransSpecular(out V: TVector3Single);
 
Protected procedure CalculateTransDiffuse(out V: TVector3Single);
 
Public function AmbientColor: TVector3Single; virtual; abstract;
 
Public function DiffuseColor: TVector3Single; virtual; abstract;
 
Public function SpecularColor: TVector3Single; virtual; abstract;
 
Public function EmissiveColor: TVector3Single; virtual; abstract;
 
Public function Shininess: Single; virtual; abstract;
 
Public function ShininessExp: Single;
 
Public function ReflectionColor: TVector3Single; virtual; abstract;
 
Public function TransmissionColor: TVector3Single; virtual;
 
Public function Transparency: Single; virtual; abstract;
 
Public function ReflSpecular: TVector3Single; virtual; abstract;
 
Public function ReflDiffuse: TVector3Single; virtual; abstract;
 
Public function TransSpecular: TVector3Single; virtual; abstract;
 
Public function TransDiffuse: TVector3Single; virtual; abstract;
 
Public function ReflSpecularExp: Single; virtual; abstract;
 
Public function TransSpecularExp: Single; virtual; abstract;
 

Generated by PasDoc 0.14.0.