Archive

Archive for the ‘程序/算法’ Category

续:为什么Kinect for Windows传感器值249.99美元?

January 29th, 2013 1 comment

后来确认了一下,Kinect for XBox果然可以在Kinect for Windows SDK下使用。几个demo都可以正常运行(没有试音频相关的,因为我不关心),感觉和Kinect for Windows没有太大不同,脸部识别工作正常,半身骨架识别也没问题。唯一不太一样的是,似乎“Near Mode”不起作用,但奇怪的是有些demo又确实能得到低于正常模式的80厘米距离的深度值。

顺变吐槽一下最新的SDK,居然没有提供期待中的手势(手指状态)识别。而且脸部定位居然需要依赖图像,而不是纯靠深度信息识别。因为我把灯光调暗一些,就无法定位我的脸的位置了。

PS:刚刚发现Kinect居然内置了一个三轴加速度感应器。我的第一反应是,Kinect放在那里都不动,要这个干什么?查了一下msdn,官方的说法是为了让kinect能感知到自身的方向;然后我的第二反应是,为什么不assume它一定是水平放置的呢?俯仰角它自己也是知道的,难道官方支持其它的工作角度(比如竖起来)?于是我就把它竖了起来,运行了一下demo,发现骨架识别失败了……看来这个只是给特殊应用准备的,换句话说,SDK提供的utility(骨架,人脸识别等等)只支持平着放,如果你需要把它挂起来(例如一些试衣的应用),那么你就自己拿重力方向处理去。除了检测自身方位的效果之外,或许在移动应用上能发挥一些作用,记得TED上就介绍过一个给盲人用的路况提示系统,就是把一个Kinect安在帽子上戴着……

Categories: 程序/算法, 游戏 Tags: ,

Performance更新到1.0

January 10th, 2013 No comments

好几年没有动过这个东西了。Performance之前对多线程的支持不太好,需要用户为每个线程创建一个管理器,并且设置节点时必须指定一个管理器,比较麻烦,也不支持一个节点可能被多个线程调用的情况。

最近的一个项目需要在多线程环境下做性能剖析,因为线程很多,而且同一个函数会在多线程重入,于是就下决心改了一下。
其实改动也不大,用户需要指定最大支持的线程数,一开始就自动为每个可能存在的线程创建好剖析管理器,在进节点之前取一下寄存器里的thread id,决定该使用哪一个剖析管理器。

当然,这样一定会损失一些性能,这也是之前迟迟没有修改的原因。如果用户不需要多线程剖析的特性,只要把最大线程数设为1,就可以避免性能的损失。

工具方面偷懒没有改,每个线程的数据保存在独立的文件里,只能单独查看。下个版本可以考虑把多线程的数据综合展示,更方便一些。

下载链接在这里:Performance1.0.zip

Categories: 程序/算法 Tags:

为什么Kinect for Windows传感器值249.99美元?

January 6th, 2013 3 comments


本文翻译自James Ashley个人的博客,他曾经是微软Kinect团队的MVP,原文地址在这里:Why the Kinect for Windows Sensor Costs $249.99?,第一次翻译这么长的东西,难免生涩。转载请注明出处,谢谢。

起因源于本人刚刚头脑一热在京东上搞了个Kinect for Windows,拿到手却发现和原来Xbox 360上的Kinect在硬件上似乎没太大差别,能看到的检测距离的改善以及半身骨架识别,脸部识别等貌似都是软件的升级。贵了一倍(<1000 vs. 1920)却只是软件升级,感觉有点坑爹。于是在网上找到了这篇文章,给想入手Kinect for Windows的朋友一个参考。结论似乎是,开发者用老的(便宜的)Kinect就可以了,而249的价格是指望将来大卖时赚用户的钱的。稍后我会确认一下,Xbox版Kinect在PC上是否具备新Kinect硬件的全部功能。
另外,有兴趣可以看我之前的相关文章Kinect Demo for Grandpa SDK

以下是翻译的内容:

Read more…

Categories: 程序/算法, 游戏 Tags: , ,

grandpa-animation开源了

August 20th, 2012 52 comments

经过令人发指的4个月没有更新之后,我决定把维护了很多年的骨骼动画库grandpa开源,希望能发挥更大的价值。所有的代码和资源已经放在google code上,用网络营销的语言说,有兴趣的请

