mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-19 11:12:49 +00:00
refactor(ugc): remove the path traced hidden-face method; the renders are the only one
The path tracer that imitated LU Toolbox's Remove Hidden Faces took 17 to 100 times as long as the renders from 42 directions around the model, too heavy to use. It goes with its settings (hsr_method, hsr_samples, hsr_bounces, hsr_sample_spacing, hsr_min_points), its side by side tracing for GPUs and its tests. The renders (UgcRender::VisibleFromAround) remove hidden faces as before that method existed; their size is hsr_resolution (1024), and the memory estimate counts their buffers again. The hidden-face method is no longer a processing option: the dashboard's picker, /reprocessproperty and --make-model take only the ray backend (the occlusion's) and denoising. Options stored before (made_options, process_options, ugc_process_runs, --make-model arguments) that name toolbox or fast still parse; the word is skipped. Check: the settings page has no hsr_method or path settings and has hsr_resolution; /reprocessproperty embree toolbox still works (toolbox ignored); models made with the defaults keep their hashes (UGC tests). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -497,7 +497,7 @@ void SlashCommandHandler::Startup() {
|
||||
|
||||
Command ReprocessPropertyCommand{
|
||||
.help = "Make this property's models again and reload it",
|
||||
.info = "The UGC server makes every model placed on the property you are on again, with the current UGC settings or the processing options given (in any order: builtin, embree or hiprt; toolbox or fast; off or oidn). Once they are made, everyone on the property is sent back into it, so their game loads the new meshes",
|
||||
.info = "The UGC server makes every model placed on the property you are on again, with the current UGC settings or the processing options given (in any order: builtin, embree or hiprt; off or oidn). Once they are made, everyone on the property is sent back into it, so their game loads the new meshes",
|
||||
.aliases = { "reprocessproperty", "reloadpropertymodels" },
|
||||
.handle = DEVGMCommands::ReprocessProperty,
|
||||
.requiredLevel = eGameMasterLevel::DEVELOPER
|
||||
|
||||
@@ -1990,10 +1990,10 @@ namespace DEVGMCommands {
|
||||
ChatPackets::SendSystemMessage(sysAddr, u"You aren't on a property.");
|
||||
return;
|
||||
}
|
||||
// Optional processing options for this make: ray backend, hidden-face method, denoising, in any order
|
||||
// Optional processing options for this make: ray backend and 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')");
|
||||
ChatPackets::SendSystemMessage(sysAddr, u"Usage: /reprocessproperty [builtin|embree|hiprt] [off|oidn] (left out: the UGC settings')");
|
||||
return;
|
||||
}
|
||||
const auto options = UgcProcessOptions::ToString(choice);
|
||||
|
||||
@@ -101,7 +101,7 @@ namespace UgcManifest {
|
||||
// /reprocessproperty: every model placed on the property is made again by the UGC server; once none is waiting
|
||||
// (or after 15 minutes), every player in this world is sent the new mesh checksums and transferred back into it,
|
||||
// so their client loads the property again with the new meshes. Returns how many models were queued.
|
||||
// `options`: the processing options for this make (UgcProcessOptions, e.g. "embree fast"), empty: the UGC settings'
|
||||
// `options`: the processing options for this make (UgcProcessOptions, e.g. "embree oidn"), empty: the UGC settings'
|
||||
size_t ReprocessProperty(LWOOBJID propertyId, const std::string& options = "");
|
||||
|
||||
// A client left (or went back to character select): its waiting requests and pending switches are dropped
|
||||
|
||||
Reference in New Issue
Block a user