mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 10:53:44 +00:00
feat(ugc): processing options per make, recorded per model with their times
Staff can make models again with other processing options than the UGC
settings' (ray backend, hidden-face method, denoising) and every make records
what made it, for comparing the options.
- migration mysql 99 / sqlite 82 (ugc_process_options): ugc.process_options
(picked for the next make, cleared once made), ugc.made_options (what made
the current files) and ugc_process_runs (every successful make: options,
wall and CPU time, hidden faces', occlusion's and icon's time, bricks,
triangles before and after)
- IUgc: ResetUgcModelProcessing and ResetPropertyUgcModelProcessing take the
options; PendingModel carries them; RecordUgcModelRun, GetUgcRunSummaries;
list entries have madeOptions and processOptions
- the UGC server applies a job's options over its settings and records the run
- /api/ugc/reprocess takes options ("embree fast oidn"); /api/ugc/options
lists the choices, the settings' defaults and averages per combination
- /reprocessproperty [builtin|embree|hiprt] [toolbox|fast] [off|oidn], any
order, all optional
Check: run the migration on MySQL and SQLite; /reprocessproperty embree fast
on a property, then the models' made_options and ugc_process_runs rows;
/api/ugc/options.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "DEVGMCommands.h"
|
||||
|
||||
#include "UgcKeys.h"
|
||||
#include "UgcManifest.h"
|
||||
#include "PropertyManagementComponent.h"
|
||||
#include "MasterPackets.h"
|
||||
@@ -1989,12 +1990,19 @@ namespace DEVGMCommands {
|
||||
ChatPackets::SendSystemMessage(sysAddr, u"You aren't on a property.");
|
||||
return;
|
||||
}
|
||||
const auto queued = UgcManifest::ReprocessProperty(property->GetId());
|
||||
// Optional processing options for this make: ray backend, hidden-face method, denoising, in any order
|
||||
UgcProcessOptions::Choice choice;
|
||||
if (!UgcProcessOptions::Parse(args, choice)) {
|
||||
ChatPackets::SendSystemMessage(sysAddr, u"Usage: /reprocessproperty [builtin|embree|hiprt] [toolbox|fast] [off|oidn] (left out: the UGC settings')");
|
||||
return;
|
||||
}
|
||||
const auto options = UgcProcessOptions::ToString(choice);
|
||||
const auto queued = UgcManifest::ReprocessProperty(property->GetId(), options);
|
||||
if (queued == 0) {
|
||||
ChatPackets::SendSystemMessage(sysAddr, u"This property has no brick built models.");
|
||||
return;
|
||||
}
|
||||
ChatPackets::SendSystemMessage(sysAddr, GeneralUtils::UTF8ToUTF16("Making " + std::to_string(queued) +
|
||||
" model(s) again. Everyone on the property is reloaded when they're made."));
|
||||
ChatPackets::SendSystemMessage(sysAddr, GeneralUtils::UTF8ToUTF16("Making " + std::to_string(queued) + " model(s) again" +
|
||||
(options.empty() ? "" : " with " + options) + ". Everyone on the property is reloaded when they're made."));
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user