Proposal
Currently, Arcane Odyssey renders everything that’s a model in a ViewportFrame - a model in this situation can be an armor piece, weapon, e.g. something that isn’t a 2D image. This causes intensive lag due to Roblox’s unoptimized ViewportFrame approach, as well as inaccurate anti aliasing compared to the rest of the game.
The solution would be to utilize Photobooth to procedurally generate the icons based on the model’s bounding box[1].
This would not only give a way better result in terms of performance, but also in visuals, as the icons are captured using the same lighting quality as what the player can see.
Questions & Answers
What about situations where a ViewportFrame is required?
In such cases, you can not use Photobooth, as if you want any kind of dynamic rotation, you’d have to use a ViewportFrame.
Luckily, most if not all icons in Arcane Odyssey are completely static.
But if it's static, how are tintable objects going to be... tinted?
This will be done in the manner the creator of Photobooth done it;
This is done by splitting the image into their individual objects, allowing you to recolor specific parts rather than the whole image.
To keep it within the bounds of the icon, with some padding ↩︎