AI 协作日志
学生 Web 实验作品平台
学号:202412211401014 · 来源:ai-log.md
# 实验五AI协作与核验记录(学生填写) 学号:____202412211401014____ 姓名:____谢如栋____ 日期:____11.9____ ## 协作一:观察与投影概念核验(Task B / C,3分) 1. 我的问题和事先预测: 我想区分移动物体(修改M)和移动相机(修改V); 预测:只修改V,模型世界坐标不变,只是画面改变;正交投影远近物体表观尺寸相同,透视近大远小。 2. 我实际输入给AI的提示词: > 在WebGL2右手坐标系、列向量和P·V·M的顺序下,我想比较移动物体与移动相机、正交与透视投影。请给我三组能区分原因的控制变量实验,指出应改变M/V/P中的哪项,说明可以打印哪些坐标数值进行核验,不要直接生成整套代码。 3. AI建议摘要: - 实验1:保持V/P不变,修改M的tx;模型世界坐标改变,画面物体平移。 - 实验2:保持M/P不变,修改V的eye;模型世界坐标不变,画面物体移动。 - 实验3:保持M/V不变,切换P;世界完全不变,仅渲染画面表观变化。 核验打印模型世界中心、eye/target参数。 4. 我的判断和采纳/拒绝理由:建议逻辑符合课程理论,采纳作为测试方案。 5. 我的测试参数、测试操作与结果: 测试B页面,点击侧面预设,观察状态栏【模型世界中心】不变,相机eye发生变化,符合只修改V。 6. AI是否正确?我最终修正了什么认识:正确;区分画面视觉移动≠物体世界坐标移动。 ## 协作二:程序故障诊断(Task C / D,4分) 1. 真实错误现象和我起初怀疑的原因: 现象:切换透视投影模型被拉伸;怀疑near/far设置错误。 2. 向AI提出的诊断问题: > 我的OBJ能显示,但切换透视投影后形状被拉伸/裁剪或者鼠标拖动方向异常。请从宽高比、裁剪面、矩阵顺序和观察基向量中提出至少三种假设,分别给一项最小测试,先帮助排查,不要直接重写完整程序。 3. AI建议的至少两个可区分原因及测试: 假设1:projection传入aspect错误;测试打印aspect值,观察是否等于canvas宽/高。 假设2:near<=0;测试把near设置为0.1观察模型恢复。 假设3:矩阵顺序写反,P*V*M写成M*V*P。 4. 我实际逐项测试了什么?各自结果如何: 打印aspect,确认传入正确;near=0.1模型正常;框架着色器已经是P*V*M,顺序没问题。 5. 最终根因、修复处及修复后结果:本次没有bug;我临时把near改成‑0.1制造报错,界面抛出near>0异常,恢复near=0.1恢复画面。 ## 协作三:综合工作台方案比较(Task E,3分) 1. 我准备完成的观察任务:实现绕世界指定点旋转,同时绘制标记方块,区分绕点旋转和物体自身自转。 2. 向AI询问的两种设计方案: > 我已完成OBJ导入、观察视角、正交/透视以及鼠标键盘变换。请提供两个能在40分钟内复用已有WebGL2模块的观察台拓展设计,对比功能、矩阵链、交互参数和验证难度。不引入Three.js、光照、纹理或复杂模型编辑器。 3. 两种方案的功能、矩阵链、测试难度对比: 方案A:绕世界定点旋转 $T(P)RyT(-P)$,绘制标记方块;难度中等;可以直接拖动滑块验证标记位置。 方案B:相机轨道旋转(环绕target);修改eye,矩阵球面插值;难度高。 4. 最终采纳的方案与理由:采纳方案A绕定点旋转;复用框架extra接口,不需要修改app.js,验证简单。 5. 自己实现或修改的功能差异:实现ex.extra,返回两个立方体标记对象;P写死[2.2,0,0];读取state.orbit作为旋转角度。 6. 预测与实际结果对照,仍存在的局限:拖动orbit滑块,橙色方块绕黄色方块旋转;局限:P是写死,没有UI输入框修改旋转中心点。 ## 全局诚信声明 - 我提交的代码均已本人运行并核验;无法解释的AI输出未直接作为完成结果。 - 我明确标注了使用AI辅助的功能和本人自主完成的关键判断。