HeightMapShape3D
Успадковує: Shape3D < Resource < RefCounted < Object
Тривимірна форма карти висоти, яка використовується для фізичного зіткнення.
Опис
Фігура 3D-карти висот, призначена для використання у фізиці. Зазвичай використовується для надання форми для CollisionShape3D. Цей тип найчастіше використовується для місцевості з вершинами, розміщеними в сітці фіксованої ширини. Через природу карти висот її не можна використовувати для моделювання нависів або печер, що вимагало б кількох вершин в одному вертикальному місці. Отвори можна пробити через колізію, призначивши @GDScript.NAN висоті потрібних вершин (це підтримується як у GodotPhysics3D, так і в Jolt Physics). Потім можна вставляти сітки з власною окремою колізією, щоб забезпечити нависи, печери тощо.
Продуктивність: HeightMapShape3D швидше перевіряється на колізії, ніж ConcavePolygonShape3D, але значно повільніше, ніж примітивні фігури, такі як BoxShape3D.
Фігуру зіткнення карти висот також можна створити за допомогою посилання Image:
var heightmap_texture = ResourceLoader.load("res://heightmap_image.exr")
var heightmap_image = heightmap_texture.get_image()
heightmap_image.convert(Image.FORMAT_RF)
var height_min = 0.0
var height_max = 10.0
update_map_data_from_image(heightmap_image, height_min, height_max)
Властивості
|
||
|
||
|
Методи
get_max_height() const |
|
get_min_height() const |
|
void |
update_map_data_from_image(image: Image, height_min: float, height_max: float) |
Описи властивостей
PackedFloat32Array map_data = PackedFloat32Array(0, 0, 0, 0) 🔗
void set_map_data(value: PackedFloat32Array)
PackedFloat32Array get_map_data()
Дані карти висот. Розмір масиву має дорівнювати map_width, помноженому на map_depth.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedFloat32Array for more details.
Кількість вершин у глибині карти висот. Зміна цього призведе до зміни розміру map_data.
Кількість вершин у ширині карти висот. Зміна цього призведе до зміни розміру map_data.
Описи методів
float get_max_height() const 🔗
Повертає найбільше значення висоти, знайдене в map_data. Перераховує лише коли map_data змінюється.
float get_min_height() const 🔗
Повертає найменше значення висоти, знайдене в map_data. Перераховує лише коли map_data змінюється.
void update_map_data_from_image(image: Image, height_min: float, height_max: float) 🔗
Оновлює map_data даними, зчитаними з посилання Image. Автоматично змінює розмір карти висот map_width та map_depth, щоб вона відповідала повній ширині та висоті зображення.
Зображення має бути у форматі Image.FORMAT_RF (32 біти), Image.FORMAT_RH (16 бітів) або Image.FORMAT_R8 (8 бітів).
Кожен піксель зображення зчитується як число з плаваючою комою в діапазоні від 0.0 (чорний піксель) до 1.0 (білий піксель). Це значення діапазону перепризначується на height_min та height_max для формування кінцевого значення висоти.
Примітка: Рекомендується використовувати карту висот з 16-бітними або 32-бітними даними, що зберігаються у форматі EXR або HDR. Використання 8-бітних даних висоти або формату, такого як PNG, який Godot імпортує як 8-бітний, призведе до терасованого рельєфу.