コンピュートシェーダ内でgl_GlobalInvocationIDを取得する場合layoutも設定が必要ですが
layout(local_size_x =124) in; void main() { gl_GlobalInvocationID.x...
このlocal_size_○とゆう値がなんの数なのかわかりません。。渡したい頂点数でもないし、、
設定時のdispatchComputeの引数もわけがわかりません。どうやらこれも単に頂点数とゆうわけでもないらしく、、
ネット上の方が上げていたコンパイルの通るコードでは
//cpp WORK_GROUP_SIZE 256 int n=1024*1024; dispatchCompute(n/WORK_GROUP_SIZE) ///glsl layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
となっていました。(実行環境がOpenFrameWorksですのでglDispatchComputeとは記述が違いますが、glslでのdispatchComputeのアドバイスでも構いません)
あなたの回答
tips
プレビュー