feat(ugc): draw player models' icons from their generated NIF

The icon was rendered from a second mesh built only for it (the icon
renderer's color corrections, no variation, occlusion worked out again). It
is now drawn from the .nif just made, read back with NifFile at LOD 0, so it
shows exactly what the game shows: the color variation, the removed faces and
the lighting baked into the vertex colors (so it adds no occlusion of its
own). icon_correct_colors and icon_color_variation are gone; the camera and
light settings stay. Cars and rockets are drawn as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-27 09:59:29 -05:00
parent 27955d8cc6
commit 76cbbcc4ea
7 changed files with 34 additions and 42 deletions

View File

@@ -27,9 +27,7 @@ namespace UgcJobs {
bool combineTransparent{ false }; // one shape for all transparent bricks, else one per brick (Combine Transparent)
UgcRender::OptimizeOptions optimize; // hidden surface removal
UgcRender::AoOptions ao; // Bake Lighting (AO Only)
UgcRender::IconOptions icon;
bool iconCorrectColors{ true }; // the icon renderer's Correct Colors
float iconColorVariation{ 0.0f }; // percent; its Apply Color Variation is off
UgcRender::IconOptions icon; // player models: drawn from their .nif (LOD 0); its ao is not used
UgcRender::IconOptions modularIcon;
uint32_t maxBricks{}; // a model with more fails; 0: no limit
};