AI 协作日志
学生 Web 实验作品平台
学号:202412211402021 · 来源:ai-log.md
# 实验一 AI协作记录 > 请记录本人真实的AI协作过程。不要只粘贴AI生成结果,应体现自己的判断、测试和核验。 ## AI协作1:理解数据流 ### 我的目标 ### 提示词 ### AI关键回答摘要 ### 我的判断 ### 验证方法 ### 验证结果 ### 修正后的结论 --- ## AI协作2:程序调试 ### 现象 ### 我的初步判断 ### 给AI的提示词 ### AI给出的关键建议 ### 我实际进行的测试 ### 测试结果 ### 最终原因 ### 是否采纳AI建议及理由 --- ## AI协作3:顶点属性与颜色 ### 我的目标 ### 提示词 ### AI关键回答摘要 ### 对照实验 ### 实际现象 ### 我的解释 ### 最终结论 # 实验一 AI协作记录 > 请记录本人真实的AI协作过程。不要只粘贴AI生成结果,应体现自己的判断、测试和核验。 ## AI协作1:理解数据流 ### 我的目标 搞懂顶点数据怎么从JS传到GPU,以及改了顶点为什么要重新bufferData。 ### 提示词 > WebGL里Float32Array存顶点,bufferData上传。改了JS数组不调用bufferData画面不变,为什么? ### AI关键回答摘要 JS数组在CPU内存,bufferData把数据拷到GPU显存。GPU画图只读显存,两边不自动同步。 ### 我的判断 说得通,CPU和GPU本来就是两套内存。 ### 验证方法 改了vertices坐标后把bufferData注释掉,跑一下看。 ### 验证结果 三角形还是原来的样子,没变化。 ### 修正后的结论 改顶点坐标后必须重新调bufferData上传,不然GPU拿到的还是旧数据。 --- ## AI协作2:程序调试 ### 现象 任务3里三角形画出来了,四边形没出来。 ### 我的初步判断 要么quad数据没传对,要么drawArrays没执行,或者buffer绑错了。 ### 给AI的提示词 > WebGL2第一个图形正常第二个不显示,列最可能的3个原因,别重写代码。 ### AI给出的关键建议 1. 换了新buffer没重新调vertexAttribPointer; 2. drawArrays第三个参数传错了(传成float数不是顶点数); 3. 没bindBuffer,数据传到旧buffer里了。 ### 我实际进行的测试 打印quad.length/2确认是4;在if块里加日志确认进了分支;然后在bindBuffer后补上vertexAttribPointer。 ### 测试结果 补上之后四边形出来了。 ### 最终原因 绑了新buffer但没重新设vertexAttribPointer,属性还指着旧的三角形buffer。 ### 是否采纳AI建议及理由 采纳了,第一条就是问题所在,测试也验证了。 --- ## AI协作3:顶点属性与颜色 ### 我的目标 搞懂vertexAttribPointer的size参数,为什么位置是2颜色是4。 ### 提示词 > WebGL2里vPosition每顶点2个float,vColor每顶点4个float。从GPU怎么读Buffer的角度解释区别。 ### AI关键回答摘要 size是每处理一个顶点从Buffer读几个float。位置读2个自动补成vec4,颜色读4个直接用。size写错数据就读串了。 ### 对照实验 把颜色的size从4改成3,跑一下。 ### 实际现象 颜色全乱了,出现奇怪的杂色。 ### 我的解释 size=3只读了RGB,缺的A就读到下一个顶点的数据去了,整个Buffer读取错位。 ### 最终结论 size必须和属性每顶点占几个float对上,不然数据读错,渲染就乱。