You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Added options for sorting transparent objects (port of PR 63040)
This commit is contained in:
@@ -646,6 +646,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) {
|
||||
geom->geometry_instance->set_surface_materials(instance->materials);
|
||||
geom->geometry_instance->set_transform(instance->transform, instance->aabb, instance->transformed_aabb);
|
||||
geom->geometry_instance->set_layer_mask(instance->layer_mask);
|
||||
geom->geometry_instance->set_pivot_data(instance->sorting_offset, instance->use_aabb_center);
|
||||
geom->geometry_instance->set_lod_bias(instance->lod_bias);
|
||||
geom->geometry_instance->set_transparency(instance->transparency);
|
||||
geom->geometry_instance->set_use_baked_light(instance->baked_light);
|
||||
@@ -844,6 +845,20 @@ void RendererSceneCull::instance_set_layer_mask(RID p_instance, uint32_t p_mask)
|
||||
}
|
||||
}
|
||||
|
||||
void RendererSceneCull::instance_set_pivot_data(RID p_instance, float p_sorting_offset, bool p_use_aabb_center) {
|
||||
Instance *instance = instance_owner.get_or_null(p_instance);
|
||||
ERR_FAIL_COND(!instance);
|
||||
|
||||
instance->sorting_offset = p_sorting_offset;
|
||||
instance->use_aabb_center = p_use_aabb_center;
|
||||
|
||||
if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) {
|
||||
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(instance->base_data);
|
||||
ERR_FAIL_NULL(geom->geometry_instance);
|
||||
geom->geometry_instance->set_pivot_data(p_sorting_offset, p_use_aabb_center);
|
||||
}
|
||||
}
|
||||
|
||||
void RendererSceneCull::instance_geometry_set_transparency(RID p_instance, float p_transparency) {
|
||||
Instance *instance = instance_owner.get_or_null(p_instance);
|
||||
ERR_FAIL_COND(!instance);
|
||||
|
||||
Reference in New Issue
Block a user