猛击这里

grandpa这个名字最早来源于著名的rad game tools的很牛鼻的granny动画中间件,据说已经over 2,400 titles shipped(其中包括大名鼎鼎的魔兽世界),当时非常崇拜,就随手敲了个grandpa作为名字,本来想之后再换一个酷一点的名字。结果这么多年一直懒的换,也用出感情了。

相对于其他类似的动画组件,grandpa的特点是比较适合网络游戏这种需要角色频繁换装的应用场景;另外在动画的融合,过渡,采样以及优先级控制上也都比较讲究;效率方面经过这么多年的优化,应该还算不错。详情可以参考grandpa的页面,就不在这里吹嘘了。

比较羞愧的是代码不太符合“开源标准”,完全是vc的编译环境,没有组织成很上流的cmake工程什么的,虽然库本身是纯c++的,不依赖任何其他组件,但所有demo和工具都是基于windows/d3d的,就不再花时间搞成伪跨平台形式了。事实上grandpa曾一度被移植到IOS上,只是最终没有应用在任何项目中。

最后,照例感谢一下李栋同学制作的demo资源(包括模型/动画/纹理),以及leon同学近期的贡献

Categories: 程序/算法 Tags:

webp格式试用小结

April 22nd, 2012 7 comments

webp格式是google推出的一个意欲取代jpeg的图像压缩格式;支持无损或有损压缩,另外还支持alpha通道,甚至支持动画,看起来野心不小。官方给出的数据是:无损压缩时比png文件小28%,有损压缩时在同等画质(是的,这是有客观标准的,请搜 SSIM )情况下,比jpg文件小25%~34%。当然,也可以说在同等文件尺寸的条件下,画质比jpeg要好。

之前参与的一个项目要求动态下载资源,当时为了最小化下载带宽占用,采用jpeg作为纹理存储格式,下载完成后解码并压缩成dxt格式后使用。于是想研究一下webp能不能在这种应用场景下取代jpeg,我较为关心两点:一方面是否真的如google所说相同画质下文件尺寸能够大幅减小;另一方面更担心的是encode/decode,尤其是decode的效率,这个在google官方的webp主页上几乎只字未提。

Read more…

Categories: 程序/算法 Tags: ,

Earthquake地形Demo

January 16th, 2012 4 comments

这是一个技术demo,所以不要期望看到任何能引起视觉享受的内容 🙂

整个地形的规模是16384 x 16384,约5亿三角形;以高度图每格2米计算,是32 x 32 = 1024平方公里,和魔兽世界大体相当

资源文件(包括高度图和纹理)共4.3G,出于文件尺寸考虑,没有打开细节纹理混合

当然,如果游戏里用到这么大规模的场景,应该有相当大比例的范围是玩家无法到达的,这部分区域只能远观,可以采用较低分辨率的高度图和纹理,资源总量就可以控制在更合理的范围

摄像机视距10公里,移动速度400米/秒(1.2倍音速)

生成这么大规模的的随机地形有难度,所以采用了4×4=16平方公里的地形循环铺设

需要注意的是,重复的地形和纹理并非资源复用,而是复制了资源文件,它们是从各自独立的文件里加载的


 

Categories: 程序/算法 Tags: , ,

Earthquake引擎启动

August 23rd, 2011 4 comments

Earthquake是基于Grandpa动画系统的3d引擎。以易用,轻便,高效为宗旨,专注于“瘦客户端”或基于网页的3d游戏。

Earthquake取名于《真侍魂》中我最喜欢的角色,地震虽然身形巨大,但非常灵活……没错,他实际上是个忍者……还会分身哦

关于开发的进展,可以看earthquake引擎开发日志

 

 

Categories: 程序/算法 Tags:

Grandpa SDK 0.82 发布

June 28th, 2011 3 comments

下载Grandpa SDK 0.82 for Windows
去Grandpa主页

主要修改:

  • DemoCamera类添加震动功能
  • CameraDemo添加摄像机震动功能演示
  • 添加Ragdoll功能演示
  • 添加KinectDemo
  • 添加极限性能演示CrowdDemo

Categories: 程序/算法 Tags: , ,