演習として、GLSL シェーダーを GPU ではなく CPU 経由で実行できるプレーンな c/c++ に変換しようとしています。
c/c++ のデータがピクセルの unsigned int 配列に格納されることを考えると、次の行を単純な 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....]
......