Vulkan GLSL语法错误求助:unexpected IDENTIFIER报错
问题排查:GLSL语法错误
syntax error, unexpected IDENTIFIER, expecting LEFT_PAREN 错误直接出在你调用boxCol函数的代码行:
vec2 it = boxCol(rc, rd, world[i].center, vec3 vnorm); //bug here
错误原因
函数boxCol的第四个参数是输出参数,定义为out vec3 vnorm,调用这类带out/inout参数的函数时,只需要传递变量名,不需要重复声明变量类型。你这里写了vec3 vnorm,编译器会把vec3识别为一个需要调用的标识符(比如函数名),但后面没有跟括号传参,因此触发语法错误。
修正后的代码
// 直接传递变量vnorm,无需加vec3类型声明 vec2 it = boxCol(rc, rd, world[i].center, vnorm);
补充说明
确保你在调用boxCol之前已经正确声明了vnorm变量,比如:
vec3 vnorm; vec2 it = boxCol(rc, rd, world[i].center, vnorm);
内容的提问来源于stack exchange,提问作者Arthur.rs
相关产品推荐
相关产品推荐

