Labs and notes when learning Games103. 边学边写,放一些记录。
我在Windows下使用VSCode写代码,配置的时候参考了一些资料。
-
下载安装Unity,这里Unity Hub中install下好了就结束了,记得在Unity Hub得设置(Preferences)中改一下所有下载相关地址。另外不需要用团结引擎的话请不要碰Unity Hub页面左侧栏第二个图标,否则C盘会收获一个5G大礼包。
Unity下载与安装 -
连接VSCode。VSCode部分需要下载Unity插件,它会帮你把C#、C# Dev Kit也下下来。.NET Install Tool插件可以自动帮你下载.Net,VSCode找不到的话要手动指定一下。Unity部分则需要在Project的Edit-Preferences-External Tools-External Script Editor中改变使用的编辑器。使用的参考包括:
分享vscode如何进行unity开发,且如何开启unity断点调试模式,并进行unity断点调试
为VSCode配置完整的Unity开发环境,并解决无代码提示词问题
VSCode安装插件Unity后,一直弹The .NET Core SDK cannot be located -
导入unitypakage。首先在Unity Hub上创建一个新的Project,Lab1用的是3D的场景,创建一个空的3D Project,这个还挺耗时的,得耐心等等。随后会进入Unity的界面。在Assets-Import Package-Custom Package中导入作业需要的bunny.unitypackage即可。导入后会看见两个C#文件,即本次作业的两个算法文件。双击即可使用设置好的编辑器打开。
-
在Unity上跑已经写好的C#脚本。点击左侧Hierarchy-bunny-default右侧会出现Inspector,下面连接了两个C#脚本,需要跑哪个就给哪个打勾,点击界面上方播放键。
挂载C#脚本到游戏物体 -
录屏,请同时看看评论区:如何用Unity输出视频
-
上传Github记得在每个Unity Project根目录下加Unity的.gitignore,否则上传的东西太多了。
git管理Unity项目的正确方式
用rigid body dynamics + impluse做碰撞的效果:
rigid_bunny.mp4
用shape matching的效果:
rigid_bunny_shape_match.mp4
Lab1中rigid body dynamics + Impulse和shape matching两种方法都使用了restitution (
Implicit IP,弹性势能只有弹簧能量:
implicit.mp4
PBD:
PBD.mp4
这里PBD没有实现stiffness与它需要的和迭代次数有关的调整。
stvk能量:
FEM.mp4
ppt上Hyperelastic公式应该是错的,得自己推一下。
如果做SVD分解,
SVD分解还是挺慢的,明显感觉到比直接使用矩阵乘法慢。显式积分弹性体的硬度不能太大,否则会炸。