reckfellENGINE

Выбрать физику 3D: Jolt и ReckfellPhysics3D

Как проверить доступность backend, выбрать его до запуска и проверить реальные различия сцены.

На этой странице

Выбрать и проверить

В Project Settings найдите physics/3d/physics_engine, выберите Jolt Physics или ReckfellPhysics3D и перезапустите проект. Настройка помечена как требующая перезапуска; изменение строки через SetSetting не заменяет работающий PhysicsServer3D. DEFAULT выбирает зарегистрированный backend по приоритету сборки. Dummy отключает полноценную физику 3D и не подходит для проверки падающих тел.

В проверенной Windows-сборке доступны DEFAULT, ReckfellPhysics3D, Jolt Physics и Dummy. Другой экспорт/сборка может иметь другой список. Добавьте PhysicsBackendProbe.cs к обычной Entity отдельного уровня, соберите и запустите F6. В Output появятся выбранная строка, зарегистрированные варианты и тип Vector3.X. Неизвестное имя опасно тем, что менеджер может перейти к backend по умолчанию; сначала проверьте список.

PhysicsBackendProbe.cs
C#
using System;
using System.Linq;
using Reckfell;

public partial class PhysicsBackendProbe : Entity
{
    public static string[] AvailableNames()
    {
        foreach (var property in ProjectSettings.Singleton.GetPropertyList())
            if (property["name"].AsString() == "physics/3d/physics_engine")
                return property["hint_string"].AsString().Split(',', StringSplitOptions.RemoveEmptyEntries);
        return Array.Empty<string>();
    }
    public override void _Ready()
    {
        string selected = ProjectSettings.GetSetting("physics/3d/physics_engine").AsString();
        ReckfellApi.Print("physics/3d/physics_engine = " + selected);
        ReckfellApi.Print(string.Join(", ", AvailableNames()));
        ReckfellApi.Print("Vector3.X: " + typeof(Vector3).GetField(nameof(Vector3.X))!.FieldType.Name);
        if (selected != "DEFAULT" && !AvailableNames().Contains(selected))
            ReckfellApi.PrintErr("Selected backend is not in the registered list.");
    }
}

Запустите готовый уровень коллизий 3D отдельно с каждым вариантом. Сравните контакт с полом, импульс, лучевой запрос и фильтры. Именно эти случаи, а также ткань и физические кости, исполняются в отдельных проверочных процессах. Это не тест скорости всех сцен и не обещание одинаковой траектории двух solver.

Параметры не обязаны совпадать

Одинаковый интерфейс классов не делает одинаковыми алгоритмы контактов, ограничения суставов, margins, сон или стоимость памяти. После смены backend проверяйте игровые исходы: проходит ли персонаж в нужный проём, не растягивается ли сустав, правильно ли ловится событие, укладывается ли сцена в бюджет CPU.

ОбластьЧто учитывать в текущей реализации Jolt
Pin jointBias, damping и impulse clamp обычного интерфейса не поддерживаются; неподходящие значения дают предупреждение и игнорируются
Hinge / cone twistЧасть обычных bias/softness/relaxation-параметров игнорируется; используйте поддерживаемые ограничения/пружинные настройки после проверки
MarginsФактический внутренний отступ зависит от формы и collision_margin_fraction; не переносите все числовые значения механически
Контакты кинематических телgenerate_all_kinematic_contacts влияет на генерацию контактов; включение может увеличить работу
Индекс треугольника лучаenable_ray_cast_face_index по умолчанию false и требует перезапуска; не считайте face_index всегда доступным
WorldBoundaryShape3DИспользуется ограниченный размер через world_boundary_shape_size, а не доказательство бесконечного игрового мира
Временная памятьtemporary_memory_buffer_size задаётся в MiB; нехватку и рост пиков проверяйте на своей сцене

Полные пути Jolt-настроек начинаются с physics/jolt_physics_3d/: collisions/collision_margin_fraction, simulation/generate_all_kinematic_contacts, queries/enable_ray_cast_face_index, limits/world_boundary_shape_size, limits/temporary_memory_buffer_size. Сохраняйте настройки вместе с проектом и учитывайте требования перезапуска. Не подавляйте предупреждения, пока не выяснили, какой параметр не работает.

Области, мягкие тела и потоковая физика

В текущих исходниках Jolt есть SoftBody и обработка полей Area для него, включая гравитацию/ветер. Конкретные сигналы, контакты и совмещение полей проверяйте отдельно: наличие деформации ткани не доказывает все взаимодействия Area3D. Пример проверяет закрепления, движение и освобождение ткани на обоих backend.

Доступ к DirectSpaceState и изменения физического состояния выполняйте в подходящей фазе. Смена backend не делает произвольный доступ из рабочего потока безопасным. Контактный импульс, число контактных точек и точные позиции могут различаться; игровые пороги проверяйте на реальных столкновениях. Для швов треугольников, быстрых объектов и больших стопок начните с диагностики, затем измеряйте настройки выбранного solver.

Выбирайте по воспроизводимым требованиям проекта. Здесь не измерялась производительность, не собирались другие платформы и не проверялись все типы суставов/форм. Для воспроизводимой проверки запишите явное имя backend и версию runtime.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.