Class TFogNode

Unit

Declaration

type TFogNode = class(TAbstractBindableNode)

Description

Simulate atmospheric fog effects (for the whole scene) by blending with the fog colour, based on the distance from the viewer.

Hierarchy

Overview

Methods

Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;
Public function TransformationChange: TNodeTransformationChange; override;
Public function FogTypeOrNone: TFogTypeOrNone;
Public procedure ApplyFog(var Color: TVector3; const Position, VertexPos: TVector3; const AFogType: TFogTypeOrNone);
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;

Properties

Public property FdColor: TSFColor read FFdColor;
Public property Color: TCastleColorRGB read GetColor write SetColor;
Public property FdFogType: TSFStringEnum read FFdFogType;
Public property FogType: TFogType read GetFogType write SetFogType;
Public property FdVisibilityRange: TSFFloat read FFdVisibilityRange;
Public property VisibilityRange: Single read GetVisibilityRange write SetVisibilityRange;
Public property FdVolumetric: TSFBool read FFdVolumetric;
Public property Volumetric: Boolean read GetVolumetric write SetVolumetric;
Public property FdVolumetricDirection: TSFVec3f read FFdVolumetricDirection;
Public property VolumetricDirection: TVector3 read GetVolumetricDirection write SetVolumetricDirection;
Public property FdVolumetricVisibilityStart: TSFFloat read FFdVolumetricVisibilityStart;
Public property VolumetricVisibilityStart: Single read GetVolumetricVisibilityStart write SetVolumetricVisibilityStart;

Description

Methods

Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;

This item has no description. Showing description inherited from TX3DNode.Create.

Constructor. Initializes various properties:

  • Name, BaseUrl are initialized from given parameters.

  • The Fields, Events lists are filled in every descendant, to have all the fields/events defined by the specification.

  • DefaultContainerField, and other node-specific stuff, is filled in descendants. This is actually implemented in CreateNode, that is called at the end of this constructor.

Public function TransformationChange: TNodeTransformationChange; override;

This item has no description.

Public function FogTypeOrNone: TFogTypeOrNone;

Fog type, but may also return ftNone if we are Nil (checks Self <> nil) or visibilityRange = 0.

Public procedure ApplyFog(var Color: TVector3; const Position, VertexPos: TVector3; const AFogType: TFogTypeOrNone);

Apply fog to the color of the vertex.

This can be used by software renderers (ray-tracers etc.) to calculate pixel color following VRML/X3D specifications. After all the lighting is summed up (see TX3DGraphTraverseState.Emission and TLightInstance.Contribution), process color by this method to apply fog.

Does nothing if AFogType = ftNone. In this special case, it's also allowed to call this on Nil instance.

Public procedure CreateNode; override;

Create node fields and events.

Public class function ClassX3DType: String; override;

This item has no description. Showing description inherited from TX3DNode.ClassX3DType.

Node type name in VRML/X3D, for this class. Normal VRML/X3D node classes should override this to return something non-empty, and then X3DType automatically will return the same value.

Empty for classes that don't have a hardcoded VRML/X3D node name, like a special TX3DUnknownNode. Such special classes should override then X3DType to return actual non-empty name there.

You usually should call X3DType. The only use of this method is that it works on classes (it's "class function"), without needing at actual instance.

Properties

Public property FdColor: TSFColor read FFdColor;

Internal wrapper for property Color. This wrapper API may change, we advise to access simpler Color instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property Color: TCastleColorRGB read GetColor write SetColor;

This item has no description.

Public property FdFogType: TSFStringEnum read FFdFogType;

Internal wrapper for property FogType. This wrapper API may change, we advise to access simpler FogType instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property FogType: TFogType read GetFogType write SetFogType;

This item has no description.

Public property FdVisibilityRange: TSFFloat read FFdVisibilityRange;

Internal wrapper for property VisibilityRange. This wrapper API may change, we advise to access simpler VisibilityRange instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property VisibilityRange: Single read GetVisibilityRange write SetVisibilityRange;

This item has no description.

Public property FdVolumetric: TSFBool read FFdVolumetric;

Internal wrapper for property Volumetric. This wrapper API may change, we advise to access simpler Volumetric instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property Volumetric: Boolean read GetVolumetric write SetVolumetric;

Activate volumetric fog, see https://castle-engine.io/x3d_extensions.php

Public property FdVolumetricDirection: TSFVec3f read FFdVolumetricDirection;

Internal wrapper for property VolumetricDirection. This wrapper API may change, we advise to access simpler VolumetricDirection instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property VolumetricDirection: TVector3 read GetVolumetricDirection write SetVolumetricDirection;

This item has no description.

Public property FdVolumetricVisibilityStart: TSFFloat read FFdVolumetricVisibilityStart;

Internal wrapper for property VolumetricVisibilityStart. This wrapper API may change, we advise to access simpler VolumetricVisibilityStart instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property VolumetricVisibilityStart: Single read GetVolumetricVisibilityStart write SetVolumetricVisibilityStart;

This item has no description.


Generated by PasDoc 0.16.0-snapshot.