XboxChaos / Assembly

Multi-Generation Blam Engine Research Tool
http://www.xboxchaos.com/
GNU General Public License v3.0
224 stars 95 forks source link

Colorf Discrepancy #298

Closed theHostileNegotiator closed 3 years ago

theHostileNegotiator commented 4 years ago

Colorf present values that are not representative of the actual float values. For example in H2, needler projectile, using colorf, the Hex code of the Color Lower Bound is CA47EA. Using float values (Using point3 for easy reading), multiplying by 255 and converting to hex results in 9710D1. image image

This is reinforced by the values in H2Guerilla image image

Lord-Zedd commented 4 years ago

So this is a tricky one. Assembly used to multiply by 255, but I found in later games this did not appear to be the case, with them instead opting for scRGB. https://twitter.com/zeddikins/status/1186426511148097536 While its certainly possible that H2 doesn't do that, I'll see how things look ingame.

theHostileNegotiator commented 4 years ago

OK I noticed with the Needler projectile throughout all games have the same color in that function block, but that could be leftover. When looking at the Elite Bipd tag in Halo 3, the color seems to be accurate to the in game result as just multiplying by 255 made it seem very dark. Then looking back at the Elite tag in Halo 2, the Major's armor would suggest that it is orange when it is red in game. So as you said, the scRGB it's something for the later games, H3 and onwards, while Halo 2 and 1 just multiplies the float values by 255.

theHostileNegotiator commented 4 years ago

Although comming back to this point, it is possible that some things don't use scRGB. Looking at the Reach subtitles, it just multiplies by 255. Or maybe it's only Halo 3 that uses scRGB The image below with Assembly Hex on the left and the float x255 on the left, you can barely see that the scRGB is not representative of the subtitle color image image