TAT.Johnny AC2016讲师专访——张磊 dnt
In 团队 on 2016年10月19日 by view: 656
0

dnt

讲师介绍
张磊 dnt 网名当耐特
腾讯AlloyTeam高级工程师
在腾讯公司主要负责和参与日迹、兴趣部落等项目,专注开源,乐于分享,主导众多AlloyTeam开源项目,AlloyFinger、AlloyPaper、AlloyTouch作者。

1. 你的开源作品很多,平时是怎么平衡工作和开源项目的呢?

我的生活可以拆成上班+下班。

上班可以拆成业务忙的时间+业务不忙的时间,下班可以拆成陪家人时间+独自思考时间。开源项目和平时的积累源自于:上班业务不忙的时间+下班独自思考时间。

那么问题来了,上班的时间是固定的,怎么扩大上班业务不忙的时间。答案就是高效地完成公司的业务。怎么高效地完成公司的业务取决于业务之外的时间的积累。这就产生了一个良性循环。业务不忙的时候,积累地越多,业务忙的时候就越高效,越高效,业务不忙的时间就越多,积累就越多,小流成江海,硅步至千里。比如公司需要做个小游戏AlloyPaper信手拈来,web应用需要手势支持AlloyFinger拿来就用。需要加速到减速运动还能带回弹摩擦力AlloyTouch刚好满足。需要做活动推广页需要许多转场动画transformjs再合适不过。诸如此类,许多需求场景都有着最合适的解决方案在手中,高效工作,良性循环,方可厚积薄发,事半功倍。

dnt_github(dnt 的开源项目)

 

2. 你有很多图像处理相关的开源项目,能谈谈为什么对图像方向这么感兴趣吗?

随着流量廉价,网络全方位覆盖,也会越来越多地承载一些复杂交互的富媒体内容,这都离不开图像工程师,觉得朝着这个方向发展还是蛮有前景。来腾讯之前在北京做了两年游戏开发,自己也是资深游戏玩家(王者荣耀、全民枪王、皇室战争的游戏玩家),现在也经常玩游戏,游戏离不开图像。经常会被游戏里、电影的特效冲击到,都会很惯性地去想怎么实现,能不能更炫酷什么的。来腾讯之后,业余时间也和小伙伴们一起做了一款《坦克争霸》的实时对战游戏。自己要积累了一些图形库如CSS3的transformjs,SVG的Sword,Canvas和WebGL的AlloyPaper和AlloyPixel等。学习图像技术还有一好处,就是–利用自己的聪明才智(心形曲线什么的),把姑娘追到手。

 

3. 本次AC大会你将分享WebGL相关的内容,有什么WebGL入门的建议吗?

首先要声明学习WebGL不等于学习Three.js。Thress.js已经完全面向对象编程了,封装了很多图形处理渲染的细节。

webgl

学习WebGL和学OpenGL、D3D一样,高数、线性代数和解析几何是基础。有了这些基础,再看API类、应用类的书籍《xxx从入门到精通》、《xxx高级编程》、《xxx高级程序设计》、《从零开始学xxx》什么的,这些书里面也会有部分章节出点一点那些基础数学知识。边看书的同时,从例子下手,比如从学习绘制三角形开始吧。以前微软IE Test Driver上的image wrap的例子也很适合入门(图片切成N多个三角形,可以拖拽顶点),我也写了一个image wrap的例子很适合入门。再继续:

画个立方体,指定顶点顺序,了解顶点顺序的作用和意义;

贴个纹理,了解顶点和纹理映射关系;

对纹理进行处理,如模糊、震荡、马赛克等特效。熟悉着色器编程模型

建个3D模型、熟悉3D模型工具的使用,并分析导出的数据结构的意义

3D模型绑个事件、绑事件的方式方法研究和对比;

模型容器分组、熟悉分组的意义和作用;

写个粒子系统、CPU写粒子系统、GPU再写粒子系统、差异对比

加上光照,熟悉环境光、平行光、点光源的实现。这里能强化着色器编程和解析几何知识;

帧动画、骨骼动画;

实时碰撞检测,基本AABB和OBB碰撞检测。WebGL是为实时渲染设计的,配合实时碰撞检测技术才能做出复杂的游戏程序。

最后:各种性能优化,上面提到的每个点都有大量的优化和探索空间。

 

更多精彩内容,敬请期待张磊在AC2016上的分享——《3D引擎架构设计》

原创文章转载请注明:

转载自AlloyTeam:http://www.alloyteam.com/2016/10/zhang-lei-ac2016-lecturers-interview-dnt/

发表评论