Aaron Kimbrell
63bfaf545e
fix(ugc): each glitter brick gets its own fleck pattern
...
Every glitter brick had the same flecks in the same places: the UVs were
the vertex positions projected on an axis plane, so bricks a whole tile
apart (and every brick of the same shape at the same spot in its own
model) looked identical. Each brick now has a number of its own
(UgcGlitter::BrickSeed, from the model's id and the brick's index, kept
per vertex in Mesh::brickSeeds) that turns the projection by an angle
and moves it by an offset under a tile, differently for each axis
plane. A model made again gets the same patterns; every LOD of a brick
the same one. The icon now draws the flecks on the UVs the .nif has
(Mesh::uvs read back by FromNif). New setting glitter_random (1; 0 puts
the same pattern on every brick as before). Non-glitter models are
byte-identical (hash tests unchanged).
Check in game: reprocess a model with several glitter bricks of the
same shape; the fleck patterns differ from brick to brick.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-29 00:40:09 -05:00
..
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:30:52 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:47 -05:00
2026-09-28 22:30:47 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-29 00:21:18 -05:00
2026-09-29 00:21:18 -05:00
2026-09-29 00:21:18 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:59 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:21 -05:00
2026-09-28 22:30:51 -05:00
2026-09-28 22:31:23 -05:00
2026-09-28 22:30:52 -05:00
2026-09-28 22:30:52 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 23:44:44 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:02 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:47 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:11 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:14 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:47 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:23 -05:00
2026-09-28 22:31:23 -05:00
2026-09-28 22:31:23 -05:00
2026-09-28 22:31:11 -05:00
2026-09-28 22:31:07 -05:00
2026-09-28 22:31:07 -05:00
2026-09-28 23:44:44 -05:00
2026-09-28 23:44:44 -05:00
2026-09-28 22:31:02 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:51 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:10 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:52 -05:00
2026-09-28 22:30:52 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:17 -05:00
2026-09-28 22:31:17 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:31:25 -05:00
2026-09-28 22:31:18 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:10 -05:00
2026-09-28 22:31:05 -05:00
2026-09-28 22:31:23 -05:00
2026-09-29 00:40:09 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:03 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:51 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:05 -05:00
2026-09-28 22:31:05 -05:00
2026-09-28 22:31:02 -05:00
2026-09-28 22:31:02 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:31:13 -05:00
2026-09-28 22:31:11 -05:00
2026-09-28 22:31:11 -05:00
2026-09-28 22:31:12 -05:00
2026-09-28 22:31:12 -05:00
2026-09-28 22:31:12 -05:00
2026-09-28 22:31:25 -05:00
2026-09-28 22:31:21 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:50 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:48 -05:00
2026-09-28 22:30:48 -05:00
2026-09-28 22:30:51 -05:00
2026-09-28 22:30:51 -05:00
2026-09-28 22:31:23 -05:00
2026-09-28 22:30:51 -05:00
2026-09-28 22:30:51 -05:00
2026-09-28 22:31:05 -05:00
2026-09-28 22:30:43 -05:00
2026-09-28 22:30:43 -05:00