AI 协作日志
学生 Web 实验作品平台
学号:202412211402015 · 来源:ai-log.md
# 实验一 AI协作记录 > 请记录本人真实的AI协作过程。不要只粘贴AI生成结果,应体现自己的判断、测试和核验。 ## AI协作1: 理解gl.vertexAttribPointer()函数 ### 我的目标 在实验中出现了这个函数,由于参数较多,我想要了解每一个参数的含义。 ### 提示词 函数的参数具体形式 ### AI关键回答摘要 WebGL 1.0 中一共 6 个参数 第一个参数含义是attribute 变量的位置(由 getAttribLocation 得到,或 layout(location=) 指定) 第二个参数含义是分量数 第三个参数含义是数据类型 第四个参数含义是是否归一化 第五个参数含义是步长 第六个参数含义是字节偏移 ### 我的判断 第五个和第六个参数我暂时判断不了,但是前四个参数是能结合源代码理解的,例如实验里用的是x和y来定位点,所以分量数都是2。又例如实验里第三个参数是gl.FLOAT,这很明显是数据类型的表达。 ### 验证方法 没有进行具体的验证,只是略微了解,不让自己在看代码时稀里糊涂。 ### 验证结果 ### 修正后的结论 --- ## AI协作2: 程序调试 ### 现象 需要在一个画板上画出一个三角形和一个四边形,实验提示了需要修改vPosition的读取方式。 ### 我的初步判断 只需单独创建一个新的Buffer,vPostion的代码是一样的,所以我就简单的创建了一个Buffer,甚至连vPosition的代码都没有重复。 ### 给AI的提示词 同一个画板上,两个形状和颜色都不同的图形,更改 ### AI给出的关键建议 切换缓存区后要重新vertexAttribPointer,否则读取的还是旧数据。 gl.clear只能调用一次,调用会把所有的图像清空。 ### 我实际进行的测试 在新Buffer下重复了vPosition的三行代码。 ### 测试结果 原本无法显示的四边形正常显示了。 ### 最终原因 就是由于没有重新调用vertexAttribPointer,导致画面只绘画了第一个三角形,而没有绘画四边形。 ### 是否采纳AI建议及理由 采纳了,因为确实解决了我的问题。 ---