作为一个练习,我试图将 GLSL 着色器转换为普通的 c/c++,而不是通过 CPU 而不是 GPU 执行,不管这是否效率低得多和速度慢得多。
鉴于 c/c++ 中的数据将存储到一个无符号整数像素数组中,我如何将下一行转换为将在纯 c 中执行相同操作的内容?
// GLSL
vec2 test = vec2(0.5, 0.2);
vec2 coord = vec2(0.5, 0.5);
vec3 output_color = texture2D(u_texture, coord - test).rgb
我只能做到这一点
// C/C++
short vec2_test_x = 127; // Equivalent to 0.5
short vec2_test_y = 51; // Equivalent to 0.2
short vec2_coord_x = 127; // Equivalent to 0.5
short vec2_coord_y = 127; // Equivalent to 0.5
short color_r, color_g, color_b;
int output_color = pixels[.... No idea how to continue....]
......