基于Web的资产库

前言:
  对于TD或者TA来说,加入每个公司,配置一个资产库几乎是一个必须的工作。
  在笔者看来,资产库包括模型库,材质库,动作库,特效库等等。在以前的项目中开发的几乎都是基于Python+PyQt的资产库。随着项目要求提升,开发一套通用格式的资产库似乎比较迫切。所谓通用格式,一方面是资产数据的格式,笔者对比目前比较主流的格式,最终选择了fbx;另一方面是使用者的访问方式的通用性。早年间开发的Python+PyQt式的资产库,使用起来比较有局限性:
  1,必须安装Python+PyQt(即使将py打包成exe,使用起来也比较蛋疼)
  2,不方便老板在出差的时候查看(虽然可以用vpn连接到公司的服务器)
  3,预览的时候几乎都是一张或者几张截图,好一些的可能会有gif图片或者视频格式,都不太方便使用者全方位360°无死角观察。
  在目前相对比较好的处理方式是用网页来查看,并且保证在预览时候可以互动,最好再控制灯光角度什么的。

思路:
  web服务:Python主流的Web框架有Django,Pyramid,Flask三种,对比之下,笔者选用了轻量级的Flask。(事实上是,只熟悉Flask)
  数据库:MySQl,SqlServer都是不错的选择,最终选择了Sqlite(事实上是,懒的架设MySQL或者SqlServer服务)
  Web页面的三维显示:使用Three.js(事实上是,没的选)
  Web页面的预览模式:点云模式,依然使用Three.js,fbx文件生成点云文件的过程由后台开Maya处理,效率略低。(事实上是,没找到现成的高效率的模型点云文件生成的方式,只能自己写一个)

演示Demo:

地址如下:

width="640" height="480" src="//player.bilibili.com/player.html?aid=33666869&cid=58945068&page=1" scrolling="no" border="0" allowfullscreen="true">

后续:
  Three.js很强大,后续继续开发Web版的动画库和特效库。
  目前生成的点云文件较大,一个点云文件大小在8MB-20MB之间,预览时要加载9个,所以网络压力较大,后续开发先将点云文件弄小一些,做一些优化。

展开阅读全文

没有更多推荐了,返回首页