AI 协作日志
学生 Web 实验作品平台
学号:202412211401011 · 来源:ai-log.md
# 实验一 AI协作记录 > 请记录本人真实的AI协作过程。不要只粘贴AI生成结果,应体现自己的判断、测试和核验。 ## AI协作1:理解数据流 ### 我的目标 搞明白 canvas、gl、viewport、clearColor、initShader、useProgram 都是干嘛的。 ### 提示词 "viewport,clearcolor,initshader,useprogram都是干什么的" ### AI关键回答摘要 canvas 是画布,gl 是从 canvas 拿到的 WebGL 上下文,所有绘制都靠它。viewport 决定画到画布哪块;clearColor 只设背景色,真正清屏还要 gl.clear;initShader 不是 WebGL 自带的,是教程封装的函数,用来编译着色器、建 program;useProgram 是告诉 WebGL 接下来用哪个着色器。 ### 我的判断 和代码里看到的结构对得上。initShader 文件里没定义却被调用,说明是外部库来的,这点 AI 说对了。 ### 验证方法 F12 打开 Console 输入 typeof initShaders;把 clearColor 注释掉看背景变不变。 ### 验证结果 initShaders 返回 "function",确实来自外部库。去掉 clearColor 后背景变了,说明它只是设状态。 ### 修正后的结论 这几个都是画之前的准备。真正画图形的是 drawArrays。 --- ## AI协作2:程序调试 ### 现象 三角形出不来,四边形直接没影。 ### 我的初步判断 以为顶点坐标写错了。 ### 给AI的提示词 把代码贴过去问"哪里有问题"。 ### AI给出的关键建议 AI 找出四个问题:vertices 没声明;getUniform4f 应该是 uniform4f;三角形三点共线,画不出来;gl.TRIANGLES_STRIP 拼错了,应该是 gl.TRIANGLE_STRIP。 ### 我实际进行的测试 一条一条改,改一处刷一次。 ### 测试结果 改完前两个不报错了,三角形出来但扁得像条线,换顶点后正常。四边形改对 mode 后出现在右边。 ### 最终原因 最要命的是 vertices 没定义和 getUniform4f 写错,这俩让脚本直接停。四边形不显示是 mode 拼错。三角形扁的是三点共线。 ### 是否采纳AI建议及理由 采纳了。每条都在浏览器里验过,尤其 TRIANGLES_STRIP 这个拼写错误我自己看了几遍都没发现。 --- ## AI协作3:顶点属性与颜色 给三角形三个顶点设不同颜色,让颜色在内部过渡。 ### 我的目标 "这个怎么填",把带 TODO 的文件贴过去。 ### 提示词 ### AI关键回答摘要 位置 buffer 每顶点读 2 个 float,颜色 buffer 每顶点读 4 个 float,两个都要启用。颜色是 0.0~1.0,不是 255。 ### 对照实验 先只填位置,三角形是单色的;补上颜色后变成红绿蓝渐变。 ### 实际现象 三个角分别是红、绿、蓝,中间是混出来的过渡色。 ### 我的解释 颜色是当顶点属性传进去的,GPU 会对三个顶点的颜色做插值,每个像素拿到的是三者的加权平均。 ### 最终结论 顶点属性不只有位置。位置决定形状,颜色决定每个顶点的基色,中间像素靠插值算出来。