计算机图形学 · 实验五 · HTML5 / WebGL2 / GLSL ES 3.00

三维模型的观察、投影与交互式复合变换

从 OBJ 导入与归一化,到虚拟相机、正交/透视投影,再到鼠标键盘的 T/R/S 复合变换,最终整合为可离线运行的三维模型观察台。

实验说明 →
pclip = P · V · M · N · plocal
A · 模型导入与归一化10 分

读取 OBJ 的 v/f 数据,由包围盒求中心 c 与最长边 L,构造等比归一化矩阵 N = S(2/L)·T(−c),并用数值核验中心映射到原点。

进入 Task A →
B · 虚拟相机与多视角25 分

Model 保持不变,用 mat4.lookAt(eye, target, up) 构造 V;正面/侧面/顶部/斜上方四个预设,顶部视图自动改用 up=(0,0,−1)。

进入 Task B →
C · 正交/透视与裁剪20 分

同一 M、同一 V,只切换 P:mat4.ortho 与 mat4.perspective,配合 FOV、正交高度、near/far 与近远等尺寸立方体对照。

进入 Task C →
D · 鼠标键盘复合变换20 分

左拖旋转 Model,Shift+左拖沿相机观察平面平移,滚轮只改 eye 距离,键盘 A/D、R/F、W/S、Q/E、+/− 驱动真实矩阵。

进入 Task D →
E · 自主三维观察台15 分

整合 A–D,加入绕参考点 P 的 M_orbit = T(P)·Ry(θ)·T(−P)·T(q)·S 复合机制、父子继承部件、轨迹环与右键轨道相机。

进入 Task E →
AI 协作记录10 分

概念核验、故障诊断、方案比较三项闭环,记录预测、实际数值与人工判断,见 ai-log.md。

查看 ai-log.md →

提交前自查(对应指导书 11.3)