AC2016大会讲师专访——极品网红工程师张磊 dnt

原文连接git

官方网站github

张磊 dnt 网名当耐特web

腾讯AlloyTeam高级工程师编程

github: github.com/kmdjs性能优化

在腾讯公司主要负责和参与日迹、兴趣部落等项目,专一开源,乐于分享,主导众多AlloyTeam开源项目,AlloyFinger、AlloyPaper、AlloyTouch做者。网络

你的开源做品不少,平时是怎么平衡工做和开源项目的呢?数据结构

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

(dnt的开源项目)工具

你有不少图像处理相关的开源项目,能谈谈为何对图像方向这么感兴趣吗?性能

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

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

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

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

再继续:

  1. 画个立方体,指定顶点顺序,了解顶点顺序的做用和意义;
  2. 贴个纹理,了解顶点和纹理映射关系;
  3. 对纹理进行处理,如模糊、震荡、马赛克等特效。熟悉着色器编程模型
  4. 建个3D模型、熟悉3D模型工具的使用,并分析导出的数据结构的意义
  5. 3D模型绑个事件、绑事件的方式方法研究和对比;
  6. 模型容器分组、熟悉分组的意义和做用;
  7. 写个粒子系统、CPU写粒子系统、GPU再写粒子系统、差别对比
  8. 加上光照,熟悉环境光、平行光、点光源的实现。这里能强化着色器编程和解析几何知识;
  9. 帧动画、骨骼动画;
  10. 实时碰撞检测,基本AABB和OBB碰撞检测。WebGL是为实时渲染设计的,配合实时碰撞检测技术才能作出复杂的游戏程序。
  11. 最后:各类性能优化,上面提到的每一个点都有大量的优化和探索空间。

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

相关文章
相关标签/搜索