You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-20 14:45:44 +00:00
Fixed Timestep Interpolation: MultiMesh
Adds fixed timestep interpolation to multimeshes. Co-authored-by: lawnjelly <lawnjelly@gmail.com>
This commit is contained in:
@@ -426,6 +426,11 @@ public:
|
||||
MULTIMESH_TRANSFORM_3D,
|
||||
};
|
||||
|
||||
enum MultimeshPhysicsInterpolationQuality {
|
||||
MULTIMESH_INTERP_QUALITY_FAST,
|
||||
MULTIMESH_INTERP_QUALITY_HIGH,
|
||||
};
|
||||
|
||||
virtual void multimesh_allocate_data(RID p_multimesh, int p_instances, MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false) = 0;
|
||||
virtual int multimesh_get_instance_count(RID p_multimesh) const = 0;
|
||||
|
||||
@@ -449,6 +454,12 @@ public:
|
||||
virtual void multimesh_set_buffer(RID p_multimesh, const Vector<float> &p_buffer) = 0;
|
||||
virtual Vector<float> multimesh_get_buffer(RID p_multimesh) const = 0;
|
||||
|
||||
// Interpolation.
|
||||
virtual void multimesh_set_buffer_interpolated(RID p_multimesh, const Vector<float> &p_buffer_curr, const Vector<float> &p_buffer_prev) = 0;
|
||||
virtual void multimesh_set_physics_interpolated(RID p_multimesh, bool p_interpolated) = 0;
|
||||
virtual void multimesh_set_physics_interpolation_quality(RID p_multimesh, MultimeshPhysicsInterpolationQuality p_quality) = 0;
|
||||
virtual void multimesh_instance_reset_physics_interpolation(RID p_multimesh, int p_index) = 0;
|
||||
|
||||
virtual void multimesh_set_visible_instances(RID p_multimesh, int p_visible) = 0;
|
||||
virtual int multimesh_get_visible_instances(RID p_multimesh) const = 0;
|
||||
|
||||
@@ -1788,6 +1799,7 @@ VARIANT_ENUM_CAST(RenderingServer::ArrayCustomFormat);
|
||||
VARIANT_ENUM_CAST(RenderingServer::PrimitiveType);
|
||||
VARIANT_ENUM_CAST(RenderingServer::BlendShapeMode);
|
||||
VARIANT_ENUM_CAST(RenderingServer::MultimeshTransformFormat);
|
||||
VARIANT_ENUM_CAST(RenderingServer::MultimeshPhysicsInterpolationQuality);
|
||||
VARIANT_ENUM_CAST(RenderingServer::LightType);
|
||||
VARIANT_ENUM_CAST(RenderingServer::LightParam);
|
||||
VARIANT_ENUM_CAST(RenderingServer::LightBakeMode);
|
||||
|
||||
Reference in New Issue
Block a user