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对上,不然数据读错,渲染就乱。