《全民无双》手游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. 秒懂算法1——冒泡排序,及一种小改进(C#实现)

    算法思路: 重复走访每两个相邻元素,比较大小交换位置,直至排序完成. 有兴趣电话可以看一下这个[冒泡排序踢踏舞]的视频,很形象的演示了排序过程,额呵呵~~ 性质: 冒泡排序是一种原地排序(只有常数个元 ...

  2. <2014 05 09> Lucida:我的算法学习之路

    [转载] 我的算法学习之路 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以 ...

  3. MLlearning(2)——simHash算法

    这篇文章主要讲simHash算法.这是一种LSH(Locality-Sensitive Hashing,局部敏感哈希)的简单实现.它是广泛用于数据去重的算法,可以用于相似网站.图片的检索.而且当两个样 ...

  4. ISP基本框架及算法介绍

    什么是ISP,他的工作原理是怎样的? ISP是Image Signal Processor的缩写,全称是影像处理器.在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为 ...

  5. 体绘制(Volume Rendering)概述之3:光线投射算法(Ray Casting)原理和注意要点(强烈推荐呀,讲的很好)

    转自:http://blog.csdn.net/liu_lin_xm/article/details/4850609 摘抄“GPU Programming And Cg Language Primer ...

  6. GraphicsLab Project之辉光(Glare,Glow)效果 【转】

    作者:i_dovelemon 日期:2016 / 07 / 02 来源:CSDN 主题:Render to Texture, Post process, Glare, Glow, Multi-pass ...

  7. 数据结构1:数据结构与算法C语言版分析概述

    本节开始将带领大家系统地学习数据结构,作为一门计算机专业大二学生的必修课程,该课程面对的目标人群为初步具备基本编程能力和编程思想的程序员(大一接触了 C 语言或者 C++).通过系统地学习数据结构,可 ...

  8. Unity Shader-GodRay,体积光(BillBoard,Volume Shadow,Raidal Blur,Ray-Marching)

    好久没有更新博客了,经历了不少事情,好在最近回归了一点正轨,决定继续Unity Shader的学习之路.作为回归的第一篇,来玩一个比较酷炫的效果(当然废话也比较多),一般称之为GodRay(圣光),也 ...

  9. 教你如何认识人脸识别开发套件中的双目摄像、3D结构光摄像头、单目摄像头的区别及详细讲解

    深圳市宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,深圳市宁远电子技术工程师就为大家详细 ...

随机推荐

  1. 常见的加密和解密算法—BASE64

    一.BASE64加密和解密概述 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息.例如,在Java Persistence系 ...

  2. zabbix使用之打造邮件报警

    zabbix使用之打造邮件报警 前言: 报警信息很重要,它能使我们最快的知道故障内容,以便于及时处理问题.zabbix如果没配置报警功能,则完全不能体现zabbix的优势了 配置详情如下: 1.编写发 ...

  3. 37.使用PreResultListener实现回调

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 在进行本实例前请前复习:五.2自定义拦截器.因为PreResultListe ...

  4. Eclipse 插件集合

    以下是我整理的自己开发过程中的常用Eclipse插件,按字母排序: (1)    AmaterasUML        介绍:Eclipse的UML插件,支持UML活动图,class图,sequenc ...

  5. 搭建 redis 集群 (redis-cluster)

    一 所需软件:Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis  redis下载地址 ...

  6. 关于document.cookie的使用

    设置cookie每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:document.cookie="userId=828";如果要一次 ...

  7. 7.25 7figting!

    TEXT 82 Proton 马来西亚宝腾汽车 A fork in the road 何去何从?(陈继龙编译) Nov 30th 2006 | HONG KONG From The Economist ...

  8. EF CodeFirst生成数据库到Sqlserver中

    EF CodeFirst简单实例这篇文章介绍了如何用EF去快速生成数据库.但是这个并没有生成到sqlserver中,总觉得不爽.下面就来讲一下,如何将数据库生成到sqlserver中. 按照EF Co ...

  9. 【HTTP请求】、详解

    一.协议介绍 HTTP(HyperText Transfer Protocol,超文本传输协议)是一套计算机通过网络进行通信的规则,使HTTP客户端能够从HTTP服务器端请求到信息和服务,目前的版本号 ...

  10. Redis的强大之处

    [Redis的强大之处] 1.拥有对脚本的支持(此处是lua),脚本可选择性的缓存. 2.提供HyperLogLog计数器. 3.提供5种数据类型的全方位支持:List.Hash.Set.Ordere ...