U3D——刀光轨迹插件
来源:互联网 发布:淘宝美津浓官方旗舰店 编辑:程序博客网 时间:2024/05/03 09:40
原文地址: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
- U3D——刀光轨迹插件
- U3D——刀光轨迹插件的改进
- U3D插件
- U3D实现边缘高光
- 轨迹跟踪——二维轨迹跟踪
- U3D关于抛物线的轨迹的做法
- U3d插件——Swarm Object Manager分析(一)Main和 ship(角色)
- U3d插件——Swarm Object Manager分析(二)SwarmItem
- U3d插件——Swarm Object Manager分析(三)SwarmItemManager(未完)
- U3d插件——Swarm Object Manager分析(四)bullet和 Explosion 的实现
- U3d插件——Swarm Object Manager分析(五)Asteroid 和 AsteroidManager 的实现
- u3d特效插件
- U3D NGUI插件讲解
- 专业术语——光
- U3D 平行光阴影细节 Directional Shadow Details
- U3D Shader去掉全局雾和使用自定义环境光
- 将android插件做成U3D专用插件
- 成长的轨迹——linux
- 金融系列4《基本指令》
- 关于VMware 9 在重装系统后的一些问题摘录
- 用一个例子来理解MATLAB中的cell,理解{}和()的区别
- 国际化i18n
- linux shell 中[ ]和[[ ]]表达式区别:
- U3D——刀光轨迹插件
- 开源协议许可证浅析
- 新装修的房子,美呆了吧
- springMVC上传文件
- android--使用Struts2服务端与android交互
- 多线程之GCD(Grand Central Dispatch)
- Map和Reduce处理过程分析
- C语言 使用结构体实现简单的通讯录
- js实现表格操作-排序