Gamebryo系列材质详解:二
作者:volfmath 日期:2010-04-28
以下内容,在讲解过程中要不时的用到那张表格,希望你可以在合适的地方放置一边对照以便查看。
材质系统并不难理解,大白话就是我们经常说的“导出”。就是说美术人员在利用3D工具制作的那些东西,如果在游戏中使用。(其实这个比方不好.如果你很清楚的话.导出应该是把MAX里记录的数据转换成引擎所需要的数据.不仅仅是材质,还有顶点数据组织方式,包括位置,颜色,法线,多套UV数据,骨骼数据等等.而材质脚本是用来确定这些数据使用的方式.同样的数据可以有不同的表现,这就是Shader的作用.)MAX毕竟是一个通用软件,对于实时性比较高的游戏来说,我们很难百分百利用到所有Max的功能。这就需要数据间的一个对应。有些游戏的做法呢,是自己制作一个与Max差不多的东西,叫做引擎的工具,在他们自己工具里,给你规定好了一些可以使用的功能,而这些都是这款引擎所支持的功能。
另外一些呢,就是做了导出工具,例如gamebryo。也就说美术的面对的原始工具依然是他们熟悉的Max或者Maya,XSI等。然后他们会有一张长长的表,告诉你哪些是支持的哪些是不支持的,其实有不少就算是支持的,也仅仅是模拟跟Max中查看的效果不完全一致。
gamebryo的材质系统,相比那些只给出材质编写规范的引擎有几点好处:
1.完全隔离了美术与技术之间过多的无意义的讨论,比如美术描述我这里想要一种什么样的透明样式,技术人员要把它翻译成alpha_blend的方式等。这样会造成理解的误差,除非一个美术基础好,又懂技术的人员来完成,这样的人才是很少的。
2.规范了材质系统以后,gamebryo会根据不同的情况生成不同的材质脚本文件。(这里我们假设你的机器已经可以使用可编程管线了,事实上gamebryo的材质系统绝大部分是可以用固定管线实现的,而gamebryo也做到了对硬件不依赖。但这不是我们讨论的重点)。比如使用Normal Map的和不使用的,两个材质脚本(这里是Shader实现的)就有些不同。具体的以后在细分析。而这些不同是通过gamebryo内部的所谓Shader tree完成的。
材质系统并不难理解,大白话就是我们经常说的“导出”。就是说美术人员在利用3D工具制作的那些东西,如果在游戏中使用。(其实这个比方不好.如果你很清楚的话.导出应该是把MAX里记录的数据转换成引擎所需要的数据.不仅仅是材质,还有顶点数据组织方式,包括位置,颜色,法线,多套UV数据,骨骼数据等等.而材质脚本是用来确定这些数据使用的方式.同样的数据可以有不同的表现,这就是Shader的作用.)MAX毕竟是一个通用软件,对于实时性比较高的游戏来说,我们很难百分百利用到所有Max的功能。这就需要数据间的一个对应。有些游戏的做法呢,是自己制作一个与Max差不多的东西,叫做引擎的工具,在他们自己工具里,给你规定好了一些可以使用的功能,而这些都是这款引擎所支持的功能。
另外一些呢,就是做了导出工具,例如gamebryo。也就说美术的面对的原始工具依然是他们熟悉的Max或者Maya,XSI等。然后他们会有一张长长的表,告诉你哪些是支持的哪些是不支持的,其实有不少就算是支持的,也仅仅是模拟跟Max中查看的效果不完全一致。
gamebryo的材质系统,相比那些只给出材质编写规范的引擎有几点好处:
1.完全隔离了美术与技术之间过多的无意义的讨论,比如美术描述我这里想要一种什么样的透明样式,技术人员要把它翻译成alpha_blend的方式等。这样会造成理解的误差,除非一个美术基础好,又懂技术的人员来完成,这样的人才是很少的。
2.规范了材质系统以后,gamebryo会根据不同的情况生成不同的材质脚本文件。(这里我们假设你的机器已经可以使用可编程管线了,事实上gamebryo的材质系统绝大部分是可以用固定管线实现的,而gamebryo也做到了对硬件不依赖。但这不是我们讨论的重点)。比如使用Normal Map的和不使用的,两个材质脚本(这里是Shader实现的)就有些不同。具体的以后在细分析。而这些不同是通过gamebryo内部的所谓Shader tree完成的。
Gamebryo系列材质详解:一
作者:volfmath 日期:2010-04-28
前一阵子我贴出了Gamebryo的材质管线的图片,没加解释的贴出的。我想对于明眼人有经验的人一眼就能看出他的思路是什么,高手通常还能分析出他的局限性与弊端。但是还是受到很多很多的回复。最近的很多经历让我觉得有必要详解一下整个这张图片。
我力求做到国内解释的最详细的一篇,或许比官方还详细吧。但是由于我的知识层次结构,或许并不能面面俱到,所以如果你有新的观点也不妨给我指出吧。
首先,我是一个程序,所以里面设计的大部分知识,偏重于图形学基础知识。可编程管线,Shader流水线,坐标变换,甚至微分几何。但是对于美术而言我就欠缺很多,不过好在我得到了很多美术同行的帮助,也会穿插讲一些美术方面的注意事项,以及实际项目过程中使用这套材质系统的经验。而对于后两条实际上,就目前我的菜鸟水平,是很泛泛的也是最需要行家来补充的。当然如果可以,我也将一些在MAX,Maya中如何操作以及一些在项目开发过程中遇到的问题,修改,或者弥补的方式。
几点建议:
1.适合人群:中低层次游戏开发人员,引擎开发人员,有志于从事图形方面研究的起步人员,懂程序的美术,懂美术的程序。高手请绕道吧。
2.也是我最想说的:任何引擎,或者说任何技术都有其所谓的局限性,就是CE3也不是万能的。当然这套材质系统更谈不上十全十美,我经常听到美术抱怨引擎的拙劣,或者程序抱怨美术的滥用。因为在技术日新月异的今天我们时常忘记了游戏画面的本质,我们常常吹嘘自己有了一款怎么怎么样的引擎,我们常常吹嘘自己能实现什么样的技术,但是永远不要忘记,技术只是手段,而不是苛求。一款游戏唯有风格确定了,知道我们要做什么,要实现什么样的画面,才能考虑怎样去做,而这些恰恰与引擎毫无关系。那些长久的,被人们时常拿来称颂的游戏没有一款是仅仅因为引擎而强大的。我想这不仅仅是美术开发的问题,程序又何尝不是,我记得那时候做工具的时候,有一天掌握了Command模式,我高兴的不得了,后来又一天,我发现Boost bind这个东西更是兴奋了半宿没睡。于是开始滥用设计模式,模板,沉迷于语言的技巧中不可自拔,以至于在项目中出现了很多问题,才让我清醒的认识到。简单的才是美的。时间会证明一切,只有那些最简单的最明了的东西才是长远的。扯远了。下面正式开始。
我力求做到国内解释的最详细的一篇,或许比官方还详细吧。但是由于我的知识层次结构,或许并不能面面俱到,所以如果你有新的观点也不妨给我指出吧。
首先,我是一个程序,所以里面设计的大部分知识,偏重于图形学基础知识。可编程管线,Shader流水线,坐标变换,甚至微分几何。但是对于美术而言我就欠缺很多,不过好在我得到了很多美术同行的帮助,也会穿插讲一些美术方面的注意事项,以及实际项目过程中使用这套材质系统的经验。而对于后两条实际上,就目前我的菜鸟水平,是很泛泛的也是最需要行家来补充的。当然如果可以,我也将一些在MAX,Maya中如何操作以及一些在项目开发过程中遇到的问题,修改,或者弥补的方式。
几点建议:
1.适合人群:中低层次游戏开发人员,引擎开发人员,有志于从事图形方面研究的起步人员,懂程序的美术,懂美术的程序。高手请绕道吧。
2.也是我最想说的:任何引擎,或者说任何技术都有其所谓的局限性,就是CE3也不是万能的。当然这套材质系统更谈不上十全十美,我经常听到美术抱怨引擎的拙劣,或者程序抱怨美术的滥用。因为在技术日新月异的今天我们时常忘记了游戏画面的本质,我们常常吹嘘自己有了一款怎么怎么样的引擎,我们常常吹嘘自己能实现什么样的技术,但是永远不要忘记,技术只是手段,而不是苛求。一款游戏唯有风格确定了,知道我们要做什么,要实现什么样的画面,才能考虑怎样去做,而这些恰恰与引擎毫无关系。那些长久的,被人们时常拿来称颂的游戏没有一款是仅仅因为引擎而强大的。我想这不仅仅是美术开发的问题,程序又何尝不是,我记得那时候做工具的时候,有一天掌握了Command模式,我高兴的不得了,后来又一天,我发现Boost bind这个东西更是兴奋了半宿没睡。于是开始滥用设计模式,模板,沉迷于语言的技巧中不可自拔,以至于在项目中出现了很多问题,才让我清醒的认识到。简单的才是美的。时间会证明一切,只有那些最简单的最明了的东西才是长远的。扯远了。下面正式开始。
在复旦视觉艺术学院练琴
作者:volfmath 日期:2010-04-05
Gamebryo帧渲染系统详解
作者:volfmath 日期:2010-03-31
如果没记错的话,我曾经写过一篇关于Gamebryo帧渲染系统的内容。估计当时剖析的不是太详细。那么现在我在这里重新讲一下帧渲染系统,希望能把他将清楚。由于我手头没有代码,而且又是商业引擎,所以很多函数我并不是完整的使用gamebryo中的,能使用伪代码的地方我尽量使用伪代码。
好,首先再次强调下帧渲染系统是逻辑系统,严格上跟渲染没有任何关系,就是说如果你可以绕开帧渲染系统,一样可以画出想描画的东西,只不过GB这样做的目的是使得渲染层次更加清晰,灵活了。
OGRE也有类似的概念,在Ogre中也可以定义自己的层,但是由于没有帧渲染系统,所以层次上不如Gamebryo灵活,方便易用。
RenderFrame 和RenderStep我就不再赘述了,因为这两个概念很简单,里面也没有实质性的内容。你想怎么理解都可以,前者是后者的超集,Step又是Click的超集。
详细说一下RenderClick和RenderView。RenderView可以理解成我们所要描画的物件。RenderView里有AppendScene这样的接口,就可以把所有想View的东西都挂接上去。RenderView里还有个重要的工具叫做Culler,Culler是做什么用的呢?是负责裁剪的,这里的裁剪是逻辑上的裁剪,就是精确到几何体级别的裁剪。(注意不是三角面级别的)。Culler是作为Processor被加进去的,就是一个裁剪的过程。Culler提供了一些抽象接口,来满足用户的自定义裁剪。就是说你可以根据你的需要来在渲染前进行裁剪。
下面说到RenderClick,RenderClick精确的字面意思就是一次描画,这个类的功能也基本是这样,知道了要画的东西,但是要画到什么上去就需要RenderClick了,每个RenderClick对应了一个RenderTarget。就是要描画的地方。一个描画的过程是这样的,首先找到RenderTarget就是要描画的地方,因为如果是后期特效,有时候会有多个RenderTarget。
好,首先再次强调下帧渲染系统是逻辑系统,严格上跟渲染没有任何关系,就是说如果你可以绕开帧渲染系统,一样可以画出想描画的东西,只不过GB这样做的目的是使得渲染层次更加清晰,灵活了。
OGRE也有类似的概念,在Ogre中也可以定义自己的层,但是由于没有帧渲染系统,所以层次上不如Gamebryo灵活,方便易用。
RenderFrame 和RenderStep我就不再赘述了,因为这两个概念很简单,里面也没有实质性的内容。你想怎么理解都可以,前者是后者的超集,Step又是Click的超集。
详细说一下RenderClick和RenderView。RenderView可以理解成我们所要描画的物件。RenderView里有AppendScene这样的接口,就可以把所有想View的东西都挂接上去。RenderView里还有个重要的工具叫做Culler,Culler是做什么用的呢?是负责裁剪的,这里的裁剪是逻辑上的裁剪,就是精确到几何体级别的裁剪。(注意不是三角面级别的)。Culler是作为Processor被加进去的,就是一个裁剪的过程。Culler提供了一些抽象接口,来满足用户的自定义裁剪。就是说你可以根据你的需要来在渲染前进行裁剪。
下面说到RenderClick,RenderClick精确的字面意思就是一次描画,这个类的功能也基本是这样,知道了要画的东西,但是要画到什么上去就需要RenderClick了,每个RenderClick对应了一个RenderTarget。就是要描画的地方。一个描画的过程是这样的,首先找到RenderTarget就是要描画的地方,因为如果是后期特效,有时候会有多个RenderTarget。
关于代数的一切:一
作者:volfmath 日期:2010-03-30
很多童鞋觉得几何比代数好学,其实上学那时我也有这样的感觉。最值得骄傲的一次是初中数学竞赛,我记得当时一道几何题全省不到10个人做出来,然后我居然是其中之一,哈哈。当时对平面几何还是很有研究的。
但是现在我发现很多事情并不是想象中这样。几何学起来非常困难了反倒是,代数我看看书做做题尚能跟得上,但几何总是不开窍。究其缘由,我觉得我应该去课堂听课,我觉得几何这种非常依赖直觉的东西必须身临其境的去听才能有感觉,知道他一步一步构造的过程,可惜我现在没有这样的条件。
好吧,只能说说代数了。首先我觉得抽象代数是门很有意思的学科。很迷人。至于我们是怎么被迷上的,这可能要讲到早期的一本启蒙书记,其实不算是数学教科书,只是一本课外读物叫数学的故事,然后就要提到一个传奇的人物,伽罗瓦。学过代数的同学们对他生平的了解应该比我多得多。关于他的贡献,首先是5次方程的根式解。我觉得中学一直到大学很奇怪的是,没有正经的教科书上讲到过超过3次的方程解法。其实人类在解出2次方程以后,就是韦达定理以后,经历了一个漫长的时间,人类开始研究3次及高次方程的解法。数学的故事也有这段介绍,是有些非常有意思的故事,可以找些书来看看。再往后,3次方程有了通解后4次方程没费多大劲就有了解法。再然后就如你知道的那样,为了5次方程,数学界损失两位璀璨的新星:阿贝尔和伽罗瓦。
其实群不是伽罗瓦最先提出的,但是天才的他最早认识到了伽罗瓦群。当然5次方程没有根式解的证明,在这里不是不是我一句话能说清的。当然关于伽罗瓦的贡献各有各的说法,很多人觉得伽罗瓦提出了同构的概念,而同构在数学上是非常重要的概念,怎么称赞他都不会过。没有同构,拓扑就没有同胚,整个拓扑的基础都没有,没有同构,连实数都定义不了,到底是以戴德金的模型为准还是康托尔呢?可能还在争论中哦,可是有了同构,就好解释了,谁也不用争执了,他们的模型是同构的。
但是现在我发现很多事情并不是想象中这样。几何学起来非常困难了反倒是,代数我看看书做做题尚能跟得上,但几何总是不开窍。究其缘由,我觉得我应该去课堂听课,我觉得几何这种非常依赖直觉的东西必须身临其境的去听才能有感觉,知道他一步一步构造的过程,可惜我现在没有这样的条件。
好吧,只能说说代数了。首先我觉得抽象代数是门很有意思的学科。很迷人。至于我们是怎么被迷上的,这可能要讲到早期的一本启蒙书记,其实不算是数学教科书,只是一本课外读物叫数学的故事,然后就要提到一个传奇的人物,伽罗瓦。学过代数的同学们对他生平的了解应该比我多得多。关于他的贡献,首先是5次方程的根式解。我觉得中学一直到大学很奇怪的是,没有正经的教科书上讲到过超过3次的方程解法。其实人类在解出2次方程以后,就是韦达定理以后,经历了一个漫长的时间,人类开始研究3次及高次方程的解法。数学的故事也有这段介绍,是有些非常有意思的故事,可以找些书来看看。再往后,3次方程有了通解后4次方程没费多大劲就有了解法。再然后就如你知道的那样,为了5次方程,数学界损失两位璀璨的新星:阿贝尔和伽罗瓦。
其实群不是伽罗瓦最先提出的,但是天才的他最早认识到了伽罗瓦群。当然5次方程没有根式解的证明,在这里不是不是我一句话能说清的。当然关于伽罗瓦的贡献各有各的说法,很多人觉得伽罗瓦提出了同构的概念,而同构在数学上是非常重要的概念,怎么称赞他都不会过。没有同构,拓扑就没有同胚,整个拓扑的基础都没有,没有同构,连实数都定义不了,到底是以戴德金的模型为准还是康托尔呢?可能还在争论中哦,可是有了同构,就好解释了,谁也不用争执了,他们的模型是同构的。
修改了Blog的一些内容
作者:volfmath 日期:2010-03-30
首先是底部加上了GoogleFriendConnect 希望有谷歌帐号,推特帐号等的用户可以登录进来评论
这个系统的评论我觉得比部落格本身的评论系统强大多了
另外去掉了阿里妈妈的广告,因为太多脚本载入太慢。其实广告是没人点的,我之前只是用来统计流量的 :(
修改了CSS,不再支持IE6,转而IE7或者Chrmod,Firefox。
如果你还是老浏览器,最好能更新下,因为其他浏览器可能不妨碍内容的阅读
但是式样看起来不那么舒服
另外PJ这套系统不是太好 等以后我可能也要转到WP阵营了 或者Typecho。
这个系统的评论我觉得比部落格本身的评论系统强大多了
另外去掉了阿里妈妈的广告,因为太多脚本载入太慢。其实广告是没人点的,我之前只是用来统计流量的 :(
修改了CSS,不再支持IE6,转而IE7或者Chrmod,Firefox。
如果你还是老浏览器,最好能更新下,因为其他浏览器可能不妨碍内容的阅读
但是式样看起来不那么舒服
另外PJ这套系统不是太好 等以后我可能也要转到WP阵营了 或者Typecho。
讲讲学拓扑的心得吧
作者:volfmath 日期:2010-02-27
先讲讲我用的书吧,北大尤老师的那本红书和熊金城《点集拓扑讲义》,另外一本Armstrong的拓扑学。个人觉得尤的书跟熊的那本比还是不太好,熊的那本至少在点集拓扑上讲的算是非常好了,由于我的水平有限,目前也就懂点点集拓扑的东西,对代数拓扑还模模糊糊。。。Armstrong的那本非常不错,重点推荐。特别是Hausdorff空间那块讲的非常不错。另外这本拓扑学是UTM套书之一,也可以从一个侧面看出他的价值。
一个优秀的科学工作者,会把复杂抽象的东西说的很平民化。而一个三流的科学从业人员,象我国的大部分高校教师往往会把一个简单的问题说的复杂,这就是差距。其实我们经常在给别人讲一个问题的时候也常常遇到,究其缘由就是对知识理解的不深刻。当你透彻的掌握一个问题的时候,你就会旁征博引,分析的非常透彻。
Armstrong就是这样的一个大家,虽然拓扑学严谨形式化的东西很多很多,但在Armstrong的笔下显得生动有趣,第十章虚拟的一段代数学家和几何学家的对话也表现出作者更加注重对几何直观的认识,而避免落入纷繁的代数细节中去。
第一章从Euler定理讲起,谈到欧拉示性数。然后从很多拓扑不变性的难以计算向我们展示了引入拓扑的动机。后面一章自然而然的提到了连通性,比较复杂的地方是新手对紧致性的理解。这是因为我们生活的空间太完美了,Hausdorff, 局部紧致, 单连通,完备,还有一套线性代数结构,良好定义的度量,范数,与内积。太美的,以至于我们对很多理所当然的东西产生了惯性,或者说是一种审美疲劳。我始终觉得紧致是上帝送给我们的礼物。掌握了紧致对拓扑也就有个大概的认识了。
再后面是从代数角度入手,从基本群角度对拓扑空间进行刻画。虽然依赖直观,但是有了群,我们就能更好的描述拓扑不变性了。末尾是一个比较难处理的地方。因为同调群从引入到几个重要定理的证明,其中涉及了一个比较长的动机不明显的准备过程,往往使我们觉得太过于抽象,而对拓扑本身是去兴趣,这个地方一定要多加小心,过了这关,后面有很多有趣的应用在等着我们呢。Armstrong这里处理的还算不错,他尽可能的再几何直观和抽象概念之间做了一个权衡。
从同调论开始,后面的学习过程可谓是进入了一个崭新的领域,有了这些基础可以进入后续课程的学习了。但是同调这里如果下笔过多会改变本书的宗旨和方向,毕竟这只是一本基础书,还不是GTM,所以Armstrong老师也尽量克制了这点。不管怎么说,这绝对是本拓扑学入门的好书,最后建议看英文版的。因为这本中文的书个人认为翻译的不算太好。
一个优秀的科学工作者,会把复杂抽象的东西说的很平民化。而一个三流的科学从业人员,象我国的大部分高校教师往往会把一个简单的问题说的复杂,这就是差距。其实我们经常在给别人讲一个问题的时候也常常遇到,究其缘由就是对知识理解的不深刻。当你透彻的掌握一个问题的时候,你就会旁征博引,分析的非常透彻。
Armstrong就是这样的一个大家,虽然拓扑学严谨形式化的东西很多很多,但在Armstrong的笔下显得生动有趣,第十章虚拟的一段代数学家和几何学家的对话也表现出作者更加注重对几何直观的认识,而避免落入纷繁的代数细节中去。
第一章从Euler定理讲起,谈到欧拉示性数。然后从很多拓扑不变性的难以计算向我们展示了引入拓扑的动机。后面一章自然而然的提到了连通性,比较复杂的地方是新手对紧致性的理解。这是因为我们生活的空间太完美了,Hausdorff, 局部紧致, 单连通,完备,还有一套线性代数结构,良好定义的度量,范数,与内积。太美的,以至于我们对很多理所当然的东西产生了惯性,或者说是一种审美疲劳。我始终觉得紧致是上帝送给我们的礼物。掌握了紧致对拓扑也就有个大概的认识了。
再后面是从代数角度入手,从基本群角度对拓扑空间进行刻画。虽然依赖直观,但是有了群,我们就能更好的描述拓扑不变性了。末尾是一个比较难处理的地方。因为同调群从引入到几个重要定理的证明,其中涉及了一个比较长的动机不明显的准备过程,往往使我们觉得太过于抽象,而对拓扑本身是去兴趣,这个地方一定要多加小心,过了这关,后面有很多有趣的应用在等着我们呢。Armstrong这里处理的还算不错,他尽可能的再几何直观和抽象概念之间做了一个权衡。
从同调论开始,后面的学习过程可谓是进入了一个崭新的领域,有了这些基础可以进入后续课程的学习了。但是同调这里如果下笔过多会改变本书的宗旨和方向,毕竟这只是一本基础书,还不是GTM,所以Armstrong老师也尽量克制了这点。不管怎么说,这绝对是本拓扑学入门的好书,最后建议看英文版的。因为这本中文的书个人认为翻译的不算太好。
再谈骨骼批量渲染
作者:volfmath 日期:2010-01-10
请允许我再次讨论到骨骼动画的批量渲染。
因为我们的游戏项目是一个RTS游戏,其中涉及到古代战争,需要同屏渲染大量带骨骼动画的人物。所以优化一直是我们努力的地方。
之前我们几乎考虑了很多种做法。参考了很多游戏,也走了不少弯路。终于找到了好的办法,而且我们这个问题的唯一做法。下面我把最近研究的结果深入讨论一下。
1.首先说下这个游戏的特点。要同屏渲染下大量人物。每个人物都有20-30根骨骼。
2.由于硬件的升级,骨骼动画模型也不是早期那种了。带有骨骼动画的模型跟无骨骼的普通模型,数据构成是不一样的。没有骨骼的模型,每帧是用顶点位置去和transform信息作变换得到模型。而带骨骼动画的是和一个叫做BoneMatrix的矩阵做运算。BoneMatrix显然是世界坐标系下的东东了。在Gamebryo骨骼模型里他是骨骼、蒙皮、世界坐标做完变换后的结果。白话点吧:vs数据大家都一样,带骨骼的多了个索引和权重信息。
3.开始考虑怎么批量渲染这些东西。
因为我们的游戏项目是一个RTS游戏,其中涉及到古代战争,需要同屏渲染大量带骨骼动画的人物。所以优化一直是我们努力的地方。
之前我们几乎考虑了很多种做法。参考了很多游戏,也走了不少弯路。终于找到了好的办法,而且我们这个问题的唯一做法。下面我把最近研究的结果深入讨论一下。
1.首先说下这个游戏的特点。要同屏渲染下大量人物。每个人物都有20-30根骨骼。
2.由于硬件的升级,骨骼动画模型也不是早期那种了。带有骨骼动画的模型跟无骨骼的普通模型,数据构成是不一样的。没有骨骼的模型,每帧是用顶点位置去和transform信息作变换得到模型。而带骨骼动画的是和一个叫做BoneMatrix的矩阵做运算。BoneMatrix显然是世界坐标系下的东东了。在Gamebryo骨骼模型里他是骨骼、蒙皮、世界坐标做完变换后的结果。白话点吧:vs数据大家都一样,带骨骼的多了个索引和权重信息。
3.开始考虑怎么批量渲染这些东西。






![Validate my RSS feed [Valid RSS]](valid-rss.png)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](valid-atom.png)
