Class TX3DMaterialInfoAbstract

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TX3DMaterialInfoAbstract = class(TObject)

Description

Material information, usable for all VRML/X3D versions.

VRML 1.0 and VRML/X3D >= 2.0 materials work a little differently: VRML 1.0 has arrays of values, e.g. an array of diffuse color, while VRML/X3D >= 2.0 is really a single material, e.g. one diffuse color. This class is designed to hide these differences as much as possible: it provides a simple common interface for getting material properties.

Note that it doesn't try to abstract all material properties — there are some features that are simply fundamentally different in how VRML 1.0 and >= 2.0 materials should be treated, and they cannot be abstracted under a common interface here.

Hierarchy

  • TObject
  • TX3DMaterialInfoAbstract

Overview

Methods

Protected procedure CalculateReflSpecular(var V: TVector3Single);
Protected procedure CalculateReflDiffuse(var V: TVector3Single);
Protected procedure CalculateTransSpecular(var V: TVector3Single);
Protected procedure CalculateTransDiffuse(var V: TVector3Single);
Public function DiffuseColor: TVector3Single; virtual; abstract;
Public function Mirror: Single; virtual; abstract;
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

Methods

Protected procedure CalculateReflSpecular(var 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(var V: TVector3Single);
 
Protected procedure CalculateTransSpecular(var V: TVector3Single);
 
Protected procedure CalculateTransDiffuse(var V: TVector3Single);
 
Public function DiffuseColor: TVector3Single; virtual; abstract;
 
Public function Mirror: Single; virtual; abstract;
 
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.13.0 on 2014-10-26 05:15:17