核心原因
gl.getAttribLocation(program, attributeName) 这个函数,第一个参数必须是链接成功的WebGL程序对象。
你现在传给它的不是有效的program,常见几种情况:
1. 着色器编译失败 / 程序链接失败, gl.linkProgram(program) 出错,program是无效对象,但代码没做判断,直接拿去调用 getAttribLocation
2. 变量写错:把 shader (着色器)当成 program (程序)传进去了
3. 异步加载问题:还没等着色器、程序构建完成,就提前执行了 getAttribLocation
4. program变量为 null/undefined
快速排查方案
1. 在 linkProgram 之后,一定要检查链接状态
2. 确认调用写法:
✅ 正确: gl.getAttribLocation(program, 'aPosition')
❌ 错误:把顶点着色器/片元着色器对象传给第一个参数
3. 打印 console.log(program) ,看它是不是 WebGLProgram ,如果是null就说明前面创建/链接出错了
[堕落魔法少女1.0]着色器有问题(有能力调整的看)
上一篇:[堕落魔法少女1.0]不是啊?啥都没有,第一关怎么过啊?
下一篇:下一篇
文章目录
文章作者:我是TT-攻略大全
文章标题:[堕落魔法少女1.0]着色器有问题(有能力调整的看)
文章链接:https://api.ttglapi.cc/post-22930.html
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自我是TT-攻略大全 !
文章标题:[堕落魔法少女1.0]着色器有问题(有能力调整的看)
文章链接:https://api.ttglapi.cc/post-22930.html
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自我是TT-攻略大全 !
设备上扫码阅读