uint PackToonCustomData(in float2 UVs, in float ProfileId, in float Dither)
{
uint U12bits = saturate(UVs.x) * 4095.0f;
uint V12bits = saturate(UVs.y) * 4095.0f;
uint Packed = U12bits;
Packed |= V12bits << 12;
Packed |= (uint(ProfileId) & 0xFF) << 24;
return Packed;
}
UV: 12-bit (0~4095) → ProfileId: 8-bit (0~255) → 总计 32-bit