<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Clayman的专栏]]></title><description><![CDATA[XNA, GPU Programming &amp;amp; Game Engine Design]]></description><link>https://blog.youkuaiyun.com/soilwork</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; soilwork]]></copyright><item><title><![CDATA[搬家了，新地址http://www.cnblogs.com/clayman/]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4196168</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4196168</guid><author>soilwork</author><pubDate>Mon, 18 May 2009 00:59:00 +0800</pubDate><description><![CDATA[   终于决定搬家，难用都还可以勉强忍受，可是最近居然开始乱封blog了，怕怕。可惜那么多文章带不走，手动把部份我觉得比较有价值的文章搬过去了。呵呵，欢迎大家有空过去看看:)。 此blog将不再更新...........]]></description><category></category></item><item><title><![CDATA[Geometry Clipmap Limits]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4187236</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4187236</guid><author>soilwork</author><pubDate>Fri, 15 May 2009 03:59:00 +0800</pubDate><description><![CDATA[ Geometry Clipmap Limits   我非常喜欢geometry clipmap的思想，甚至还翻译过Hoppe那篇著名的paper，显然这是越来越多的图形计算从cpu到gpu转移的经典例子之一。可惜一直都没有机会实现，直到前段时候，需要编写一个地形系统，终于有了尝试的机会。在完成地形之前，一切都非常好，不幸的是，当实现纹理时，却遇到了非常大的问题，再次印证了那句老话：没有实]]></description><category></category></item><item><title><![CDATA[InputManager Update Frequency]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4164579</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4164579</guid><author>soilwork</author><pubDate>Sun, 10 May 2009 04:28:00 +0800</pubDate><description><![CDATA[InputManager Update Frequency  仅供个人学习使用，请勿转载，勿用于任何商业用途。     很高兴上一篇文章引起了很多争论，主要是关于以什么频率更新InputManager。大概是上一篇文章说的不够清楚，所以我想再说的详细一点。    首先，为什么需要IM。Xna只提供了最基本的输入检测方式：只能主动查询某个按键是否被按下，没有事件支持，没有常用的keyJu]]></description><category></category></item><item><title><![CDATA[Make Your Game Input Robust]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4131371</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4131371</guid><author>soilwork</author><pubDate>Tue, 28 Apr 2009 05:14:00 +0800</pubDate><description><![CDATA[Make Your Game Input Robust 仅供个人学习使用，请勿转载，勿用于任何商业用途。    如果你读过 之前 那篇关于InputManager的文章，那么非常抱歉，最近发现那样的设计是有缺陷的。我又一次被隐藏的复杂性打败了-_-#。    问题一，以什么频率进行输入更新。对于XNA framework来说，每次程序主循环调用Update时，都会刷新KeyboardSta]]></description><category></category></item><item><title><![CDATA[More on Scene Management]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4131367</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4131367</guid><author>soilwork</author><pubDate>Tue, 28 Apr 2009 03:53:00 +0800</pubDate><description><![CDATA[ More on Scene Management仅供个人学习使用，请勿转载，勿用于任何商业用途。      相信很多人都看过Tom Forsyth那篇著名的文章>。我第一次看时，只觉得是Tom开的一个小玩笑。不过最近，随着对scene management研究的深入，感觉对于大多数游戏来说，scene graph确实不是那么必须。      由于scene graph实在是一个被严重]]></description><category></category></item><item><title><![CDATA[0.033秒的艺术 ---- XNA数学库中的陷阱]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4061094</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4061094</guid><author>soilwork</author><pubDate>Fri, 10 Apr 2009 02:14:00 +0800</pubDate><description><![CDATA[0.033秒的艺术 ---- XNA数学库中的陷阱仅供个人学习使用，请勿转载，勿用于任何商业用途。                上一次介绍了如何察看.net程序的asm代码，并且分析了System.Math下的部分函数。这一次，我们将更近一步，分析如何高效使用XNA中的数学的库。下文仅以Matrix和Vector3为例，其余类型均可依此类推。为了达到测试和演示的目的，我写了一段相当”]]></description><category></category></item><item><title><![CDATA[0.033秒的艺术 --- Know How System.Math Works]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4058944</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4058944</guid><author>soilwork</author><pubDate>Thu, 09 Apr 2009 11:23:00 +0800</pubDate><description><![CDATA[0.033秒的艺术 --- Know How System.Math Works仅供个人学习使用，请勿转载，勿用于任何商业用途。       在对.net程序进行调试或者性能测试时，常常需要查看生成的IL代码，但仅仅有IL代码还是不够的，有时我们还希望查看CLR生成的最终asm代码。在VS里，可以非常方便的查看最终的asm代码：当程序执行到断点时，在代码窗口右键选择Go To ]]></description><category></category></item><item><title><![CDATA[Book Review: ShaderX 7]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4048361</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4048361</guid><author>soilwork</author><pubDate>Sat, 04 Apr 2009 13:49:00 +0800</pubDate><description><![CDATA[         作为游戏图形开发者一年一度的大餐，ShaderX 7终于出版了。800页的厚度，近2kg重，创造了ShaderX系列的新记录。刚刚拿到手不久，做个简评。     Geometry Manipulation一共5篇文章，都是关于基于geometry shader的real-time tessellate，ATI技术大牛Natalya的一篇还提到了即将到来的DX 11中的Te]]></description><category></category></item><item><title><![CDATA[Skeletal Model and Skinning Animation]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/4033147</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/4033147</guid><author>soilwork</author><pubDate>Sun, 29 Mar 2009 03:25:00 +0800</pubDate><description><![CDATA[Skeletal Model and Skinning Animation仅供个人学习使用，请勿转载，勿用于任何商业用途。        为了方便讨论，先定义几个术语：Model，一系列MeshPart(MP)（类似d3d里的subset）的集合；MeshPart，组成Model的单元，包含定义几何体的实际数据以及材质，也是最小的渲染单元。       第一个问题，为什]]></description><category></category></item><item><title><![CDATA[MeshContent, GeometryContent and VertexContent]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3998791</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3998791</guid><author>soilwork</author><pubDate>Tue, 17 Mar 2009 17:08:00 +0800</pubDate><description><![CDATA[   MeshContent, GeometryContent and VertexContent仅供个人学习使用，请勿转载，勿用于任何商业用途。     相信所有第一次写custom content pipeline的人都会被这三个类弄晕，我也一样，这里做一个简单的小结。    MeshContent（MC）可以包含一系列子MeshContent和GeometryContent(]]></description><category></category></item><item><title><![CDATA[Scene Management --- Collision Detection]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3996310</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3996310</guid><author>soilwork</author><pubDate>Tue, 17 Mar 2009 00:13:00 +0800</pubDate><description><![CDATA[Scene Management --- Collision Detection 仅供个人学习使用，请勿转载，勿用于任何商业用途。     没有碰撞检测的引擎是不完整的。碰撞检测是引擎的基础服务之一，需要为渲染，物理仿真，AI和游戏逻辑都等众多子系统提供服务。由于碰撞检测本身设计到大量数学运算，以及各个子系统对碰撞检测需求的不同，使得它成了最难实现的部分。    碰撞检测需要解决的]]></description><category></category></item><item><title><![CDATA[Scene Management --- Culling]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3991302</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3991302</guid><author>soilwork</author><pubDate>Sun, 15 Mar 2009 01:32:00 +0800</pubDate><description><![CDATA[Scene Management --- Culling仅供个人学习使用，请勿转载，勿用于任何商业用途。     上次说到场景很大，物体很多时，每帧都把所有物体传递给渲染系统是不可能的。考虑到所见区域只是场景中的一小部分，因此，剔除视野之外的物体，就显得尤为重要，也就是常说的裁剪。本质上，裁剪算是碰撞检测的一部分，通过碰撞检测判断物体是否在视锥之内，但他和游戏里一般的碰撞检测还是有很大]]></description><category></category></item><item><title><![CDATA[Shaders for Game]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3986028</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3986028</guid><author>soilwork</author><pubDate>Fri, 13 Mar 2009 02:19:00 +0800</pubDate><description><![CDATA[       这个标题看起来有点奇怪，大部分人觉得shader的主要用途就是为游戏服务，可惜这最基本的概念却最容易被忽略。如果你经常访问这个blog，就知道我已经很久没有写任何关于shader的文章了。不是我不再对shader感兴趣，就像人人都爱写GUI程序一样，shader永远是游戏编程最让人兴奋的部分-----可以马上获得代码的直观视觉反馈，让人很有成就感。不过当我经历了一个产品的开发过程，并]]></description><category></category></item><item><title><![CDATA[3D Game Engine Design, Second Edition --- Go to Get it ！]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3982408</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3982408</guid><author>soilwork</author><pubDate>Wed, 11 Mar 2009 23:55:00 +0800</pubDate><description><![CDATA[         那么多年了，国内的出版商终于发行了一本像样的关于游戏引擎设计的书。以往的《game programming gems》和《GPU Gems》虽然是好书，可惜被翻译之后，大打折扣。     这本书其实应该算是3D Game Engine Architecture Engineering的第二版，因为Architecture是以wild magic3.0来讲的，而Desi]]></description><category></category></item><item><title><![CDATA[Scene Management --- scene graph]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3977539</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3977539</guid><author>soilwork</author><pubDate>Tue, 10 Mar 2009 20:13:00 +0800</pubDate><description><![CDATA[Scene Management -- scene graph仅供个人学习使用，请勿转载，勿用于任何商业用途。              下面是一个简化的游戏引擎数据流，每一帧，scene data作为数据源，输入到物理/碰撞检测和AI子系统，子系统更新所有物体的状态（包括位置，光照信息等等）,之后数据流入渲染系统，最终显式在屏幕上。         显然，后面两部分的效率都依]]></description><category></category></item><item><title><![CDATA[0.033秒的艺术 --- 二叉树遍历]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3972448</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3972448</guid><author>soilwork</author><pubDate>Mon, 09 Mar 2009 13:11:00 +0800</pubDate><description><![CDATA[0.033秒的艺术 --- 二叉树遍历仅供个人学习使用，请勿转载，勿用于任何商业用途。        最近在写一些关于树的操作，显然最常见的树操作就是遍历所有节点，而遍历节点，最常见的算法自然是递归。下面是最初的二叉树实现和遍历public class Node{    public Node left;    public Node right;    publi]]></description><category></category></item><item><title><![CDATA[When Mono Meets SIMD]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3852839</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3852839</guid><author>soilwork</author><pubDate>Sun, 25 Jan 2009 12:06:00 +0800</pubDate><description><![CDATA[     呵呵，正规军也有被游击队打败的时候，Mono2.2提供了对SIMD的支持，矢量运算性能大幅提高，远远超过了MS的实现，甚至与高度优化的C++代码有得一拼。虽然目前还无法和XNA协作，不过再次证明了managed code也可以写出非常高效的代码。不知道此时MS作何感想，希望在.net 4.0也看到对SIMD的支持。 ]]></description><category></category></item><item><title><![CDATA[一些关于引擎设计,Scene Management的文章]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3849462</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3849462</guid><author>soilwork</author><pubDate>Wed, 21 Jan 2009 23:29:00 +0800</pubDate><description><![CDATA[    这几天逛GameDev，几乎把所有和Scene Management相关的文章和帖子都翻遍了，看到各种牛人的讨论，受益匪浅啊，对研究引擎设计非常有用，把部分特别有意思的帖子列出来，希望对你也有帮助:)  (以下顺序不分前后) (update on 4.23.09)The Technology of a 3D Engine  part 1, part 2, part 3S]]></description><category></category></item><item><title><![CDATA[The Design of Model (part 2) ]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3772164</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3772164</guid><author>soilwork</author><pubDate>Wed, 14 Jan 2009 01:28:00 +0800</pubDate><description><![CDATA[The Design of Model (part 2)仅供个人学习使用，请勿转载，勿用于任何商业用途。    继续上次的讨论，所有渲染器支持的对象都必须支持接口Draw，那么Draw应该实现哪些职责呢？由于已经把材质作为单独的对象来管理，所以Draw只需要完成2个任务：设置几何数据，绘图。下面是一个可能的Draw方法实现：Draw(){    graphicsDevice.V]]></description><category></category></item><item><title><![CDATA[The Design of Model (part 1)]]></title><link>https://blog.youkuaiyun.com/soilwork/article/details/3764475</link><guid>https://blog.youkuaiyun.com/soilwork/article/details/3764475</guid><author>soilwork</author><pubDate>Tue, 13 Jan 2009 06:26:00 +0800</pubDate><description><![CDATA[The Design of Model (part 1)仅供个人学习使用，请勿转载，勿用于任何商业用途。              过去一段时间都做引擎设计，小有成果，过几天陆续整理出来，今天先发个引子吧. ^_^           第一步当然是定义模型数据，有了模型，才方便做后续开发。通俗一点说，就是要创建model类。也许你会说XNA或者说DirectX已]]></description><category></category></item></channel></rss>