Unit CastleSceneCore
Description
Loading and processing of scenes (TCastleSceneCore).
Uses
- SysUtils
- Classes
- Generics.Collections
- Contnrs
- Kraft
- CastleVectors
- CastleBoxes
- CastleTriangles
- X3DFields
- X3DNodes
- CastleClassUtils
- CastleUtils
- CastleShapes
- CastleInternalOctree
- CastleInternalShapeOctree
- CastleKeysMouse
- X3DTime
- CastleCameras
- CastleInternalBaseTriangleOctree
- CastleTimeUtils
- CastleTransform
- CastleInternalShadowMaps
- CastleProjection
- CastleComponentSerialize
- CastleInternalFileMonitor
Overview
Classes, Interfaces, Objects and Records
Name | Description |
---|---|
Class TX3DBindableStack |
Stack of bindable nodes (only the top, bound, node is used for rendering/navigation). |
Class TBackgroundStack |
|
Class TFogStack |
|
Class TNavigationInfoStack |
|
Class TViewpointStack |
|
Class TPlayAnimationParameters |
Parameters to use when playing animation, see TCastleSceneCore.PlayAnimation. |
Class TCastleSceneCore |
Loading and processing of a scene. |
Types
TSceneFreeResource = (...); |
TSceneFreeResources = set of TSceneFreeResource; |
TSceneGeometryChanged = procedure (Scene: TCastleSceneCore; const SomeLocalGeometryChanged: boolean; OnlyShapeChanged: TShape) of object; |
TGeometryChange = (...); |
TStopAnimationEvent = procedure (const Scene: TCastleSceneCore; const Animation: TTimeSensorNode) of object; |
TSceneLoadOption = (...); |
TSceneLoadOptions = set of TSceneLoadOption; |
Variables
LogChanges: boolean = false; |
OptimizeExtensiveTransformations: boolean = false; |
InternalFastTransformUpdate: Boolean = false; |
InternalEnableAnimation: Boolean = true; |
Description
Types
TSceneFreeResource = (...); |
These are various features that may be freed by TCastleSceneCore.FreeResources. Warning: This is for experienced usage of TCastleSceneCore. Everything is explained in detail below, but still — if you have some doubts, or you just don't observe any memory shortage in your program, it's probably best to not use TCastleSceneCore.FreeResources.
Values
|
TSceneFreeResources = set of TSceneFreeResource; |
This item has no description. |
TSceneGeometryChanged = procedure (Scene: TCastleSceneCore; const SomeLocalGeometryChanged: boolean; OnlyShapeChanged: TShape) of object; |
Callback for TCastleSceneCore.OnGeometryChanged. SomeLocalGeometryChanged means that octree, triangles, bounding volumes local to some shape changed (not just e.g. shape transformation). OnlyShapeChanged is meaningful when SomeLocalGeometryChanged = |
TGeometryChange = (...); |
This item has no description. Values
|
TStopAnimationEvent = procedure (const Scene: TCastleSceneCore; const Animation: TTimeSensorNode) of object; |
This item has no description. |
TSceneLoadOption = (...); |
Possible options for TCastleSceneCore.Load. Values
|
TSceneLoadOptions = set of TSceneLoadOption; |
This item has no description. |
Variables
LogChanges: boolean = false; |
Log changes to fields. This debugs what and why happens through TCastleSceneCore.InternalChangedField method and friends, which is central to VRML/X3D dynamic changes and events engine. Meaningful only if you initialized log (see CastleLog unit) by InitializeLog first. |
OptimizeExtensiveTransformations: boolean = false; |
Set this to optimize animating transformations for scenes where you have many transformations (many Transform nodes), and many of them are animated at the same time. Often particularly effective for skeletal animations of characters, 3D and 2D (e.g. from Spine or glTF). This is safe to enable, however in some cases (when you only animate a single / few transformations, and the whole scene is a big tree with many transformation) it may hurt performance more than it helps. But in many practical cases, with skeleton-based animations from Spine or glTF, it helps a lot. See examples/animations/optimize_animations_test for a demo of this. |
InternalFastTransformUpdate: Boolean = false; |
Experimental optimization of Transform animation. It assumes that Transform nodes affect only geometry, i.e. their only effect is moving/rotating/scaling shapes. This is *usually*, but not always, true. In X3D, Transform node can also affect lights, Background, Fog, cameras... TODO: Extend it to include all cases, and use always. See examples/animations/optimize_animations_test for a demo of this. |
InternalEnableAnimation: Boolean = true; |
This item has no description. |
Generated by PasDoc 0.16.0-snapshot.