﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-3d Game Walkman </title><link>http://www.cppblog.com/tonykee/</link><description>3d图形渲染，网络引擎 — tonykee's  Blog</description><language>zh-cn</language><lastBuildDate>Tue, 07 Apr 2026 16:42:29 GMT</lastBuildDate><pubDate>Tue, 07 Apr 2026 16:42:29 GMT</pubDate><ttl>60</ttl><item><title>最近的工作状态</title><link>http://www.cppblog.com/tonykee/archive/2011/06/15/148687.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Tue, 14 Jun 2011 16:20:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2011/06/15/148687.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/148687.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2011/06/15/148687.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/148687.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/148687.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近的工作状态 转向移动平台的3d开发&nbsp;&nbsp;<a href='http://www.cppblog.com/tonykee/archive/2011/06/15/148687.html'>阅读全文</a><img src ="http://www.cppblog.com/tonykee/aggbug/148687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2011-06-15 00:20 <a href="http://www.cppblog.com/tonykee/archive/2011/06/15/148687.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>有意义的光棍节，场景同屏500人，稳定在90帧以上达成，特发图庆祝</title><link>http://www.cppblog.com/tonykee/archive/2010/11/11/133367.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Thu, 11 Nov 2010 15:06:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2010/11/11/133367.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/133367.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2010/11/11/133367.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/133367.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/133367.html</trackback:ping><description><![CDATA[<img border=0 src="http://www.cppblog.com/images/cppblog_com/tonykee/500.jpg"><br>没时间搞渲染，渲染效果还很搓<br><br>不过大批量骨骼带多动作绘制的效率算是上去了，发图庆祝一下<br><br>大致的方法是：<br>编写MAX插件导出<br>使用多线程去计算骨骼动作（把max关键帧计算矩阵的方法模拟出来，并且套用上了，在其他核开线程去算，现在CPU都是多核的，不去利用岂不是浪费资源？）<br>骨骼逻辑分组，按逻辑组播放不同的动画集，动作自动融合<br>GPU进行顶点blend<br>然后按部件和材质分组进行批量绘制，由于用了dx10的drawinstance，效率还不错，绘制上不是瓶颈<br><br>而且已经支持了蒙皮模型的多部件拆分，换装，再完善一下就能做些更复杂的东西了<br><br>
<img src ="http://www.cppblog.com/tonykee/aggbug/133367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2010-11-11 23:06 <a href="http://www.cppblog.com/tonykee/archive/2010/11/11/133367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近在对骨骼导出插件进行重构，有了一些新的感悟</title><link>http://www.cppblog.com/tonykee/archive/2010/10/17/130221.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Sun, 17 Oct 2010 15:51:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2010/10/17/130221.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/130221.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2010/10/17/130221.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/130221.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/130221.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于骨骼矩阵的导出冗余数据的精简方法、其实做过蒙皮的人应该会知道，一套完整的骨骼动画的数据量最大的并不是顶点的数据，那个数量基本固定的，不会随动作的增长而变大，真正庞大的是骨骼的关键帧导出数据，本文讨论的是如何按线性差值压缩精简骨骼矩阵，特提出一套思路和算法<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tonykee/archive/2010/10/17/130221.html'>阅读全文</a><img src ="http://www.cppblog.com/tonykee/aggbug/130221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2010-10-17 23:51 <a href="http://www.cppblog.com/tonykee/archive/2010/10/17/130221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>闲暇之余决定把个人引擎进行第二次重构采用Dx10</title><link>http://www.cppblog.com/tonykee/archive/2010/06/17/118061.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Thu, 17 Jun 2010 03:48:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2010/06/17/118061.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/118061.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2010/06/17/118061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/118061.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/118061.html</trackback:ping><description><![CDATA[<p>时光荏苒，Dx9已经是廉颇老矣，如果不是xp最高只能支持到9，估计早已淡出市场<br><br>很多人说Dx10是个过渡产品，其实回头看看Dx10出来也有5年了，只是受xp拖累没有普及而已，我到觉得Dx10并非过渡产品，而且在很长一段时间内会存在甚至普及，只是可能没有Dx9那么长命罢了，现在看看Dx9和Dx10的差异还是相当大的，可以说把内部结构做的更严密，更规整，去掉了盘根错结的东西，写dx10的程序比dx9会严谨很多，抛弃固定管线，状态管理也做的更科学，某些方面甚至简化了一些，比如万恶的设备恢复问题，而Dx11和Dx10却十分的接近，现在win7已经普及了，而且近两年来随便一块破显卡都能支持SM4.0啦，但dx11要普及最少还要再等几年，主要是硬件还没跟上，普及需要时间。<br><br>所以目前dx11也只能尝鲜，dx10可以说时机成熟了<br><br>如今我尝试把过去写过的东西全部翻新一便，好好重构一次，也许会有巨大的收获吧。<br><br></p>
<img src ="http://www.cppblog.com/tonykee/aggbug/118061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2010-06-17 11:48 <a href="http://www.cppblog.com/tonykee/archive/2010/06/17/118061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>好久没有更新了，写写最近这一周的个人日志，关于3d场景水体渲染的</title><link>http://www.cppblog.com/tonykee/archive/2010/03/21/110256.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Sun, 21 Mar 2010 14:34:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2010/03/21/110256.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/110256.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2010/03/21/110256.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/110256.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/110256.html</trackback:ping><description><![CDATA[很长时间没有维护自己的博客了，真是不好意思，其实我这个博客最大的目的就是记录一些日记，对自己也是一个激励，这几个月工作很忙，个人引擎也渐渐段段搁置了一些时间，不过依然还在保持更新，最近这段时间加入了小植物的instancing，场景能根据chunk自动打包相同贴图的模型，而且支持子贴图（也就是一张大贴图中的一小部分作为植物的贴图，有点像小时候玩的画片一样），这样基本场景的所有地表植物，一两张贴图就足够了，效率非常高，另外就是好好把水重新构建了一下，水面本身的渲染就用了instancing技术，一次行渲染所有被裁减出来的水面块，水面用的两张NormalMap纹理动画，加入了水面的反射和折射（两个MRT)，反射多渲染了一次场景，加入了菲涅尔反射加强的光的反色饱和度，折射做了一次backbuffer的拷贝然后加入了normalmap纹理坐标的扰动，两个表面分别在水面的视椎和水底对称视椎投影到水面上进行渲染，总的来说效率还是过的去的，这个功能有一小部分参照了Nv的例子，好在周末两天就搞定了，并没有想象中那么困难，另外还有水底的光效（实际上只是个雾效）这是凭想象做的，有时间的话还要加上godlight以及水底地面对水面光影的反射效果，那样才更好看，现在这个样子不算特别好看，但也是马马虎虎了，好大堆参数还要单独做个水面板进行场景水体的参数配置，现在暂时没那么多时间了，不过还是老规矩，贴张图看看分别是水面和水底的<br><br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/tonykee/water.jpg" width=610 height=768>
<img src ="http://www.cppblog.com/tonykee/aggbug/110256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2010-03-21 22:34 <a href="http://www.cppblog.com/tonykee/archive/2010/03/21/110256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Early ZBuffer [转]</title><link>http://www.cppblog.com/tonykee/archive/2009/12/01/102326.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Tue, 01 Dec 2009 06:20:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2009/12/01/102326.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/102326.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2009/12/01/102326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/102326.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/102326.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/tonykee/archive/2009/12/01/102326.html'>阅读全文</a><img src ="http://www.cppblog.com/tonykee/aggbug/102326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2009-12-01 14:20 <a href="http://www.cppblog.com/tonykee/archive/2009/12/01/102326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始重构</title><link>http://www.cppblog.com/tonykee/archive/2009/10/11/98295.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Sun, 11 Oct 2009 02:38:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2009/10/11/98295.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/98295.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2009/10/11/98295.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/98295.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/98295.html</trackback:ping><description><![CDATA[对写过的东西来个彻底的整理，留精华，去糟粕，也许几千行的代码最后浓缩成几百行<br>我需要的是更清晰的结构，更好的可读性，更好的扩展性。<br><br>一个好的结构要壮大，必然要经历这个过程，有的部分金雕细琢，有的部分大刀阔斧推到重来，有的部分直接抛弃<br>这是个痛苦而快乐的过程，已经开始有一段时间了，随之精简有效的东西也慢慢呈现出来了。。。<br>
<img src ="http://www.cppblog.com/tonykee/aggbug/98295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2009-10-11 10:38 <a href="http://www.cppblog.com/tonykee/archive/2009/10/11/98295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>渲染方面加了一个bloom效果</title><link>http://www.cppblog.com/tonykee/archive/2009/09/14/96165.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Mon, 14 Sep 2009 14:17:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2009/09/14/96165.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/96165.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2009/09/14/96165.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/96165.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/96165.html</trackback:ping><description><![CDATA[<p>我的显示部分做的还不够强，这段时间实在是忙，为换工作的事忙和了半个月<br>总算如愿以偿，去了国内一家大型网游公司，马上需要接受更多新的挑战，现在手头许多工作只能暂时搁置<br><br>上个月做了一个bloom的效果，用的postprocess，backbuffer交换链方式的，后处理技术来实现的，这样的特效几乎是现在游戏的的标配了，实现技术有点老套，但即使是一点点改变，前后的效果也是大有改观啊，基本的思路可以去看SDK 里面的原版的例子，里面不止是bloom的特效，还有很多别的效果，这个例子非常值得推敲，用到的技术可以说是dx9里面非常成熟的一项技术了。<br><br>目前还没有加入HDRLight的光效，这个效果和bloom类似，但似乎比bloom更好，看什么时候有时间再弄个HDR版本的出来玩玩，下面是用了以后，和用之前的场景渲染效果对比，感觉光线柔和了一些，不会那么生硬，我觉得可以使用这个技术做出些别的特效，比如偏蓝，偏黄，老照片，黑白的特效，有点类似photoshop滤镜了，但是据说有些玩家看多了就很讨厌这样的效果，可能口味不同，因人而异吧<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/tonykee/bloom.jpg" width=1228 height=768></p>
<img src ="http://www.cppblog.com/tonykee/aggbug/96165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2009-09-14 22:17 <a href="http://www.cppblog.com/tonykee/archive/2009/09/14/96165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>浅谈状态机FSM设计方法</title><link>http://www.cppblog.com/tonykee/archive/2009/08/07/92556.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Fri, 07 Aug 2009 09:30:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2009/08/07/92556.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/92556.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2009/08/07/92556.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/92556.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/92556.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 看了一晚上FSM方面的资料，颇有收获，写写感悟：<br><br>状态机，在游戏里面是非常重要的，最简单的状态机，莫过于<br><br>switch()<br> case 1:<br>    if(not 反复执行状态1)<br>       进入1状态前要做的准备<br><br>    进入1状态的过程<br><br>    if(not 反复执行状态1)<br>       离开状态1的过程<br><br>  case2:<br>...&nbsp;&nbsp;<a href='http://www.cppblog.com/tonykee/archive/2009/08/07/92556.html'>阅读全文</a><img src ="http://www.cppblog.com/tonykee/aggbug/92556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2009-08-07 17:30 <a href="http://www.cppblog.com/tonykee/archive/2009/08/07/92556.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>游戏引擎方面，这一个月的进展日志</title><link>http://www.cppblog.com/tonykee/archive/2009/07/31/91836.html</link><dc:creator>李侃</dc:creator><author>李侃</author><pubDate>Fri, 31 Jul 2009 09:47:00 GMT</pubDate><guid>http://www.cppblog.com/tonykee/archive/2009/07/31/91836.html</guid><wfw:comment>http://www.cppblog.com/tonykee/comments/91836.html</wfw:comment><comments>http://www.cppblog.com/tonykee/archive/2009/07/31/91836.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/tonykee/comments/commentRss/91836.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tonykee/services/trackbacks/91836.html</trackback:ping><description><![CDATA[1。完成了全场景的路径搜索算法，这个算法比较复杂，不同于普通的A*算法，我采用的两次搜索，首先是地形矩阵压缩路径的粗搜索，然后是相邻tile块之间的细节分布式搜索的方式，也就是压缩路径搜索出来的是细节搜索的向导，这样可以实现路径的动态搜索，而且路径查找基本是个常量，超大地形搜索也不是问题。<br><br>2。完成了全场景小地图编辑器的功能，小地图能子在场景编辑器中按tile进行正交投影的自动拍摄，拍摄输出的图片能进行局部的拼合与拆分，还有打包，这充分考虑到美工对小地图进行二次编辑美化的需要<br><br>3。把全场景搜索功能和小地图进行了整合，鼠标点击场景或小地图均能实现自动寻路径<br><br>4。月末开始进行脚本引擎的接入，之前有研究过LUA，但由于种种原因最终确认选择了 C++ boost.python 导出的方式调用脚本，已经实现了stl&lt;实体&gt; 容器和python脚本之间的自由调用和通讯模块，接下来，开始整合一部分FSM有限状态机的模块，第一个切入点就是人物的攻击移动等等所有动作相应模块，准备写个人物动作调用的脚本，融入状态机模式，让这个胶水模块充分发挥它的威力。<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/tonykee/radar.jpg" width=859 height=768> 
<img src ="http://www.cppblog.com/tonykee/aggbug/91836.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tonykee/" target="_blank">李侃</a> 2009-07-31 17:47 <a href="http://www.cppblog.com/tonykee/archive/2009/07/31/91836.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>