Unit CastleRenderOptions

Description

Configure rendering options. The TCastleRenderOptions component configures the rendering at each particular scene, and is usually accessed through TCastleScene.RenderOptions. This unit contains also related types, constants and some variables.

Uses

Overview

Classes, Interfaces, Objects and Records

Name Description
Class TCastleRenderOptions Options that control rendering, available at every scene through TCastleScene.RenderOptions.

Types

TShaderType = (...);
TColorMode = (...);
TToneMapping = (...);
TGammaCorrection = (...);
TShadersRendering = (...) deprecated 'this was only useful with TCastleRenderOptions.Shaders, which is now deprecated in favor of TCastleRenderOptions.PhongShading';
TBumpMapping = (...);
TRenderingMode = (...);
TWireframeEffect = (...);
TShadowSampling = (...);
TAutoMinificationFilter = (...);
TMinificationFilter = minNearest..minLinearMipmapLinear;
TAutoMagnificationFilter = (...);
TMagnificationFilter = magNearest..magLinear;
TBlendingSourceFactor = (...);
TBlendingDestinationFactor = (...);
TBlendingSort = (...);
TCastleRenderOptionsEvent = procedure (const Options: TCastleRenderOptions) of object;
TCastleRenderOptionsClass = class of TCastleRenderOptions;

Constants

ShadowSamplingNames: array [TShadowSampling] of string = ( 'Simple', 'PCF 4', 'PCF 4 Bilinear', 'PCF 16', 'Variance Shadow Maps (Experimental)' );
ShaderTypeName: array [TShaderType] of string = ( 'Vertex', 'Geometry', 'Fragment' );
BumpMappingNames: array [TBumpMapping] of string = ( 'None', 'Basic', 'Parallax', 'Steep Parallax', 'Steep Parallax With Self-Shadowing' );

Variables

LogShadowVolumes: Boolean = false;
GammaCorrection: TGammaCorrection = gcPhysicalMaterial;
ToneMapping: TToneMapping = tmNone;

Description

Types

TShaderType = (...);

Shader types.

Values
  • stVertex
  • stGeometry
  • stFragment
TColorMode = (...);

Type of TAbstractColorNode.Mode.

Values
  • cmReplace
  • cmModulate
TToneMapping = (...);

Type of ToneMapping.

Values
TGammaCorrection = (...);

Type of GammaCorrection. See https://castle-engine.io/manual_gamma_correction.php .

Values
  • gcNone: Never do gamma correction.
  • gcPhysicalMaterial: Gamma correction only for PhysicalMaterial.
  • gcAlways: Always do gamma correction.
TShadersRendering = (...) deprecated 'this was only useful with TCastleRenderOptions.Shaders, which is now deprecated in favor of TCastleRenderOptions.PhongShading';

Warning: this symbol is deprecated: this was only useful with TCastleRenderOptions.Shaders, which is now deprecated in favor of TCastleRenderOptions.PhongShading

 
Values
  • srDisable
  • srWhenRequired
  • srAlways
TBumpMapping = (...);

Possible bump mapping options. Use with TCastleRenderOptions.BumpMapping.

Values
  • bmNone
  • bmBasic
  • bmParallax
  • bmSteepParallax
  • bmSteepParallaxShadowing
TRenderingMode = (...);

Possible values of TCastleRenderOptions.Mode.

