AI 协作日志

学生 Web 实验作品平台

学号:202412211402008 · 来源:ai-log.md

# 实验一 AI协作记录

> 请记录本人真实的AI协作过程。不要只粘贴AI生成结果,应体现自己的判断、测试和核验。

## AI协作1

## 任务3,同一画布绘制多个图元
1.提示词:在同一个canvas上绘制三角形和四边形,使用不同buffer、不同uniform颜色
2.AI回答:WebGL一次drawArrays只能绘制一组图元。画多个物体要:多次创建buffer,依次bindBuffer/bufferData,设置vertexAttribPointer,修改uniform颜色,多次调用drawArrays。每次绘制前更新uColor,就能给不同物体不同颜色。注意变量名要和getAttribLocation/getUniformLocation返回的变量一致,名字写错会报变量未定义。
3.自己理解:render函数每次都会clear画布,然后按顺序绘制。先画三角,再画矩形。
4.操作:定义两组Float32Array顶点数组;分别创建buffer,填充顶点数据;设置vPosition属性;设置uColor;调用drawArrays。
5.现象:画布出现红色三角形、黄色四边形,两个图形分开。
6.结论:多次调用drawArrays就可以在同一张画布绘制多个几何体。每次绘制前,可以修改uniform变量,实现不同颜色。每个几何体可以使用独立缓冲区保存顶点。

---

## AI协作2

## 任务4 顶点颜色插值varying
1. 提示词:实现三角形顶点颜色渐变,使用attribute顶点颜色,varying传递颜色
2. AI回答:
uniform是全局统一值,整个图形同一个颜色。attribute是每个顶点各自携带的数据。varying变量可以把顶点着色器的数据传递到片元着色器,GPU自动在图元内部插值,实现平滑渐变。
需要两套缓冲区:坐标buffer、颜色buffer;颜色使用RGBA四通道。顶点着色器将vColor赋值给varying变量fColor,片元着色器读取fColor输出颜色。
3. 自己理解:
每个顶点可以带独立颜色,三角形内部像素的颜色由三个顶点颜色插值算出。
4. 操作:
定义vertices顶点坐标数组;定义colors数组,每个顶点4个浮点数RGBA。创建颜色buffer,上传颜色数据;获取vColor属性位置,设置vertexAttribPointer(...,4,...),开启属性数组。调用drawArrays绘制三角形。
5. 现象:三角形三个角分别红、绿、蓝,内部颜色平滑过渡。
6. 结论:varying变量用于顶点到片元的数据插值,实现渐变效果。


---

## AI协作3:顶点属性与颜色

### 我的目标

### 提示词

### AI关键回答摘要

### 对照实验

### 实际现象

### 我的解释

### 最终结论