Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
GPUParticlesCollisionSDF3D
Успадковує: GPUParticlesCollision3D < VisualInstance3D < Node3D < Node < Object
Запечений підписаний дистанційний поле 3D форма зіткнення, що впливає на GPUParticles3D вершини.
Опис
Запечена форма зіткнення 3D-частинок поля відстані зі знаком, що впливає на вузли GPUParticles3D.
Поля відстані зі знаком (SDF) дозволяють ефективно представляти приблизні форми зіткнень для опуклих та увігнутих об'єктів будь-якої форми. Це гнучкіше, ніж GPUParticlesCollisionHeightField3D, але вимагає кроку запікання.
Запікання: Текстуру поля відстані зі знаком можна запекти, вибравши вузол GPUParticlesCollisionSDF3D у редакторі, а потім натиснувши Запікати SDF у верхній частині 3D-огляду. Будь-які видимі MeshInstance3D у межах size будуть враховані для запікання, незалежно від їхнього GeometryInstance3D.gi_mode елемента.
Примітка: Запікання texture GPUParticlesCollisionSDF3D можливе лише в редакторі, оскільки немає методу запікання, доступного для використання в експортованих проектах. Однак, все ще можна завантажити попередньо випечені Texture3D у властивість texture в експортованому проєкті.
Примітка: ParticleProcessMaterial.collision_mode має бути ParticleProcessMaterial.COLLISION_RIGID або ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT у матеріалі процесу GPUParticles3D, щоб колізія працювала.
Примітка: Колізія частинок впливає лише на GPUParticles3D, а не на CPUParticles3D.
Властивості
|
||
|
||
Vector3 |
|
|
Texture3D |
||
|
Методи
get_bake_mask_value(layer_number: int) const |
|
void |
set_bake_mask_value(layer_number: int, value: bool) |
Переліки
enum Resolution: 🔗
Resolution RESOLUTION_16 = 0
Bake a 16×16×16 підписаний поле відстані. Це найшвидший варіант, але і найменш точний.
Resolution RESOLUTION_32 = 1
Bake a 32×32×32 підписано поле відстані.
Resolution RESOLUTION_64 = 2
Випікайте поле відстані зі знаком 64×64×64.
Resolution RESOLUTION_128 = 3
Випікайте поле відстані зі знаком 128×128×128.
Resolution RESOLUTION_256 = 4
Випікайте поле відстані зі знаком 256×256×256.
Resolution RESOLUTION_512 = 5
Випікайте поле відстані зі знаком 512×512×512. Це найповільніший, але і найточніший варіант.
Resolution RESOLUTION_MAX = 6
Представляє розмір переліку Resolution.
Описи властивостей
Візуальні шари для обліку при випіканні зіткнень SDF. Тільки MeshInstance3D, чия u.layers матч з цим bake_mask буде включений в сформований зіткнення частинок SDF. За замовчуванням всі об'єкти враховуються для випікання частинок SDF.
Resolution resolution = 2 🔗
void set_resolution(value: Resolution)
Resolution get_resolution()
Випікаєте дозвіл на використання для підписаного поля відстані texture. Текстура повинна бути запечена ще раз для зміни майна resolution. Вищі дозволи мають більш високу вартість виконання і приймають більше часу на випікання. Більшість дозволів також призводить до збільшення пряженої текстури, що призводить до збільшення вимог VRAM і простору зберігання. Щоб поліпшити продуктивність і зменшити час випікання, скористайтеся найнижчою роздільною здатністю, можливою для об'єкта, який ви представляєте зіткнення.
Vector3 size = Vector3(2, 2, 2) 🔗
void set_size(value: Vector3)
Vector3 get_size()
Розмір SDF в 3D блоках. Для поліпшення якості SDF, розмір size слід встановити якомога меншим за умови покриття деталей сцени вам потрібно.
Texture3D texture 🔗
void set_texture(value: Texture3D)
Texture3D get_texture()
3D текстура, що представляє собою підписане поле відстані.
Товщина форми зіткнення. На відміну від інших комірок частинок, GPUParticlesCollisionSDF3D фактично порожня на внутрішній стороні. thickness може бути збільшена для запобігання частинок з тунелю через форму зіткнення на високих швидкостях, або коли переміщається [ГППППЧ-СхідникиCollisionSDF3D.
Описи методів
bool get_bake_mask_value(layer_number: int) const 🔗
Повертає, чи увімкнено вказаний шар bake_mask, якщо задано layer_number значення від 1 до 32.
void set_bake_mask_value(layer_number: int, value: bool) 🔗
На основі значення параметра value вмикає або вимикає вказаний шар у bake_mask, маючи значення параметра layer_number від 1 до 32.