U3D——刀光轨迹插件

原文地址:http://www.cnblogs.com/hellohuan/p/3478907.html

之前在PC端的游戏中实现过轨迹,算法喜闻乐见,收集每帧的控制点,对其进行B样条插值,生成D3DTriStrip。

这两天刚刚接触U3D,美术给了一个轨迹的插件,要求我扩展脚本,支持锁链刀弯刀的刀光计算,暂且命名多控制点的轨迹。

算是U3D的第一个纯技术需求吧,记录一下。

新增加了一个脚本:Hello_MeleeWeaponTrail.cs,增加了多控制点编辑,调整使用了NewCatmullRom差值算法(使用线性和NewBezier效果不好)。


刀光的效果如下:


根据前东家的规范,写了一下方案的非功能性评估:

通过Unity的stat面板并未发现与之前性能明显的区别。

不过算法会动态生成TriangleMesh,控制点越多生成顶点和三角形数会增加,影响内存显存和显卡带宽填充。

空间:

         内存

                   单个顶点position+uv+vcColor大约32字节。下表展示增加控制点增加的内存消耗。

控制点数量

2

3

n

顶点数量

2X

3X

nX

三角形数量

X

2X

(N-1)X

 

         显存:

                   顶点和索引会增加相应空间的显存。

时间:

         CPU:与控制点数量的时间复杂度为O(n)。

         GPU:随着顶点数量的增加,VS阶段带宽增加,绘制的三角形数量变多。

 

总体来讲,效率影响不是太大,场景中刀光数量不多的话,使用无大问题。

建议:

     逻辑来控制刀光的Emit,即,只在挥刀的时候置成true,其他时候是false,再精致点就要用动画的时间控制刀光的显示和隐藏,比如只有当刀砍下时有刀光,抬起时没有刀光等。

代码放附件了,供参考吧。U3D_trail.rar


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity3D中,我们可以通过调整摄像机的轨迹来实现不同的效果。下面简单介绍一下如何调整u3D摄像机的轨迹。 首先,我们需要在场景中创建一个摄像机对象。可以通过点击“GameObject”菜单,然后选择“Camera”来创建一个摄像机。 接下来,我们可以选择调整摄像机的旋转或位置来调整摄像机的轨迹。在Unity编辑器中,我们可以直接拖拽摄像机对象来移动它的位置,也可以通过旋转工具来改变它的方向。 如果我们想要实现沿着一条路径移动的摄像机轨迹,我们可以使用动画系统来实现。首先,我们需要在摄像机上添加一个Animator组件。然后,我们可以为摄像机添加一个位移动画。在动画窗口中,我们可以创建一个新的动画剪辑,并在剪辑中设置摄像机的位置关键帧。我们可以通过调整关键帧的位置来控制摄像机沿着路径移动的速度和方向。 如果我们想要实现固定点的旋转轨迹,我们可以通过在摄像机上添加一个脚本来实现。我们可以在脚本中定义一个旋转轴,然后在每一帧更新中按照一定的速度和方向来旋转摄像机。 除了以上方法外,我们还可以使用插件或工具来辅助调整u3D摄像机的轨迹。例如,我们可以使用Asset Store中提供的轨迹编辑器插件,可以通过可视化界面来调整摄像机的轨迹。 总而言之,通过调整摄像机的位置、旋转或者使用动画系统来实现轨迹调整是较为常见的方法。根据具体需求,我们可以选择不同的方法来实现自己想要的摄像机轨迹效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值