Bliss-Shader/shaders/lib/lpv_blocks.glsl

29 lines
663 B
Plaintext
Raw Normal View History

2024-05-02 17:53:49 -04:00
struct LpvBlockData { // 12 x1280 =?
2024-05-02 16:33:55 -04:00
uint MaskWeight; // 4
2024-05-02 14:18:49 -04:00
uint ColorRange; // 4
2024-05-02 17:53:49 -04:00
uint Tint; // 4
2024-05-01 16:32:25 -04:00
};
#ifdef RENDER_SETUP
layout(binding = 0) writeonly buffer lpvBlockData
#else
layout(binding = 0) readonly buffer lpvBlockData
#endif
{
LpvBlockData LpvBlockMap[];
};
2024-05-02 16:33:55 -04:00
2024-05-01 16:32:25 -04:00
uint BuildBlockLpvData(uint mixMask, float mixWeight) {
uint data = uint(saturate(mixWeight) * 255.0);
data = data | (mixMask << 8);
return data;
}
void ParseBlockLpvData(const in uint data, out uint mixMask, out float mixWeight) {
mixWeight = (data & 0xFF) / 255.0;
mixMask = (data >> 8) & 0xFF;
}