《全民无双》锁链刀光程序生成算法,即U3D——刀光轨迹插件的改进
《全民无双》手游12月17日上线登录APPSTore付费榜前十,首先特别恭喜还在《全民无双》坚持奋战的老同事们,顺便技术分享一下以前参与项目时的工作
锁链刀软武器刀光轨迹
之前在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,再精致点就要用动画的时间控制刀光的显示和隐藏,比如只有当刀砍下时有刀光,抬起时没有刀光等。
代码放附件了,供参考吧。
http://files.cnblogs.com/files/hellohuan/U3D_trail.zip
游旺网络,诚聘英才,技术提高指日可待。
U3D实习、初级
上海 经验应届毕业生 本科及以上 全职
职位诱惑 : 程序实习生,入职培训专人陪带,快速成长
职位描述
实习生培训:
为期一个月的入职培训,培训期,专人培带,让员工快速融入团队和开发体系
职位描述 :
根据分配的工作,完成游戏客户端部分模块的开发;
根据需求开发制作游戏研发过程中所需要的一些开发工具;
与项目组策划、美术人员共同讨论开发需求及设计游戏实现细节;
任职要求 :
熟悉CSharp,C++,JAVA中至少一种计算机编程语言;
有Cocos2D-X、Unity3D开发经验者优先;
对工作认真负责,能够按时完成安排的工作;
团队协作能力强,具备一定的抗压能力;
对游戏编程有浓厚的兴趣,具有较强的学习分析能力,善于接受新技术;
专业不限,要有一定的逻辑思维,热爱互联网工作;
热爱游戏,热爱互联网,喜欢从事IT技术类工作;对游戏开发有兴趣;
学习能力强,工作热情高,富有责任感,在公司培训及工程师的指导下完成工作内容;
本岗位欢迎优秀应届毕业生前来应聘。(学习能力强者可宽松学历要求)
自由、公平、人性、关爱,是游旺对员工的态度。
★ 所有加入游旺的员工,入职即可享受国家规定的各种假期福利
★ 严格按照国家规定为员工缴纳各项社会保险
★ 入职即进入培训期,专人培带,让员工快速融入团队和开发体系.
《全民无双》锁链刀光程序生成算法,即U3D——刀光轨迹插件的改进的更多相关文章
- 秒懂算法1——冒泡排序,及一种小改进(C#实现)
算法思路: 重复走访每两个相邻元素,比较大小交换位置,直至排序完成. 有兴趣电话可以看一下这个[冒泡排序踢踏舞]的视频,很形象的演示了排序过程,额呵呵~~ 性质: 冒泡排序是一种原地排序(只有常数个元 ...
- <2014 05 09> Lucida:我的算法学习之路
[转载] 我的算法学习之路 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以 ...
- MLlearning(2)——simHash算法
这篇文章主要讲simHash算法.这是一种LSH(Locality-Sensitive Hashing,局部敏感哈希)的简单实现.它是广泛用于数据去重的算法,可以用于相似网站.图片的检索.而且当两个样 ...
- ISP基本框架及算法介绍
什么是ISP,他的工作原理是怎样的? ISP是Image Signal Processor的缩写,全称是影像处理器.在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为 ...
- 体绘制(Volume Rendering)概述之3:光线投射算法(Ray Casting)原理和注意要点(强烈推荐呀,讲的很好)
转自:http://blog.csdn.net/liu_lin_xm/article/details/4850609 摘抄“GPU Programming And Cg Language Primer ...
- GraphicsLab Project之辉光(Glare,Glow)效果 【转】
作者:i_dovelemon 日期:2016 / 07 / 02 来源:CSDN 主题:Render to Texture, Post process, Glare, Glow, Multi-pass ...
- 数据结构1:数据结构与算法C语言版分析概述
本节开始将带领大家系统地学习数据结构,作为一门计算机专业大二学生的必修课程,该课程面对的目标人群为初步具备基本编程能力和编程思想的程序员(大一接触了 C 语言或者 C++).通过系统地学习数据结构,可 ...
- Unity Shader-GodRay,体积光(BillBoard,Volume Shadow,Raidal Blur,Ray-Marching)
好久没有更新博客了,经历了不少事情,好在最近回归了一点正轨,决定继续Unity Shader的学习之路.作为回归的第一篇,来玩一个比较酷炫的效果(当然废话也比较多),一般称之为GodRay(圣光),也 ...
- 教你如何认识人脸识别开发套件中的双目摄像、3D结构光摄像头、单目摄像头的区别及详细讲解
深圳市宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,深圳市宁远电子技术工程师就为大家详细 ...
随机推荐
- HR-人力资源管理系统(Human Resources Management System,HRMS)
人力资源管理系统(Human Resources Management System,HRMS),是指组织或社会团体运用系统学理论方法,对企业的人力资源管理方方面面进行分析.规划.实施.调整,提高企业 ...
- Makefile编写 三 伪目标的作用
本节我们讨论一个Makefile中的一个重要的特殊目标:伪目标. 伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行其所在规则定义的命令,有时我们也可以将一个伪目标 ...
- Oracle 取某100天的每一天的日期
SELECT TO_DATE('2016-01-01', 'yyyy-MM-dd') + ROWNUM - 1 as daylist,TO_DATE('2016-01-01', 'yyyy-MM-dd ...
- struts1的一个简单登陆功能
Login.jsp: <form action="<%= request.getContextPath() %>/login.do" method="p ...
- RPM包下载网址
https://pkgs.org/ (最爱) http://rpm.pbone.net/ http://rpmfind.net/linux/RPM/index.html
- 新建网站与新建Asp.Net Web 应用程序的区别
.net网站和应用程序区别,网站是动态执行的不用编译,他只依赖于自己的文档本身,甚至你用aspx里直接写jsp代码都可以,其实网站可以说只是在.net平台中打开的文档,相当于最初的记事本编码,他并不需 ...
- 用MyEclipse JPA创建项目
http://www.myeclipsecn.com/learningcenter/persistence-development/myeclipse-jpa/ 用MyEclipse JPA创建项目 ...
- 可视化库-Matplotlib-Pandas与sklearn结合(第四天)
1. 计算每一种的比例的百分比 import pandas as pd from matplotlib.ticker import FuncFormatter np.random.seed(0) df ...
- JSF多列预选择
<script type="text/javascript"> jQuery(document).ready(function () { preSelect(); }) ...
- manjaro i3 配置笔记
更改国内源 sudo pacman-mirrors -GB testing -c China 增加Arch linuxcn源 在/etc/pacman.conf文件末尾添加两行: [archlinux ...