Values
  • rmFull: Normal rendering features. Everything is enabled (as long as other TCastleRenderOptions settings allow them).
  • rmSolidColor: Solid color is used for everything. We do not show any color variation, materials, lights, fog, textures on surfaces. We still do back-face culling and depth test. The idea is that we "hit" the same pixels as normal rendering (with the exception of alpha test textures, this mode doesn't set up alpha test for them). But everything has color TCastleRenderOptions.SolidColor.

    This is useful for special tricks.

  • rmDepth: Only the rendering fetures that affect depth buffer work reliably, everything else is undefined (and works as fast as possible). This is suitable if you render only to depth buffer, like for shadow maps.

    It's quite similar to rmSolidColor, except alpha testing must work, so (at least some) textures must be applied over the model.

TWireframeEffect = (...);

Values for TCastleRenderOptions.WireframeEffect.

Generally, two other properties may affect the way wireframe is rendered: TCastleRenderOptions.WireframeColor and TCastleRenderOptions.LineWidth, quite self-explanatory.

Values
TShadowSampling = (...);

Values for TCastleRenderOptions.ShadowSampling.

Values
  • ssSimple: One sample to shadow map.
  • ssPCF4: Percentage Closer Filtering improve shadow maps look, by sampling the depth map a couple of times. They also make shadow more blurry (increase shadow map size to counteract this), and a little slower. They may also introduce new artifacts (due to bad interaction with the "polygon offset" of shadow map).
  • ssPCF4Bilinear
  • ssPCF16
  • ssVarianceShadowMaps: Variance Shadow Maps, see http://www.punkuser.net/vsm/ . This may generally produce superior results, as shadow maps can be then filtered like normal textures (bilinear, mipmaps, anisotropic filtering). So shadows look much nicer from very close and very far distances. However, this requires new GPU, and may cause artifacts on some scenes.
TAutoMinificationFilter = (...);

Texture minification filter (what happens when many texture pixels are squeezed in one screen pixel).

Values
TMinificationFilter = minNearest..minLinearMipmapLinear;
 
TAutoMagnificationFilter = (...);

Texture magnification filter (what happens when a single texture pixel in stretched over many screen pixels).

Values
TMagnificationFilter = magNearest..magLinear;
 
TBlendingSourceFactor = (...);
 
Values
  • bsSrcAlpha
  • bsOneMinusSrcAlpha
  • bsZero
  • bsOne
  • bsDstColor
  • bsSrcColor: As a source factor only since GL 1.4, check GLFeatures.Version_1_4
  • bsDstAlpha
  • bsOneMinusDstColor
  • bsOneMinusSrcColor: As a source factor only since GL 1.4, check GLFeatures.Version_1_4
  • bsOneMinusDstAlpha
  • bsSrcAlphaSaturate
  • bsConstantColor
  • bsOneMinusConstantColor
  • bsConstantAlpha
  • bsOneMinusConstantAlpha
TBlendingDestinationFactor = (...);
 
Values
  • bdSrcAlpha
  • bdOneMinusSrcAlpha
  • bdZero
  • bdOne
  • bdDstColor: As a destination factor only since GL 1.4, check GLFeatures.Version_1_4
  • bdSrcColor
  • bdDstAlpha
  • bdOneMinusDstColor: As a destination factor only since GL 1.4, check GLFeatures.Version_1_4
  • bdOneMinusSrcColor
  • bdOneMinusDstAlpha
  • bdConstantColor
  • bdOneMinusConstantColor
  • bdConstantAlpha
  • bdOneMinusConstantAlpha
TBlendingSort = (...);

Various ways to sort the 3D objects, in particular useful to correctly render the partially-transparent objects.

See also
TCastleRenderOptions.BlendingSort
How to sort the rendered objects using blending (partial transparency).
Values
  • bsNone: Do not sort. Using this for Scene.RenderOptions.BlendingSort is fastest, but will cause artifacts if multiple partially-transparent objects may be visible on top of each other.
  • bs2D: Sort objects by their Z coordinate. Using this for Scene.RenderOptions.BlendingSort is very useful for 2D worlds, with flat 2D objects that have zero (or near-zero) size in the Z axis, and they are moved in the Z axis to specify which is on top for another.

    More precisely, we take the minimum bounding box Z coordinate of two objects. (We don't bother calculating the middle Z coordinate, as we assume that the bounding box is infinitely small along the Z axis.) The one with larger Z coordinate is considered to be closer, this is consistent with the right-handed coordinate system.

    Note that the actual camera position doesn't matter for this sorting. So the 2D object will look OK, even if viewed from an angle, even if viewed from the other side.

  • bs3D: Sort objects by the (3D) distance to the camera. Using this for Scene.RenderOptions.BlendingSort is the best sorting method for 3D scenes with many partially-transparent objects.

    The distance is measured from the middle of the bounding box to the camera posotion.

TCastleRenderOptionsEvent = procedure (const Options: TCastleRenderOptions) of object;
 
TCastleRenderOptionsClass = class of TCastleRenderOptions;
 

Constants

ShadowSamplingNames: array [TShadowSampling] of string = ( 'Simple', 'PCF 4', 'PCF 4 Bilinear', 'PCF 16', 'Variance Shadow Maps (Experimental)' );
 
ShaderTypeName: array [TShaderType] of string = ( 'Vertex', 'Geometry', 'Fragment' );
 
BumpMappingNames: array [TBumpMapping] of string = ( 'None', 'Basic', 'Parallax', 'Steep Parallax', 'Steep Parallax With Self-Shadowing' );
 

Variables

LogShadowVolumes: Boolean = false;

Log shadow volume information. See https://castle-engine.io/manual_log.php about the log.

GammaCorrection: TGammaCorrection = gcPhysicalMaterial;

Gamma correction makes color calculation follow reality better. Use it when you desire more realistic rendering. It changes the colors, and your assets (their colors and textures) need to be prepared with this in mind. See https://castle-engine.io/manual_gamma_correction.php .

ToneMapping: TToneMapping = tmNone;

Change the colors you render, to make them visually better. See https://castle-engine.io/manual_gamma_correction.php .


Generated by PasDoc 0.16.0.