美文网首页
GPhomework6

GPhomework6

作者: ZoltanJin | 来源:发表于2018-05-13 18:44 被阅读0次

    主要功能的实现

    • 在脚本 CannonBallController 中实现了三种方法控制炮弹运动。

      运动控制关键代码
    • 编写了 UI 来设置运动的参数。包括:初速度方向、初速度大小、炮弹重量、使用的方法、步长(步长越大,采样点越稀疏,产生的误差也就越大)。

    • 在炮弹运动的路径上留下 marker 标识运动轨迹。Euler 方法产生的路径点是红色 cube,Trapezoid 方法产生的路径点是黄色 sphere,Midpoint 方法产生的路径点是蓝色 capsule。

    • 考虑了空气阻力对炮弹的影响,与速度大小成正比。话说难道不应该是与速度大小的平方成正比么

    实验结果对比

    首先在 stride 为 1 (最高精度)时,分别用三种方法发射炮弹,并留下轨迹。

    Euler 方法产生的路径点是红色 cube,Trapezoid 方法产生的路径点是黄色 sphere,Midpoint 方法产生的路径点是蓝色 capsule

    步长为 1 结果图一 步长为 1 结果图二

    从上图可以看出,在步长为 1 的条件下,三种方法只有微小差距,从上到下依次是 Euler、Midpoint、Trapezoid 的轨迹。

    接着把步长增大到 5 ,实验结果如下图。

    步长为 5 结果图一 步长为 5 结果图二 步长为 5 结果图三

    从上图可以看出,在步长为 5 的条件下,三种方法已经有了明显的差距。从上到下依然是 Euler、Midpoint、Trapezoid 方法的轨迹。上面的最后一张图中的那条比较密集的轨迹是步长为 1 条件下 Euler 的轨迹,在这里作为更接近解析解的轨迹作为参考。可见,Euler 方法下落变慢,Midpoint 和 Trapezoid 方法下落加快。

    场景搭建

    不务正业部分

    • 找了一个海盗船的模型作为炮弹的发射装置
    • 水面效果是完全自己写的,用到了法线贴图、UV 动画、反射像机实现反射、GrabPass 实现折射、菲涅尔、水体散射、水体焦散、水面高光反射。
    • 在太阳的方向尝试加入了 Volumetric Light

    相关文章

      网友评论

          本文标题:GPhomework6

          本文链接:https://www.haomeiwen.com/subject/lwnldftx.html