摘要:
尝试用3dsmax自己建模,其自带的两个pdf文件是非常好的tutorial:modeling.pdf 和 character_animation.pdf例子中从制作火星模型到人物模型,循序渐进讲的很清楚,其中示例了多种不同的Modifier的功能,比如:Lathe Modifier: 即轴向旋转(车床一样)构建轴对称模型;Edit Poly Modifer: 多边形编辑,可以实现对选择的多边形进行各种不同的操作I(挤压、嵌入、轮廓、斜切等);Smooth Modifier: 光滑修改器,可以对实现的模型进行光滑操作,任何两个邻接面如果夹角不超过设定的阈值,就会放到一个光滑组,显示时不显示其边 阅读全文
2011年2月27日
2011年1月31日
摘要:
为解决引擎批次比较高的问题,通常一个有效的方法是将相同性质的物体顶点组织到一个批次中,一次性渲染;这个方法被称作Geometry Instancing(几何实例化)。 在非固定管线支持2.0以上的显卡上,dx可以硬件支持该技术,具体的实现流程如下: 1. 为物体实例定义属性结构InstanceAttribute(大概包括:位置、法线、颜色等),假设一个批次绘制N个物体实例,则需要申请N*sizeof(InstanceAttribute)个byte的顶点缓冲。 2. 为单个物体实例分配顶点缓冲,这个跟普通的绘制没有区别,即根据顶点格式定义,申请相应大小的顶点缓冲就行了。 3. 在每帧渲染的时候, 阅读全文
2010年12月15日
摘要:
json格式以简单著称,用大括号、中括号、逗号及任意嵌套就完备表示了任意数据结构,在人类阅读和机器阅读之间权衡的比较好。 json官网给出了各种语言(基本我所知道的语言都有,我不知道的语言也有)的实现方案,推荐c++平台上的两款实现:JSONCPP和libjson,前者简单易用,后者性能极高。 libjson导出的数据有三种表现方式:binary、unformated-text、formated-text;一般用unformated-text查看即可,还可以放到一些json在线格式化的webtool中高亮显示。 ————-分割线—&m 阅读全文
2010年12月14日
摘要:
一个max导出插件要做的事情(无论是maxscript还是maxsdk实现): 1。导出基本的网格信息(顶点位置、法线、纹理坐标)、三角形信息 2。导出基本的材质信息,包括标准的材质(diffuse,specular,emissive,ambient),纹理贴图信息(diffuse map\opacity map\bump map等),uv变换矩阵、渲染状态(如 two-side等)等 3。导出骨骼信息(cs bone和skin bone) 4。导出 cs蒙皮和skin蒙皮并导出cs和skin的骨骼动画 5。导出基于max 节点的关键帧transform动画(translate,rotatio 阅读全文
2010年12月11日
摘要:
层次结构树 场景中比较典型的层次结构: 1。一个巨大的无限延伸的地面向远方延伸(层层叠叠的山岚、一望无际的大海、汗如穹庐的天空、不时出现的飞鸟走兽等等) 2。一个很帅的英雄背着一把大刀站在缓缓向前的船头很装逼的凝视着远方,可能身上还加了个buff 3。这个英雄觉得可能有点冷,就在甲板上来来回回的跑或者干脆跳过来跳过去 4。英雄突然觉得这船好像有点慢,然后就从后舱唤出一只大鸟,骑到背上腾空而起 这里涉及到的是场景管理中所谓的层次结构关系树,把场景中所有的对象都抽象成节点,然后按父子关系组成如下的结构: 节点挂接到父节点上之后,可指定其跟随父节点矩阵变化的方式: 1。跟随旋转和平移 2。只跟随旋转 阅读全文
2010年11月28日
摘要:
使用d3d的交换链可以方便的实现多渲染窗口结构,类的层次结构如下图所示: D3DRes用来定义dx设备丢失的处理,所有需要关心设备丢失的资源都从此类继承,然后重写设备丢失回调函数和设备重置回调函数即可方便的处理设备丢失。 RenderTarget用来定义基本的渲染目标,成员包括长宽及大小的定义,及渲染目标的虚接口定义(比如:缓冲区切换等)。 Win32Window封装win32接口,传入配置参数创建并注册windows窗口,并定义消息处理回调,利用监听器或者事件机制向外部应用层传递鼠标键盘操作。 RenderWindow从D3DRes及RenderTarget继承,并聚合Win32Window 阅读全文
2010年10月17日
摘要:
在渲染循环中,在渲染物体之前需要设置好dx的渲染环境,其中调用的最频繁的api莫过于用于切换渲染状态的函数:IDirect3DDevice::SetRenderState(). SetRenderState函数用于设置各种不同类型的渲染状态,其功能用法汇总于下: 0、填充模式 SetRenderState(D3DRS_FILLMODE, …); 可设置的模式有:D3DFILL_POINT,D3DFILL_WIREFRAME,D3DFILL_SOLID,分别为点模式、线框模式及实填充模式。 1、着色模式 SetRenderState(D3DRS_SHADEMODE, &hellip 阅读全文
摘要:
在渲染函数RenderFrame中做了那些事情呢?其基本流程莫过于下面伪代码所示: //调用SetRenderState接口设置好渲染状态,诸如:光照、雾、贴图等等。。 SetRenderState(...); SetRenderState(...); ... SetRenderState(...); Clear(); &... 阅读全文
2010年10月16日
摘要:
最基本的游戏流程如下:[代码]中间的while循环就是基本的游戏循环了,在实际引擎的循环中当然可以加入诸如:性能统计、Log等之类的其他代码 阅读全文
2010年9月9日
摘要:
在VS2005中不能使用VS2003的远程调试程序。VS2005远程调试的方法: 1. 远程端:安装VS2005光盘”X:\vs\Remote Debugger\x86\ rdbgsetup.exe”。或者直接运行或copy本地端的: “Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote Debu... 阅读全文