Set RGB565+Alpha: ByName, Reading from Targeted JSON Pointer


using Targeted JSON Pointer..

DX9 Compatible Shader Needed
ASTER::ACTION::ObjectControl::Set RGB565 + Alpha Coefficient; ByName, using Targeted JSON Pointer

Changing the RGBA values of an instance targeting a motion group already registered in the controller.

Application Graphics Mode Settings

The graphics mode of the application is set to 16 Million colors (24-bit color).

There is another command that only changes the Alpha (transparency) value without changing the RGB values.


RGB565 Format

Based on the CF25 specification, the RGB values are set in RGB565 Format (16-Bit RGB).

Alpha is 8 bits, so the final RGBA value fits into a 32-bit unsigned integer (DWORD).

Color Bit Max Colour Depth
Red (R) 5 bit 2^5 - 1 = 31 levels
Green (G) 6 bit 2^6 - 1 = 63 levels
Blue (B) 5 bit 2^5 - 1 = 31 levels
Alpha (A) 8 bit 2^8 - 1 = 255 levels

The table above calculates the maximum value for each RGBA color channel.

Generally, human eyes can distinguish green more accurately than red or blue. Therefore, allocating more bits to green improves color rendering accuracy.

RGB565 does not inherently include Alpha, so Alpha is calculated separately at 8 bits.


Specification Limitation

The maximum value for RGB565 + Alpha is 0xFF1F3F1F (which is 4,278,257,167 in decimal), so it fits within the upper limit of a DWORD (32-bit unsigned int). However, it exceeds the range of a 32-bit Signed int handled by CF25 (-2,147,483,648 to 2,147,483,647). Therefore, RGBA values cannot be sent directly to the extension from CF25’s Expression Editor.

To solve this issue, bypass CF25’s expression and directly pass the RGBA values specified by the Targeted JSON Pointer to ASTER.


Data Types That Can Be Sent

RGBA values can be specified using numbers stored in JSON, stringified HEX (hexadecimal) values, or arrays that meet the reading format specifications.

Types Specifications Example Values
unsigned int DWORD 6619104
HEX String "0x64FFE0"
Array 1D-Array [255,255,0,100]
{
    "colour": {
        "rgba": 6619104,
        "hex": "0x64FFE0",
        "arr": [255,255,0,100],
        "RGB565_255_254_000_000": 65472,
        "RGB565_255_255_255_255": 65535,
        "RGB565_255_255_000_100": 6619104,
        "RGB565_255_000_000_100": 6617088,
        "hex_6617088": "0x64F800"
    }
}

ASTER will automatically determine and process the method of value conversion based on the data type being read.

No security measures have been implemented, so if an invalid value is inputted, the application will crash with a critical error.

Arrays are written in RGBA8888 format and include a downscaling process to RGB565 after sending, making it the most intensive process.


Parameter

Specification of the motion group name.

If there are two or more registered motion groups, you can set the parameter for the corresponding group by specifying the group name.

Parameter Example Description
"ExMotion1" Setting the parameter for a specified group name.
"" Send an empty string, targeting all registered motion groups.

If you send an empty string without specifying the group name, all currently registered motion groups will be targeted.