BIank Posted February 22, 2021 Posted February 22, 2021 As an avid user of social kiosks, I found myself utilizing a tool made by SKay to convert colors to their closest possible representation in APB HSL format. Unfortunately the site has been down for a while, so I created a tool based off of the one which we all loved. The tool is accessible by a direct URL here: apb.social/apbhsl This can also be accessed on the main site in the navigation bar. Instructions: Click the BIG BOX to open a color picker. You can manually choose a color, or input a value in the module. Once a color is chosen, the APB HSL values will automatically adjust. The in-game color will be reflected on the characters shirt. Thank you to SKay who made the original below: 7 Quote
BIank Posted February 23, 2021 Author Posted February 23, 2021 16 hours ago, InkieTheSauzeGod said: Blank with another banger Very kind words man, thank you so much. 1 Quote
SKay Posted April 18, 2021 Posted April 18, 2021 (edited) I approve of this. I'll clean up the source code that I still have on hand and publish it on a GitHub or something tomorrow or Tuesday. Still works but the MEAN stack I was using is probably a year old at this point. Actually wait: I disapprove of this. EDIT: The original description is a load of wallop, so mindful of that, here's my updated description: "The APB HSL System is a method of colour reproduction using a subset of the HSL colour reproduction standard The standard HSL system is a representation of colour using Hue, Saturation and Lightness to achieve a specific colour. However, as the APB HSL system is a reduced value subset of standard HSL, the values are condensed down to bands of values, which means that true colour reproduction for most colours is just out of the question. Take for instance a greyscale image in your favourite image editor, and shrink and expand it several times (this mostly happens in Paint which does not retain sub-pixel data). You will see a lot of colour banding, and this is how APB HSL works. Normally the HSL system can accept 3.6 million values for colour (360x100x100), however the APB system only accepts 4096 colours (This would be 32x8x16). This colour banding reduces the likelihood of 100% accurate colour reproduction to almost zero, due to the loss of 3+ million potential colour values. This can be circumvented by using opacity in game, but it would be outside the scope for this tool. The calculations are: int[] calcHSL (int& colour) { // Assume colour is 0xFFFFFF return [ std::round(convert_to_hsl(*colour, "h") / (360/32)), // h std::round(convert_to_hsl(*colour, "s") / (100/8)), // s std::round(convert_to_hsl(*colour, "l") / (100/16)) // l ] } This allows for a massive reduction in the potential cost of texture memory being mapped and used (APB already is hitting a wall on the current engine with how much memory it can keep in use at one time). 4096/3600000 = 1.13% of the original footprint, or a potential memory saving of 98.87% from what it could be. However you lose fidelity in the amount of colours at your disposal, and it can lead to a fruitless search for one particular shade of pink, or purple, or red, or green. It can get close, but it can't ever truly get there." Edited April 19, 2021 by SKay Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.