上机作业 Game Physics
🔊 Canvas链接:https://oc.sjtu.edu.cn/courses/17606/assignments/34042
作业目的
- 了解游戏中对物理现象的模拟方法
- 了解几种常微分方程的求解方法
- 学会基本的弹簧模型的实现
作业要求
请同学们在开发本次作业时,注意项目的鲁棒性和可扩展性。提交完本次作业后,保留此次作业的项目。此次作业会和后续几次作业合并为一个完整的游戏。
- 本次作业将在“自定义shader”作业的基础上进行,为游戏添加更丰富的物理效果
- 单摆模拟 (40%)
- 参考 Homework slides,实现 Explicit Euler 、
Explicit Midpoint 、 Trapezoid 方法的单摆模拟
- 将模拟结果和解析解进行对比,并通过折线图或表格展示
- 由于单摆没有简单的解析解,可以用时间精度较高的模拟结果作为解析解
- 头发模拟 (60%)
- 参考 爱丽丝的发丝 ,实现基于
Verlet
方法的弹簧模型
- 构建简单的模型,以球体作为头部模型,以质点弹簧作为头发模型
- 利用 Verlet 积分方法实现头发的动态效果
- 实现头发上的弹簧约束、头发和球体的碰撞约束
- 实现简单的交互
- 通过 UI 调整头发的重量、长度、数量等参数
- 通过游戏操作,移动模型产生头发晃动效果
- 在界面显示当前帧率
- 实现更复杂的效果(可选加分项)
- 实现头发渲染效果
- 通过实现更多维度的弹簧约束,模拟布料或Jelly Cube
- 实现隐式欧拉方法的头发模拟
- 请将作业要求-1/2/3中实现的仿真应用在“自定义shader”作业中搭建的游戏上,使得用户可以在场景中操作实现的物理仿真模型。
-
编写实验报告,其中包括:
- 单摆模拟的实现过程、实现结果展示;
- 基于Verlet的头发仿真的实现原理、过程和实现结果展示
- 游戏操作指南
作业提示
- 本次作业为个人作业,艺术资源(音乐、图片、字体等)可以直接从网络获取。常用素材获取网站:Magictools,Unity Asset Store。
- 本次作业需要提交的内容包括:实验报告(导出为.pdf)、工程文件(导出为.unitypackage)、可执行文件。提交时请将所有文件打包成一个压缩文件,命名为
学号_姓名全拼_作业.xxx,如:517xxxxxxxxx_ZhangSan_hw6.rar。
- 在最终提交的作业中,请去除多余的文件(如没有用到的图片素材),以免作业文件占用空间过大。
- 本次作业的截止时间为5月4日23:59,并提供了一天的作业补交时间,补交截止时间为5月5日23:59,补交的作业会扣除10%的分数。
作业参考资料
- Homework Slides
- Technical blog
- Notes/Books
- Further reading
- Mass spring simulation
- Implicit solver
- Jelly cube
- Hair rendering
-
📌
回到主页