GPUParticlesCollisionHeightField3D
A real-time heightmap-shaped 3D particle collision shape affecting GPUParticles3D
nodes.
class GPUParticlesCollisionHeightField3D
A real-time heightmap-shaped 3D particle collision shape affecting GPUParticles3D
nodes.
Heightmap shapes allow for efficiently representing collisions for convex and concave objects with a single “floor” (such as terrain). This is less flexible than GPUParticlesCollisionSDF3D
, but it doesn’t require a baking step.
GPUParticlesCollisionHeightField3D
can also be regenerated in real-time when it is moved, when the camera moves, or even continuously. This makes GPUParticlesCollisionHeightField3D
a good choice for weather effects such as rain and snow and games with highly dynamic geometry. However, this class is limited since heightmaps cannot represent overhangs (e.g. indoors or caves).
Superclasses
class GPUParticlesCollision3D
Abstract base class for 3D particle collision shapes affecting
GPUParticles3D
nodes.
Citizens in SwiftGodot
Conformances
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable
A type that can be hashed into a
Hasher
to produce an integer hash value.protocol Identifiable<ID>
A class of types whose instances hold the value of an entity with stable identity.
protocol VariantRepresentable
Types that conform to VariantRepresentable can be stored directly in
Variant
with no conversion. These include all of the Variant types from Godot (for exampleGString
,Rect
,Plane
), Godot objects (those that subclass SwiftGodot.Object) as well as the built-in Swift types UInt8, Int64 and Double.protocol VariantStorable
Types that conform to VariantStorable can be stored in a Variant and can be extracted back out of a Variant.
Types
Type members
Instance members
var followCameraEnabled: Bool
If
true
, theGPUParticlesCollisionHeightField3D
will follow the current camera in global space. TheGPUParticlesCollisionHeightField3D
does not need to be a child of theCamera3D
node for this to work.var resolution: GPUParticlesCollisionHeightField3D.Resolution
Higher resolutions can represent small details more accurately in large scenes, at the cost of lower performance. If
updateMode
is .always, consider using the lowest resolution possible.var size: Vector3
The collision heightmap’s size in 3D units. To improve heightmap quality,
size
should be set as small as possible while covering the parts of the scene you need.var updateMode: GPUParticlesCollisionHeightField3D.UpdateMode
The update policy to use for the generated heightmap.