gpt4 book ai didi

android - OpenGL es 2.0 和 16 位 channel

转载 作者:太空狗 更新时间:2023-10-29 15:13:14 25 4
gpt4 key购买 nike

可以从 Android 设备上的 fragment 着色器返回 16 位值吗?我已将 16 位“x”值转换为 4444:

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;
}

它工作正常,但速度很慢。有没有办法在一个 channel 中传递 16 位颜色(例如红色或 alpha)?

最佳答案

Shader 中有两个函数?如果是这样,你最好用 neon 在 cpu 中计算,然后将返回值提供给 GLSL

为什么不使用 32 位 channel 而不是 16 位 channel ?

关于android - OpenGL es 2.0 和 16 位 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com