3
안드로이드 장치의 조각 셰이더에서 16 비트 값을 반환 할 수 있습니까? 내가 16 비트 변환이 변환을했습니다 4444에 가치를 "X"OpenGL es 2.0 및 16 비트 채널
vec4 convertToVec4(float x)
{
int iX = int(65535.0 * x);
int r = (iX/(0x1000));
int g = (iX/(0x100)) - r*0x10;
int b = (iX/(0x10)) - (r*0x100 + g*0x10);
int a = (iX) - (r*0x1000 + g*0x100 + b*0x10);
return vec4(float(r)/15.0, float(g)/15.0, float(b)/15.0, float(a)/15.0);
}
다시 4444 16 비트를 "X"얻을 :
float getFloat(vec4 v)
{
vec4 col = v * 15.0;
int sum = int(col.r*4096.0) + int(col.g*256.0) + int(col.b*16.0) + int(col.a);
return float(sum)/65535.0;
}
그것은 잘 작동하지만입니다 아주 느린. 16 비트 색상을 한 채널 (예 : 빨간색 또는 알파)로 전달할 수 있습니까?