05 2012 档案
摘要:http://blog.csdn.net/n5/article/details/3105872Skinned Mesh 原理解析和一个最简单的实现示例 作者:n5 Email: happyfirecn##yahoo.com.cn Blog: http://blog.csdn.net/n5 2008-10 月 Histroy: Version:1.02 Date:2010-1-1 修改了一些错误(用删除线标出 ),补充了一些材料, ps:本文以后只维护CSDN blog上的版本,请转载者保留原始链接:http://blog.csdn.net/n5/archive/2008/10/19/3105.
阅读全文
摘要:最近想写一个自定义的动画数据文件,按照原来的做法,先定义一个文本格式的数据文件,然后写一个转换器转换成二进制,然后游戏中读入并解析。不过我最近特别懒,虽然我已经设计了一个“万能的”文本格式和二进制转换工具,但是解析二进制文件的工作仍然繁琐,并且根据以往的经验,可能会经常的修改文件格式,于是我想直接使用文本格式吧,首先想到的是XML,不过最近实在太懒了,连XML都懒得去解析,嗯,还有google Protocol Buffers这东西,以前看过,不过似乎用的人不多啊,还有一个json,见人在游戏中用过,那么就试试他吧。。找了几个c++的json解析器,最后选中了jsoncpp (http://j
阅读全文
摘要:根据情况不同,客户端做的事情都有不同。服务器至少要做验证。相对于网络游戏来说,数据传输量在一定程度上可以忽略,而更注重数据来回时间。在一般情况下,比如说WOW里面,200MS延迟就开始变黄。也就是说在一般对时间要求不是很极端的,比如KOF97转到MMO,200可以默认为一个普通MMO的标准线。具体来说,理想上的网游,个人倾向于所有逻辑处理全放服务器端,而客户端就像个媒体播放器。这是因为如同某本书讲得,客户端是掌握在对手手中,如果你让服务器只起到数据交换作用,那么外挂就可以彻底糟蹋你的游戏。在理想基础上,客户端要做的事就是表演,根据服务器和用户的输入处理,进行各种场景、动作与特效的播放。包括绘制
阅读全文
摘要:http://www.sineysoft.com/blog/post/D3D_rm.html摘要受管贴图(Managed textures,也就是我们通常所谓的“自动管理贴图”),在DX6中首次被引入,经过一系列的改进和增强,在DX9中自动管理的资源类型增加到贴图,顶点缓冲,顶点索引缓冲,所有这些资源使用统一的公共接口。通过使用D3D资源管理器,应用程序可以轻松的处理设备丢失、处理稍微过量的显存使用。有时开发者在使用受管资源会遇到一些困难,这部分归咎与系统的抽象特性。在大多数情况下使用受管对象是不错的选择,但有时出于性能考虑也会使用非托管资源。这篇文章将讨论一般情况下如何处理资源,受管与非受管
阅读全文
摘要:最近做了个Geomipmap的LOD地形,加上实现LOD用的逻辑时间,渲染帧数FPS跟静态地形真的没啥差别。。甚至fps还更低。。。。转载自:http://www.sineysoft.com/blog/post/Terrain_lod.html今天在qq上和网友聊天交流,发现大家普遍比较关注lod,特别是动态减面的lod,对于刚开始接触3D图形的同学普遍认为LOD很牛,很有必要,对于动态减面得LOD算法更是趋之若骛,其实不然,特别是针对地形(Terrain)的LOD必要性不是很大.对于LOD的好处,我想大家都了解,就是减少提交到显卡得primitives,以减少没桢同屏渲染的三角形数量,借以提
阅读全文
摘要:std::vector的reserve和resize的区别1. reserve:分配空间,更改capacity但不改变size2. resize: 分配空间,更改capacity也改变size如果知道vector的大小,resize一下可以当数组来用,不会分配多余的内存。reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,需要用push_back()/insert()函数。resize是改变容器的大小,并且创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者用迭代器来引
阅读全文
摘要:1 只在必须的时候Clear。 IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。 2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。 状态包括RenderState,SamplerState,TextureStageState等 3 纹理尺寸尽可能小 4 从前至后渲染场景中的对象 从前至后渲染可以尽可能早地精选出不需要绘制的对象和象素 5 使用三角条带代替三角列表和三角扇。为了能更有效利用顶点高速缓存(cache),在排列条带时因考虑尽快重用顶点。 6 根所需要据消耗的系统资源...
阅读全文
摘要:http://www.oschina.net/news/28928/9-reasons-to-start-using-c11如果你的代码工作正常并且表现良好,你可能会想知道为什么还要使用C++ 11。当然了,使用用最新的技术感觉很好,但是事实上它是否值得呢?在我看来,答案毫无疑问是肯定的。我在下面给出了9个理由,它们分为两类:性能优势和开发效率。获得性能优势理由1:move语义(move semantics)。简单的说,它是优化复制的一种方式。有时候复制很显然是浪费的。如果你从一个临时的string对象复制内容,简单的复制指针到字符缓冲区将比创建一个新的缓冲区再复制要高效得多。他之所以能工作是
阅读全文
摘要:http://www.ljf.cn/archives/79.aspx有下载地址,下载完成后运行autorun。。。该映像是中文版,已经注册的,太方便了。。。自定义安装(貌似只能装在C盘?)只选择必须的,差不多5-6个G。。。安装过程中需要重启一次pc。。。安装完成后安装VS助手。。。http://download.csdn.net/download/yujianhengxing/3189274可以下到;这时候打开一个程序运行会出错。。。error C2061: 语法错误: 标识符“__RPC__out_xcount_part” VS2010:打开DX安装目录:C:\Program Files\
阅读全文
摘要:MMS.obj : error LNK2005: XXX 已经在 httpsession.obj 中定义MMSDlg.obj : error LNK2005: XXX 已经在 httpsession.obj 中定义MMS.exe :fatal error LNK1169: 找到一个或多个多重定义的符号这是由于在.h文件中定义了全局变量,在.cpp中相当于多定义了一遍。将全局变量的定义放到 .cpp中就对了。这也是全局变量正确的定义方法。
阅读全文
摘要:http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/6c5251d185c124d9572c84ae.html下面,我们来介绍一下怎么使用DX SDK自带的工具PIX For Windows来调试Shader。这里只做简要的介绍,具体的情参看PIX的文档哈。如何找到文档呢?打开DX SDK开始菜单下面的DirectX Documentation for C++,我的版本是09年8月版本的,到目前为止好像是最新版,呵呵。然后依次:DirectX Software Development Kit/Tools/DirectX Perform
阅读全文
摘要:与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等着别人为你翻译。慢慢尝试着阅读英文资料,你会发现其实也并没有那么难:)刚开始,你要做的就是选择一门图形API,一般就是DirectX或者OpenGL之间选一个。如果考虑到跨平台,那么OGL是首选. 如果只在ms的平台,
阅读全文
摘要:最近在优化项目中用的到引擎,下面是搜集到的一下资料,转帖如下:1 只在必须的时候Clear。IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。状态包括RenderState,SamplerState,TextureStageState等3 纹理尺寸尽可能小4 从前至后渲染场景中的对象从前至后渲染可以尽可能早地精选出不需要绘制的对象和象素5 使用三角条带代替三角列表和三角扇。为了能更有效利用顶点高速缓存(cache),在排列条带时因考虑尽快重用顶点。6 根所需要据
阅读全文
摘要:A painless introduction to PIX for WindowsFor those interested in game development technology, it’s been a great week of product releases! Monday we saw the 1.0 release ofXNA Game Studio Express. Wednesday brought the release of the December 2006 version of theDirectX SDK, which includes the product
阅读全文
摘要:在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2005环境下运行时会报各种各样的错误,这里总结了在Visual C++.NET2005环境中Unicode字符集下CString和char *之间相互转换的几种方法,其实也就是Unicode字符集与MBCS字符集转换。1、Unicode下CString转换为char *方法一:使用API:WideCharToMultiByte进行转换 CSt
阅读全文
摘要:http://www.cppblog.com/Leaf/archive/2009/08/11/92897.htmlhttp://blog.csdn.net/ltttklyzy/article/details/6330692
阅读全文