Rebel Fork Framework
|
"Geometries" is a general term for all components inherited from Drawable
with DRAWABLE_GEOMETRY
flag. "Geometries" also include components that don't inherit Drawable
directly and instead use temporary Drawable
-s internally (like Terrain
that internally spawns TerrainPatch
-es)
These components define actual geometry to be rendered.
For Light Mask, Shadow Mask, and Zone Mask descriptions, see Zone Component.
Property | Description |
---|---|
Is Enabled | If false, is not rendered in any way. |
Is Occluder | Whether to render this geometry on CPU for additional culling. |
Can Be Occluded | Whether this geometry can be occluded by occluders. Disable this flag for geometries with unusual depth test function (always , greater or greaterequal ). |
Cast Shadows | Whether this geometry should casts shadows. |
Draw Distance | Geometry is rendered if distance to it is smaller than Draw Distance. If 0, geometry is always rendered. |
Shadow Distance | Geometry casts shadows if the distance to it is smaller than Shadow Distance. If 0, geometry always casts shadows. |
LOD Bias | Multiplier that affects level of detail used to render geometry. Increase bias to reduce quality. |
View Mask | Geometry is ignored if its View Mask doesn't match View Mask of the Camera . |
Global Illumination | Method used to apply global illumination to the geometry. Note that ambient and background lighting from zones is applied regardless of this setting. |
> None | No additional lighting is applied. |
> Use LightMap | Geometry receives lighting from baked light maps. |
> Blend Light Probes | Geometry receives lighting from light probes cached in GlobalIllumination . |
Reflection Mode | Method used to apply cubemap reflection to the geometry. See Reflection Probe Component for more details. |
> Zone | Geometry receives reflection from best suited Zone . ReflectionProbe s are ignored. |
> Nearest Probe | Geometry receives reflection from best suited ReflectionProbe , or Zone if there is no probes. |
> Blend Probes | Geometry receives reflection from two best suited ReflectionProbe s, or Zone if there is no probes. |
> Blend Probes and Zone | Geometry receives reflection from two best suited ReflectionProbe s or Zone , whichever is more relevant. |
Occlusion LOD Level | LOD used for rendering occluder on CPU. |
Bake Lightmap | Whether to consider this geometry during light baking. |
Scale in Lightmap | Factor used to adjust texel density of lightmaps. If 0, geometry will not be present in lightmaps and will not contribute to indirect lighting. However, it will contribute to direct lighting (i.e. will cast shadows during baking) |
All geometries are expected to fill the array of SourceBatch
-es in Drawable
with batches to be rendered.
All geometries are also expected to implement specific virtual interface.
Function | Expected behavior |
---|---|
Update | Update everything that may affect world-space bounding box of geometry. E.g. apply skeletal animations. |
UpdateBatches | Evaluate geometry batches that will be rendered and determine distances to these batches. |
UpdateGeometry | All other updates here, e.g. anything related to updating GPU buffers. |
GetUpdateGeometryType | Whether the UpdateGeometry should be called and how. |
> None | Don't call. |
> Main Thread | Call in main thread. GPU buffers should be updated from main thread only. |
> Worker Thread | Call in any thread. |
GetNumOccluderTriangles | Return number of triangles that will be rasterized on DrawOcclusion. Ignore if not supported. |
DrawOcclusion | Rasterize geometry to occlusion buffer on CPU. Ignore if not supported. |
OnWorldBoundingBoxUpdate | Recalculate world-space bounding box. |
StaticModel
renders single Model
with applied Material
(s) "as is". May be baked into lightmap.
StaticModelGroup
renders multiple identical StaticModel
-s processed and culled together as single entity. Limited in functionality comparing to an array of StaticModel
-s, use with caution.
Skybox
is a special type of StaticModel
used to render skybox.
AnimatedModel
renders single Model
with optionally applied skeletal and morph animations. Avoid using multiple AnimatedModel
-s on the same node.
BillboardSet
renders arbitrary amount of quads covered with single Material
. Quads may be automatically aligned to the screen.
ParticleEmitter
is a special type of BillboardSet
which manages quads automatically according to particle emitter configuration.
CustomGeometry
is used to easily render geometry generated from code. Suboptimal and limited in functionality comparing to StaticModel
.
DecalSet
renders decals attaches to StaticModel
or AnimatedModel
.
Terrain
renders geometry based on height map texture. May be seamlessly stitched with nearby Terrain
-s. May be baked into lightmap.
RibbonTrail
renders geometry in the shape of tail following owner Node
.
Text3D
renders text in 3D space. Consider using SDF fonts.
Renderer2D
combines all visible Drawables
with type DRAWABLE_GEOMETRY2D
and renders them together in 3D space.