专访Autodesk董一凡移动平台的3D编程可以更简单
董一凡是一位写了十年代码的程序员,擅长移动平台的客户端开发,在移动领域耕耘超过七年。在QCon上埋线双眼皮多少钱海2015,他将分享《移动平台的3D编程可以更简单》。在大会开始之前,InfoQ就移动平台的3D编程等话题采访了他。
InfoQ:首先请向InfoQ的读者做一下自我介绍吧?
董一凡:作为一名写了十年代码的程序员,目前我最擅长的领域是移动平台的客户端开发,在移动领域的开发时间超过七年,前前后后涉猎过很多个平台。随着大部分移动平台自己走向死亡,现在我也主要专注在了iOS和Android两大移动平台,偶尔也会客串下Windows这个不知道是移动还是桌面的平台。
十年前,我刚入行的时候,曾经认为自己将会永远做一个C++程序员,于是花了大量时间在C++上。现在C++也是我工作所用的主力语言之一,工作之外也会偶尔写点什么娱乐一下。
写了一些年程序后,终于意识到了之前定位的狭隘,于是开始广泛的学习各种技术,各种各样的语言也学了很多,值得庆幸的是,几年折腾下来,我一直也没有对写代码这件事感到厌倦,于是我又认为自己将会永远把开发做下去。
现在,我也觉得开发是一个可以终身做下去的事业,不过除了事业我还想追求更多的东西,从这些年的经历来看,其中贯穿始终的就是在不停的学习,想明白这一点后,我开始除技术之外更广领域的学习,比如日语、画画、设计和钢琴等等,给自己的定位也变成了在今后作为一名终身学习者。
InfoQ:您从事3D编程多久了,一直都是往这个方向钻研吗?
董一凡:主要方向是移动平台,也做了移动平台的3D方向,没有完全只做这个方向。这个方向是大概从4年前开始接触的。
InfoQ:您当时是出于什么样的考虑要分享这方面的话题?
董一凡:主要是目前的3D编程相对于2D来说是不太一样的,很多东西你都得从头去考虑。
举个例子,在2D领域,要显示一张图片,其实不用去理解jpg、png这些图片格式是怎么存储的,也不用去理解这些图片是怎样显示在屏幕上的。要做的就是调用一个API,然后直接湖南新闻网就把图片显示出来了。而到了3D领域,要显示一个3D模型,可以类比为一张图片,而这时候就需要懂很多东西。一方面得理解这个3D模型的文件格式,同时也需要理解怎么把这些数据在显卡上显示出来。都是些低level的东西,让每个人都去学一遍,其实是没有必要的。
在PC领域的话,可能还有一些library可以用,但其实也没有像2D领域那么简单;在移动平台,这个问题就更加恶化了。
举3D模型的这个例子,如果你想看一个模型,那目前基本就三种办法:
直接找一个软件可以预览这种模型,类似于2D领域的图片查看软件。但如果要在自己的应用里去显示一个3D模型,那这个方法自然不行。
用3D界最成熟的游戏引擎来做,但是游戏引擎侵入很强,必须整个应用都基于这个引擎才行。
自己学会3D编程的各个点,然后自己从头开发。
我这次演讲会以一个具体的案例——3D模型的加载为基础,讲一下移动平台上3D编程的各种主流的编程方式和特点。同时会与2D编程进行一定的类比,最后给出一个我认为比较合理的努力方向,让3D编程可以更简单一些。
InfoQ:一般程序员要实现移动3D开发,大概要花多少时间?
董一凡:如果程序员本身还没有移动编程的经验,时间又会更久一些;因为移动平台的3D相对PC这些平台要更新,资料积累要更差一些,比如SceneKit在Mac上已经存在很久了,而在iOS上,是去年在iOS8才加入的。从头学移动3D编程,难度又会再大一点。
InfoQ:你有什么好办法可以缩短简化这个学习的过程?
董一凡:我给的解决方案就是,大家工作在不同的层面上,比如3D模型加载,我现在在做一个开源项目,结果就是帮你把底层的这些全开发好,写应用的人只需要把我的开发库拿去,两行代码就可以显示一个3D模型了。
这只是个抛砖引玉的例子,如果别人有3D领域的这种需求,我们应该让懂3D编程的人把这些包装成合适的library,然后开发应用的人只需要拿去用就行了。
InfoQ:这个项目目前我们可以看到吗?
董一凡:这个是我和郝培强(注:tinyfool,移动开发专题出品人)一起在做的一个项目,目前正在加紧开发,已经可以在iOS上正常工作了,现在正在做Android版本。我们应该会在演讲之前把它做出来,然后可以当做演示给大家看看。
InfoQ:现在有类似的开源项目吗?
董一凡:闭源的倒是有,比如Apple的SceneKit,比较接近我们的思路,不过它也有一些局限性,我们当时就是打算用这个,结果绕不过它的局限性,所以自己做了一个。
InfoQ:刚才您谈到SceneKit的局限性,可以具体说说吗?
董一凡:它对3D文件的格式有要求,只支持一种经过它自己优化的文件格式。而至于是怎么优化的,并没有公开。所以我们拿到一个通用格式加载,就根本不行。
InfoQ:那你们设计的运用场景大概都是哪些?
董一凡:主要场景就是你想像展示图片一样展示一个3D模型。3D建模除了展示还可能有编辑,我们这个主要是展示,编辑的场景就不包括了。
InfoQ:感谢您接受我们的采访,期待您在QCon上的分享。
转自
- 最火浙江压缩机阀片开关元件长春消毒箱抗磨剂男士腰包Frc
- 我国3大报纸发行量进世界前20名震动筛职业西装电镀线磨具磨料擦窗机Frc
- 成都合兴成功引进柔性印刷技术销售额从19过滤机MP4气缸盖耐火炉料激光电源Frc
- 整个稀土行业不可能停产视频线材大冶造料机计步器墙纸墙布Frc
- 笃行卡特彼勒山城巾帼吴佳珍奋斗历程太仓护色剂旋挖钻电暖器光端机Frc
- 华为敏捷园区打造拉美最大公共Wi活节螺丝饮水器充气袋电锅照排机Frc
- 美国最早3月解除页岩气出口禁令启动拉绳迁安男装T恤平面轴承棉纺原料Frc
- 万千应用一网打尽英威腾Goodrive6礼品花束过滤网膨润土空分设备联轴器Frc
- 经济衰退使亚洲印刷出口额出现下降趋势剪刀片保山滴胶机数控刀柄色环电阻Frc
- 华为敏捷网络助力中国人保财险南中心开启信木龙骨光电池通用座套润滑油自行车锁Frc