Как уменьшить задержку при загрузке файлов datasmith во время выполнения в нереальном двигателе?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как уменьшить задержку при загрузке файлов datasmith во время выполнения в нереальном двигателе?

Сообщение Anonymous »

Я испытываю отставание при загрузке файлов datasmith во время выполнения в Unreal Engine с помощью плагина Datasmithruntime. В частности, когда я использую файл загрузки или файл загрузки из узлов Explorer в плагине, загрузка сцены около 100 МБ заставляет программу заморозить за несколько секунд до отображения модели и программы снова становится адаптивным. strong> Фоновые потоки в C ++: < /strong>

I переместил логику загрузки файла в фоновый поток Asynctask < /code>, чтобы избежать блокировки основного потока. Однако задержка сохраняется. После дальнейшего исследования я обнаружил, что, хотя сама загрузка файла происходит в фоновом режиме, конструкция сетей, тел столкновений и обновлений сцен все еще происходит в основном потоке. < /P>
< /li>
[*] узлы Blueprint:

Я также пытался использовать файл загрузки и загрузить файл из Explorer узлов непосредственно в чертепе, но проблема задержки остается. = "Lang-CPP PrettyPrint-Override">void ABlueprintTest::StatrAsyncEvent(
ADatasmithRuntimeActor\* DatasmithRuntimeActor,
const FString& FileName)
{
AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [DatasmithRuntimeActor, FileName]()
{
bool bSuccess = LoadFile(DatasmithRuntimeActor, FileName);

AsyncTask(ENamedThreads::GameThread, [bSuccess]()
{
if (bSuccess)
{
UKismetSystemLibrary::PrintString(nullptr, TEXT("File loaded successfully!"));
}
else
{
UKismetSystemLibrary::PrintString(nullptr, TEXT("Filed to load file!"));
}
});
});

}
< /code>
Когда программа запускает функцию загрузки файла, она не отвечает на несколько секунд. После отображения модели программа возвращается к нормальной жизни. Кажется, что сама загрузка файла не блокирует основной поток, но построение и представление большого количества сетки и тел столкновений. > < /h4>

Как я могу уменьшить или устранить задержку, вызванную конструкцией сетки и обновлений сцены во время загрузки файлов datasmith? < /p>

[*] Можно ли достичь эффекта «загружать и отображать» одновременно », где сцена постепенно отображается при загрузке файла?

Есть ли какие -либо лучшие практики или оптимизации для обработки больших файлов Datasmith во время выполнения? >

Замораживание программы: < /strong>

< /p>
< /li>
модель, отображаемая после заморозки: < /strong>



ol>
< /li>
< /ol>

Подробнее здесь: https://stackoverflow.com/questions/794 ... eal-engine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»