﻿<?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++博客-C大调如歌的行板-随笔分类-游戏编程</title><link>http://www.cppblog.com/jedi-CY/category/11027.html</link><description>我也来发明山楂车轮</description><language>zh-cn</language><lastBuildDate>Tue, 31 May 2011 16:01:27 GMT</lastBuildDate><pubDate>Tue, 31 May 2011 16:01:27 GMT</pubDate><ttl>60</ttl><item><title>我也来个俄罗斯方块</title><link>http://www.cppblog.com/jedi-CY/archive/2011/05/31/147805.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Tue, 31 May 2011 15:56:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2011/05/31/147805.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/147805.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2011/05/31/147805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/147805.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/147805.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1&nbsp;g_LineWidth=10&nbsp;&nbsp;2&nbsp;g_LineHeight=15&nbsp;&nbsp;3&nbsp;g_Speed=300;越小越快...&nbsp;&nbsp;<a href='http://www.cppblog.com/jedi-CY/archive/2011/05/31/147805.html'>阅读全文</a><img src ="http://www.cppblog.com/jedi-CY/aggbug/147805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2011-05-31 23:56 <a href="http://www.cppblog.com/jedi-CY/archive/2011/05/31/147805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>某移植一个以一大堆界面表现为主的游戏终于上线了~</title><link>http://www.cppblog.com/jedi-CY/archive/2011/03/27/142794.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Sun, 27 Mar 2011 09:25:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2011/03/27/142794.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/142794.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2011/03/27/142794.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/142794.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/142794.html</trackback:ping><description><![CDATA[<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Simsun; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span>
<div style="BORDER-BOTTOM: rgb(187,187,187) 1px solid; BORDER-LEFT: rgb(187,187,187) 1px solid; PADDING-BOTTOM: 32px; BACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 32px; PADDING-RIGHT: 32px; BORDER-TOP: rgb(187,187,187) 1px solid; BORDER-RIGHT: rgb(187,187,187) 1px solid; PADDING-TOP: 32px; background-origin: initial; background-clip: initial">公司第一个iphone平台的游戏<br>欢迎有iphone、ipad、ipod的童鞋安装测试</div>
<div style="BORDER-BOTTOM: rgb(187,187,187) 1px solid; BORDER-LEFT: rgb(187,187,187) 1px solid; PADDING-BOTTOM: 32px; BACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 32px; PADDING-RIGHT: 32px; BORDER-TOP: rgb(187,187,187) 1px solid; BORDER-RIGHT: rgb(187,187,187) 1px solid; PADDING-TOP: 32px; background-origin: initial; background-clip: initial">app store-&gt;游戏-&gt;免费-&gt;角色扮演类（或策略类）-&gt;发布日期排序 梦想帝王Online</span></div>
<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/jedi-cy/iphonedw.jpg" width=787 height=312><br>
<div style="BORDER-BOTTOM: rgb(187,187,187) 1px solid; BORDER-LEFT: rgb(187,187,187) 1px solid; PADDING-BOTTOM: 32px; BACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 32px; PADDING-RIGHT: 32px; BORDER-TOP: rgb(187,187,187) 1px solid; BORDER-RIGHT: rgb(187,187,187) 1px solid; PADDING-TOP: 32px; background-origin: initial; background-clip: initial">之前提到的多点触摸问题，为了赶进度，直接砍掉了，还有不少引擎问题，或者缺少的功能，在进度的压力下，来不及重构，直接砍掉。。。。<br><br>总的来说，是一个一大堆界面表现为主的2d游戏，客户端的压力不大，技术也没有深的难度，但作为没有完整开发经验的我，也付出不少代价，比如一开始还处于自由发挥，狗不理的阶段，自己对目标游戏心中已有成型，于是做了一些优化效率的东西，到了真正确定开发某游戏时，发现目标游戏和原自己想的要求差别还是不少的，加上没有考虑维护的问题，于是前面的优化就白做了。<br><br>得出一个结论：不能无目的性过早的优化效率<br><br>另外，涉及到比较烦的东西多啊，比如测试商品购买时，消费性商品居然购买后要等半个小时再购买才允许，不然就一直以为出bug了云云......再加上iphone系统不同版本api居然功能还不同，有些api不向上兼容，有些又不向下兼容。。。。。主要时间都浪费在这些上面了</div>
<img src ="http://www.cppblog.com/jedi-CY/aggbug/142794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2011-03-27 17:25 <a href="http://www.cppblog.com/jedi-CY/archive/2011/03/27/142794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多点触摸的GUI？</title><link>http://www.cppblog.com/jedi-CY/archive/2010/12/17/136813.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Fri, 17 Dec 2010 15:26:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2010/12/17/136813.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/136813.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2010/12/17/136813.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/136813.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/136813.html</trackback:ping><description><![CDATA[<div>又好久没有更新blog了，这段时间仍然是造那个车轮，是一个用opengl es1.0 + 一些平台相关的工具函数，实现的2d游戏gui引擎，还造得破破烂烂不堪入目的那种。结果却拿去做移植一个以gui表现为主的游戏。。。。。一开始还好，只是各种消息焦点、对象Capture引发的问题，直到后来的多点触摸。。。。。</div><div><br></div><div><br></div><div><br></div><div><br></div><div>刚开始虽然没有多点触摸的需求，但也是留有一个多点触摸的接口的，就是各种TouchDown、TouchMove、TouchUp里面都有传递一个TouchID，后来确定了使用多点触摸，于是原来的地方就出现了问题：</div><div><br></div><div>1、第一个手指点下某个对象A（比如按钮），这时A就记住了被某个TouchID点下的状态，保持点下状态，同时另外一个手指点击另一个对象B按钮，B按钮响应点击弹出一个界面，这个界面就把A挡在后面了，这时第一个手指才弹起来，这时的UI控件树第一个遍历到的是上面那个界面，于是A响应不到弹起的事件了。。。。</div><div><br></div><div>2、正常的UI消息传递都是父对象先把touch消息传给各个子对象，发现没有子对象响应时，才考虑父对象自己的响应。但如今要模仿iphone的那个滚动列表，滚动列表容器里面放了很多子对象，一开始，滚动容器处于静止状态，按下和弹起时，确实子对象先响应，但按下并移动到一个阈值，滚动容器进入滚动状态，于是让子对象响应失去消息，后面的移动就都是响应滚动了，直到弹起并再次点击，才响应停止滚动，进入正常状态。这样就有一个问题：无法嵌套多个滚动对象？，另外，也出现了各种响应不正常的bug</div><div><br></div><div>3、这个问题从上面扩展开来。一个项目做了一半，又要加入多点触摸进行放大缩小的功能，再加上上面的滚动列表功能，为了保持原来的功能不变，滚动列表的代码不改，于是设计了一个多点触摸对象作为父对象，初始化时确定最大支持的触控数量值，响应触摸时，响应回调函数来处理各种功能，另外回调函数还可以决定是否把触摸消息传给子对象。这样假设初始化一个2点触摸对象，回调函数判断只有一个触摸时，传递给滚动列表子对象，有两个触摸时，让滚动列表子对象失去消息，并再不传递给它，照理来说应该不会有什么隐患，不过测试多次，也是会出现响应不正常的bug。</div><div><br></div><div>解决方案：UI控件对象保存自己被哪个Touch对象响应到 是有缺陷的，应该是实现一系列Touch对象，让Touch对象保存响应的UI对象。这样貌似整个框架要重构？</div><img src ="http://www.cppblog.com/jedi-CY/aggbug/136813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2010-12-17 23:26 <a href="http://www.cppblog.com/jedi-CY/archive/2010/12/17/136813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二次地形实践 GeoMipMap 动态地形块渲染</title><link>http://www.cppblog.com/jedi-CY/archive/2010/02/09/107615.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Tue, 09 Feb 2010 11:24:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2010/02/09/107615.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/107615.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2010/02/09/107615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/107615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/107615.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 之前的一篇文章实现的是完全基于四叉树的动态地形渲染，虽然感觉那种方案是最优美的方案，假设CPU和GPU速度上没有差别的话，那种方案应该是最佳的了。但是现实中CPU速度还是比GPU慢不少的，因此，参考了这篇文章：http://nvidia.e-works.net.cn/document/200908/article8938_2.htm&nbsp;并按其思路实现了分块的地形LOD算法，整体思路感觉比之...&nbsp;&nbsp;<a href='http://www.cppblog.com/jedi-CY/archive/2010/02/09/107615.html'>阅读全文</a><img src ="http://www.cppblog.com/jedi-CY/aggbug/107615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2010-02-09 19:24 <a href="http://www.cppblog.com/jedi-CY/archive/2010/02/09/107615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>终于成功导出蒙皮了</title><link>http://www.cppblog.com/jedi-CY/archive/2010/01/18/105962.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Mon, 18 Jan 2010 11:59:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2010/01/18/105962.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/105962.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2010/01/18/105962.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/105962.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/105962.html</trackback:ping><description><![CDATA[主要是矩阵空间变换比较复杂，写下大概流程：<br><br>首先涉及到4个重要的矩阵<br>1、各个骨骼的本地矩阵空间，这个在3dmax导出xml中直接得到，是NodeTM结点的信息<br>2、整个骨骼模型的矩阵空间，在循环过程中，所有骨骼的变换矩阵空间都要转化到整个骨骼模型的矩阵空间，其中根骨骼的本地矩阵空间和整个模型矩阵空间一样，而子骨骼则要一级一级转化到根骨骼的矩阵空间中<br>3、网格的自身矩阵，即导出的各个顶点数据都是在这个矩阵空间下的。<br>4、网格模型的矩阵，在3dmax中对物体进行各种旋转、移动操作，会影响到这个矩阵，这个在3dmax导出xml中直接得到，也是NodeTM结点的信息。<br><br>循环过程中的矩阵转化：<br>1、获得各个骨骼初始时刻时，在上面第2点的矩阵空间中的值Mb0，这个直接一级一级乘以父骨骼矩阵空间即可；（这一步在初始化时计算一次即可）<br>2、同样方法获得各个骨骼的t时刻，在上面第2点矩阵空间中的值Mbt；<br>3、Mb0到Mbt的变换矩阵Mbx，Mbx=（~Mb0）*Mbt；<br>4、对各个顶点，获取所绑定的骨骼的Mbx，Mbx和原始顶点相乘即得到这个顶点在t时刻，完全受该骨骼控制时的值，如果有多个骨骼控制，则计算多个值，根据权重进行分配，得出最终需要的顶点位置，这一步我在shader中实现。<br><br><br><br><br>这里有一点把我整了好久的就是：3dsmax中，骨骼对顶点影响的方式是：顶点在世界空间中的影响，即上面提到&#8220;矩阵转化&#8221;的第4步。顶点要乘以&#8216;网格模型的矩阵&#8217;（上面提到矩阵的第4个），得到的新顶点才是骨骼要影响的顶点！！！！而我们在导出xml后，一般都是直接把顶点的数据做为Vertex Buffer Object，所以一般都是不改动的。而对于&#8216;网格模型的矩阵&#8217;，我则在完成骨骼蒙皮后才乘上去。在3dmax中，骨骼对模型顶点的匹配却能够自动调整，即当你在3dmax中绑定好了骨骼动画后，再对模型进行动画关键帧设置时，动画关键帧是不会生效的！！！！！<br><br>于是我在这一点弄了好久才发现，最后我把所有对模型的平移、旋转等操作都设为0，直接在3dmax中对多边形的顶点元素进行移动、缩放、旋转（即相当于直接改变导出顶点数值，在3dmax中用那些旋转、平移、缩放工具是不会影响导出顶点数值的，而是影响了NodeTM标签），以匹配骨骼位置，这样才成功导出了和我程序算法一致的模型。这一点弄了好久。。。。。。。<br><br><br><br><br>不过终于还是整出来了，demo的模型是自己随便乱弄的一个模型，用的还是<a href="http://www.cppblog.com/jedi-CY/archive/2010/01/16/105834.html">上一篇日志</a>那个很搞笑的biped动作~~颜色表示的是顶点的权重信息（第4个骨骼被忽略）。<br><a title=蒙皮demo href="http://www.cppblog.com/Files/jedi-CY/ReleaseSkin.rar">蒙皮demo</a>&nbsp;（关闭程序时，蓝色控制台下面命令行输入&#8216;System.ShutDown&#8217;）<br><br><img height=602 alt="" src="http://www.cppblog.com/images/cppblog_com/jedi-cy/image_skin.jpg" width=804 border=0><br><br>
<img src ="http://www.cppblog.com/jedi-CY/aggbug/105962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2010-01-18 19:59 <a href="http://www.cppblog.com/jedi-CY/archive/2010/01/18/105962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IGame骨骼动画成功导出</title><link>http://www.cppblog.com/jedi-CY/archive/2010/01/16/105834.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Sat, 16 Jan 2010 13:10:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2010/01/16/105834.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/105834.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2010/01/16/105834.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/105834.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/105834.html</trackback:ping><description><![CDATA[从3ds max的bip动作库拿了个比较搞笑的~~~~<br><br><img height=604 alt="" src="http://www.cppblog.com/images/cppblog_com/jedi-cy/imagebone.jpg" width=803 border=0><br><br><a title=骨骼导出demo下载 href="http://www.cppblog.com/Files/jedi-CY/Releasebone.rar">骨骼导出demo下载</a>（xml文件夹包含max源文件、导出xml文件、生成自定义格式文件）<br>（关闭程序时，在蓝色控制台最下面那个命令行输入&#8220;System.ShutDown&#8221;即可）<br><br><br>需要注意的一点：<br><br>IGame在导出骨骼xml的时候，max 骨骼，是支持关键帧导出的；biped骨骼，则强制采样导出。<br>因为max骨骼的动画方式和其它关键帧动画没有什么区别，都是统一的3dsmax设定的那些node；而biped骨骼不同，作为插件，没有和3dsmax的设计保持一致性，你不能看到分开的移动、旋转、缩放的关键帧，在打开&#8220;图表编辑器&#8221;——&#8220;轨迹视图-曲线编辑器&#8221;中，你可以看到这些关键帧，但看不到关键帧间数值的曲线变化<br><br>因此，biped骨骼在做旋转时，关键帧之间的旋转不能超过180度，否则在四元数插值时，会变成小于180度方向的旋转；而max内置的骨骼不同，它默认使用欧拉角旋转，因此2个关键帧之间可以旋转任意大的角度。<br><br><br><br>下一步弄顶点蒙皮上去，就基本完整了 
<img src ="http://www.cppblog.com/jedi-CY/aggbug/105834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2010-01-16 21:10 <a href="http://www.cppblog.com/jedi-CY/archive/2010/01/16/105834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>赋格曲--iGame XML动画关键帧读取1</title><link>http://www.cppblog.com/jedi-CY/archive/2010/01/10/105367.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Sun, 10 Jan 2010 15:29:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2010/01/10/105367.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/105367.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2010/01/10/105367.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/105367.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/105367.html</trackback:ping><description><![CDATA[<p>整了一个晚上终于解决了动画关键帧的读取，主要问题是3ds max 不单只有旋转/缩放/位置的动画控制器，还有另外3个不常用的是不会导出的，而旋转/缩放/位置的控制器，又包含了很多种，例如注视目标啊、音频控制运动啊、路径约束啊.....因此要自己规定一下导出规则，都使用默认的控制器。而缩放部分也暂时先忽略。<br>而物体的运动和系统里面的biped人体骨骼运动又有不同，biped骨骼的运动是强制采样的（即每隔n帧采样一次，记录到xml中），而其它运动则是可以选择按关键帧记录，也可以采样。为了支持强大的biped体形蒙皮运动，只好把这2种控制器方式都写了。<br><br>四元数、矩阵、欧拉角的转换、插值等知识，可以参考<a href="http://www.euclideanspace.com/maths/">http://www.euclideanspace.com/maths/</a>，我是直接把代码搬下来了，感谢<img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emthup.gif" align=absMiddle border=0><br><br>导出暂时这么规定：<br><br>&lt;导出设置中：&gt;</p>
<p>选择max坐标系<br>不选择Save Mesh XML File</p>
<p>Controller Options：<br>选择 Relative</p>
<p>不选择 Force Sample<br>选择 Export Quaternions<br>Modifiers：<br>选择Skin<br>Normals：<br>选择 Per Vertex</p>
<p>Geom Options：<br>选择 Object Space<br>-------------------------------------------------<br>&lt;3ds max中&gt;：<br>关键帧位置要在开始和结束中<br>所有关键帧不能包含有缩放动画<br>如果有蒙皮，只能有一个mesh导出<br>可以有多个bone导出<br>bone的根结点不能有位移动画<br>物体暂时不能用多个贴图channel，不能有多重材质</p>
<p><br><br><a title=关键帧测试下载 href="http://www.cppblog.com/Files/jedi-CY/Release.rar">关键帧测试下载</a>（关闭程序时，在命令行里面输入&#8220;System.ShutDown&#8221;，按回车即可）<br><br>下一步应该弄蒙皮了，不过要把shader部分做好先</p>
<img src ="http://www.cppblog.com/jedi-CY/aggbug/105367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2010-01-10 23:29 <a href="http://www.cppblog.com/jedi-CY/archive/2010/01/10/105367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>升C小调前奏曲---完成3dsmax 插件iGame XML 导出的mesh部分</title><link>http://www.cppblog.com/jedi-CY/archive/2010/01/08/105198.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Fri, 08 Jan 2010 12:50:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2010/01/08/105198.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/105198.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2010/01/08/105198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/105198.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/105198.html</trackback:ping><description><![CDATA[为了方便获得带骨骼蒙皮、带关键帧动画的模型文件，为今后的自定义模型格式做准备，需要有一个3dmax模型导出的工具，由于懒得学习max script，下载了3dmax sdk也发现内容好多，技术资料也很少，感到自己写插件导出是比较费时了。不过无意间发现3ds max SDK自带有的iGame Export的工程，编译生成了一下，发现在自己的3dmax中可以使用，生成的xml也挺容易看懂，于是决定使用这个工具做为导出工具了。<br><br>下面就是这个插件，其c++源文件我修改了一点内容，修改的是对每一组顶点/面属性的值后面加了一个空格，方便对字符串用空格进行split。其c++源文件，可以在网上下载3dsmax SDK中得到。<br><a title="IGameExporter插件下载（已确认在3dmax 9中可使用用）" href="http://www.cppblog.com/Files/jedi-CY/IGameExporter.rar">IGameExporter插件下载（已确认在3dmax 9中可使用用）</a><br><br><br>目前只是完成了其中&lt;mesh&gt;标签部分的导出<br><br>在3dmax中的一个物体：<br><img height=518 alt="" src="http://www.cppblog.com/images/cppblog_com/jedi-cy/3dmax.jpg" width=614 border=0><br>导出的xml文件：<br><img height=477 alt="" src="http://www.cppblog.com/images/cppblog_com/jedi-cy/xml.jpg" width=585 border=0><br>&lt;mesh&gt;标签部分导入测试：<br><img height=631 alt="" src="http://www.cppblog.com/images/cppblog_com/jedi-cy/import.jpg" width=807 border=0><br><br>xml的其它标签还要继续研究，主要是Modifiers的顶点蒙皮权重，TMController的矩阵变换，材质标签准备忽略了....<br>
<img src ="http://www.cppblog.com/jedi-CY/aggbug/105198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2010-01-08 20:50 <a href="http://www.cppblog.com/jedi-CY/archive/2010/01/08/105198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>之前做的LOD动态地形</title><link>http://www.cppblog.com/jedi-CY/archive/2009/06/30/88882.html</link><dc:creator>陈昱(CY)</dc:creator><author>陈昱(CY)</author><pubDate>Tue, 30 Jun 2009 04:53:00 GMT</pubDate><guid>http://www.cppblog.com/jedi-CY/archive/2009/06/30/88882.html</guid><wfw:comment>http://www.cppblog.com/jedi-CY/comments/88882.html</wfw:comment><comments>http://www.cppblog.com/jedi-CY/archive/2009/06/30/88882.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/jedi-CY/comments/commentRss/88882.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jedi-CY/services/trackbacks/88882.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 看了何咏的文章（http://www.graphixer.com.cn/ShowWorks.asp?Type=1&amp;ID=28）后，再找到了最原始的那篇论文，也实现了一个，仅仅实现了动态地形优化部分，纹理等其它无关算法的内容没有加上去。使用OpenGL渲染，即以前做毕业设计时的框架，顺便也可以改进一下以前的游戏框架~这里就不说算法了，读者可以找找何咏说到的那篇论文，个人觉得主要难点是理解消除...&nbsp;&nbsp;<a href='http://www.cppblog.com/jedi-CY/archive/2009/06/30/88882.html'>阅读全文</a><img src ="http://www.cppblog.com/jedi-CY/aggbug/88882.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jedi-CY/" target="_blank">陈昱(CY)</a> 2009-06-30 12:53 <a href="http://www.cppblog.com/jedi-CY/archive/2009/06/30/88882.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>