相关疑难解决方法(0)

我如何在glsl中执行位操作

如何在glsl中执行位操作?

使用常规的C风格的位运算符|,&,^,或!不能正常工作.

glsl bitwise-operators

8
推荐指数
2
解决办法
1万
查看次数

在glsl中将rgb值解码为单个float而不进行位移

我目前正忙于webgl中的延迟着色,我需要将3个整数值(在[0..256] = 256 ^ 3范围内)解码为单个32位浮点数并稍后对其进行编码.因为这是针对WebGL的,所以必须在没有按位操作的情况下完成.精确度对我来说并不重要(但我认为可以实现).

这是我所拥有的,但我认为这是错误的,因为我存储编码值的纹理的精度.

float packColor(vec3 color) {   return (color.r + (color.g*256.) + (color.b*256.*256.)) / (256.*256.*256.); }

vec3 decodeColor(float f) { 
float b = floor(f * 256.0);
float g = floor(f * 65536.0) - (b*256.);
float r = (floor(f * 16777216.0) - (b*65536.)) - (g*256.);
return vec3(r, g, b)/ 256.0;//vec3(r, g, b) / 256.0;  }
Run Code Online (Sandbox Code Playgroud)

谢谢..

floating-point int rgb encode webgl

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

bitwise-operators ×1

encode ×1

floating-point ×1

glsl ×1

int ×1

rgb ×1

webgl ×1