关于以前博客的内容(something about my old blog)

Posted by on July 29, 2012

内容摘自archive.org

至于补全博客上所有的内容难度还是非常大,决定就写几篇简单的介绍文好了。

1 captures
22 Jul 11 – 22 Jul 11

Close
Help
fangsunjian 的个人博客

游戏开发 DirectX/HLSL XNA

Home
六月 5th, 2011
布娃娃系统(Ragdoll)

fangsunjian in RedEngine
HEY,YOU!DO NOT TRY TO ESCAPE!BOOM!

ENEMY DOWN….

这个就是今天的重点–布娃娃系统(Ragdoll)。在FPS/TPS之类的射击游戏中,一个很重要的游戏评价指标就是是打击感与物理动态效果。

在这里我用的是physx物理引擎,物理功能支持非常全面。joint的支持很到位,这里大量使用了dof joint。直接从骨骼动画模型生成的布娃娃(Ragdoll),逼真的模拟一个人倒下的全过程。也会考虑“鞭尸”之类的设定。
ragdoll,布娃娃

这一章是人物倒地后的效果。这里要注意的问题是骨骼的扭曲程度不能过于夸张。

下图是连接上PhysX Visual Debugger以后看到的人物物理元素。
ragdoll in PhysXVisualDebugger

这里顺便推荐一本好书–《Character Animation With Direct3D》

这本书详细的介绍了游戏中主流动画的制作方式,包括骨骼动画、变形、面部表情、口型模拟、布娃娃、毛发动画和其他一些主流的人物细节表现手法。书中在物理学一章介绍布娃娃的时候用的是bullet物理引擎。

而在PhysX SDK 里面也有一章介绍joint的时候给了一个非常漂亮的布娃娃。不过那是手工拼装起来的,在实际应用中对于直接导入的骨骼还是应该有一套自动化的系统。

no comment
五月 20th, 2011
动态模糊(Motion Blur)

fangsunjian in RedEngine
很早以前,看到动态模糊(Motion Blur)的效果,一直以为只是个posteffect。真的做起来才知道还是靠顶点间的差值进行texcoord的偏移。
directx10下由于有GeometryShader,不用渲染Velocity贴图,直接把差值通过GeometryShader构造出来,速度会快不少。directx sdk里面的例子还是有些地方不敢苟同,在处理alpha(这里是模糊边缘的alpha)的时候后面的物体会影响到前面的,看起来很不真实。好多年前的技术了,总之先加入引擎再说。
motionBlur,动态模糊

由于引擎是延迟着色的架构,在这里渲染顶点差的时候没有带贴图,只要两张Velocity就好。
查看完整版 “动态模糊(Motion Blur)”

no comment
五月 16th, 2011
容积光(Volumetric Light)

fangsunjian in DirectX, RedEngine
最近把容积光(Volumetric Light,GodRay)加入了引擎。原本是NVIDIA在GPU精粹(GPU Gems)上刊载的技术。当年看到的时候第一反应是这个效果很像Direct SDK里面给的ShadowVolume。可以从中直接看到被阴影覆盖的范围。不过VL是个post效果。效率会高一点(只是这样说说而已,ShadowVolume用的是stencil buffer,早期的硬件功能,做起来也很快。VL还需要针对每个像素进行迭代,进行illuminationDecay的计算)。
VolumetricLight,容积光

由于容积光是需要一副背景,一副带黑的前景,在这里天空盒就是背景,除此以外的物体都是前景。
查看完整版 “容积光(Volumetric Light)”

no comment
五月 14th, 2011
RedEngine图形简介(1)–HDR,DeferredLight,Softshadow,SSAO

fangsunjian in RedEngine
这个RedEngine是我自己正在写的游戏引擎的名字,开了新博,就在这里放出来几个截图。介绍一下其中的几个特效。

测试场景是自己在3ds max里面画的。人物、动画、天空盒(skybox)都是一些教程里找来的。

这是一个延迟着色的引擎(deferred shade),渲染流程是以MRT将所需贴图先渲染至Gbuffer,再进行下一步的处理,当然考虑到还有软粒子(soft particle),深度贴花(decals)之类的预先需要深度贴图(depthMap)的渲染技术,depthMap考虑需要独立出来渲染。

首先是diffuseMap:
diffuseMap

单纯的将贴图画到屏幕上。

这一张是带diffuse+HDR的截图:
diffuse,HDR

可以看到场景已经被调亮了。后面的天空盒是HDR格式的贴图,颜色精度很高。

这里用的HDR在tonemap的时候有自动曝光的效果(AutoExposure),过滤的时候是模糊过滤,前段时间玩孤岛危机2(crysis 2)的时候发现crytek在高亮的地方加了一个横向的filter,看起来感觉非常棒。我准备回头也加一个。
查看完整版 “RedEngine图形简介(1)–HDR,DeferredLight,Softshadow,SSAO”

no comment
五月 13th, 2011
2010年全国软件创新大赛经验心得

fangsunjian in 我的生活
这次2010年的第三届软件创新大赛历时半年。终于在12月的寒冬中落下帷幕。在此我想把这次比赛中和队友及老师在一起美好的回忆与比赛中的艰辛,努力过程,项目中的经验记录下来。

此次参加比赛的队伍是由我、其他三人、及指导老师成的。当时组队的情况大概是这样的——由于我在前一年2009年的软件创新大赛的时候跟学长们一起参与过比赛,有比赛经验,而且编程能力较强,也在社会上接手过实际项目,李巍宏也是一位技术非常强的同学,我们平时就会在一起交流研究,所以开始就由我跟李巍宏牵头找到了其他两位组员。这里我先做一下自我介绍,我一直是对计算机充满热情的人。对与电脑相关的一切都很感兴趣。自己学了不少的知识,参与过大大小小不少的项目。近年来对实时图形学非常感兴趣(这也为我们这次的项目增添了几分成功的把握)。由于各种原因,队伍组建之初我就当上了组长,这其中也获得了不少的经验。

忘不了当时第一次全组一起开会讨论的情景。因为从那时开始,我们的队伍就算是正式组建,开始活动了。当然,最初的目标就是全国第一。那个时候我们开始选题,一个人考虑题目是十分不现实的,当然几个人坐在一起空想也是不会有太大结果的,我当时仅凭自己的一些经历,自己的一些想法,提出了建议(最后没有被采纳)。最后一致决定找学校里的老师,跟老师们一起讨论选题,一定会有更好的结果。于是过了两天我们一起找到了廖老师。我上一次参与的是3D的项目,自己又对图形学特别有学习,结合数字铁路的建设又是铁道部2010年的头号创新发展方向。我们针对比赛的要求,以及个人的能力。选择了这个3D数字铁路的项目。在此还得再次感谢廖老师给了我们这么好的建议。在这一年的夏天介绍我去上海铁路通信工厂单位以采集数据为名进行了为期一个多月的实习。
查看完整版 “2010年全国软件创新大赛经验心得”

Last modified on September 3, 2012

Categories: Life
No Comments »

« | Home | »

Leave a Reply