- 博客(19)
- 收藏
- 关注
转载 2D中多边形裁剪算法
该算法提供了一种良好的解决方案,主要的问题在于 long 值到 float 值的转换,在实际应用中,将使用 float 值作为输入。/******************************************************************** created: 19:10:2008 23:43 filename: los-prj/C
2010-05-28 17:43:00 664
转载 高级碰撞检测技术
自从计算机游戏出现以来,程序员就不断地想办法来更精确地模拟现实世界。就拿乒乓游戏为例子(译者:Pong—被誉为电子游戏的祖先,有幸见过一次:),能见到祖先做的游戏感觉真是爽啊,想看的可以到FTP上下载“地球故事”就可以看到了:),游戏中有一个象征性的小方块(球)和两支拍子,游戏者需要在恰当的时间将拍子移动到恰当的地点,将小球反弹回去。这个基本操作的背后(以现在的标准来看)就是最原初的
2010-05-28 14:21:00 379
转载 Shader Model 3 Using Vertex Texture
Shader Model 3 Using Vertex Texture 顶点纹理白皮书中文版 翻译者 周波 zhoubo22@hotmail.com 版权所有 Philipp Gerasimov Randima
2010-05-28 14:01:00 453
转载 渲染D3D画面到桌面
其实这个很简单,只是创建设备的时候那个hwnd有点不一样!可能有人就会说,用GetDesktopWindows()获得桌面的句柄不就行了?那就错了!这样会没有效果的!正确的代码如下: HWND hWnd = FindWindowEx(GetDesktopWindow() , 0 , " Progman " , " Program Manager " ); hWnd
2010-05-28 13:56:00 638 1
转载 开启Direct3D调试模式
在#include 语句前面加上以下这条语句即可:#define D3D_DEBUG_INFO 关闭调试时查看D3D Device对象的情况 开启调试时查看D3D对象的情况 为外部调试使用调用堆栈当 Direct3D 调试模式开启之后,你可以在任何时候查看对象的调用堆栈。这会导致你的程序非常慢,但是可以使用此功能检查资源泄漏(内存泄漏的一种)。开启调用堆栈,设置
2010-05-28 13:40:00 1540
转载 Direct3D10特性预览
将我在GameResBlog的老文章重新贴回来,发现写的还是很有味道,嘿嘿~~ 刚拿到DirectX Dec2005 SDK,发现竟然有D3D10的文档和例子,速研究了一下,以下只是个人的读书笔记,仅作参考 1.去掉了固定管线文档里列出了用DX10特性模拟的一些固定管线的操作,MS那么大度把DX都开源了(^O^)。2.去掉了以前版本DX的设备能力检查(CAPS)为DX10和W
2010-05-28 13:34:00 348
转载 渲染状态管理
提高3D图形程序的性能是个很大的课题。图形程序的优化大致可以分成两大任务,一是要有好的场景管理程序,能快速剔除不可见多边形,并根据对象距相机远近选择合适的细节(LOD);二是要有好的渲染程序,能快速渲染送入渲染管线的可见多边形。 我们知道,使用OpenGL或Direct3D渲染图形时,首先要设置渲染状态,渲染状态用于控制渲染器的渲染行为。应用程序可以通过改变渲染状态来控制OpenGL或
2010-05-28 13:30:00 300
转载 魔兽争霸3的自动拼接地形渲染方式
源码已发布,请打开下载http://www.cppblog.com/mybios/archive/2008/10/31/65636.html上次发了个这样的图,结果被某些人鄙视了,很郁闷啊。我们把一个魔兽3的草地贴图提取出来,并且用下面的分块方法来标示每一块小贴图,然后通过一种特定的方式来组织这些小贴图,形成真正的地表贴图。魔兽争霸编辑器中刷地表时,刷一格就会影响四个周围的渲染块,具体如何影响?请
2010-05-28 13:06:00 1585
转载 wmo(wow map object) research
wmo(wow map object) researchThe wmo是一个非常有趣的设计,wow中比较小的物体使用doodad,而building使用wmo,这里的building可以是桥梁、了望台、简单的小房子、复杂点的旅馆这样的房屋、非常复杂的建筑群(例如地下城场景),本文对wmo场景文件进行简单的介绍,关于wmo文件的具体信息请参考wowmapview的source code,这里非常感谢
2010-05-06 11:55:00 526
转载 Hidden Surface Removel Algorithms — Occlusion Culling
隐藏面剔除算法的出现是基于以下的现实,在游戏场景中你不必每帧都将所有的物体渲染到屏幕上,它的作用主要有两个:一个是减少GPU的屏幕填充率,另一个是减少CPU和GPU的传输带宽。根据当前的硬件现状GPU的填充率已经不存在任何问题,而现在唯一的限制位于AGP上,它那可怜的一点带宽已经成为图形渲染的瓶颈,因此当前HSR算法大部分都放在CPU端来做以尽量减少每帧需要传输的数据量,这里你不需要对C
2010-05-06 11:24:00 826
转载 游戏引擎中的通用编程技术
你是否正在考虑构建一个游戏引擎呢?你对如何构建一个游戏引擎是否已经有了一个明确的计划呢?你是否已经对如何组织游戏引擎各个模块之间的关系有了一个通盘的考虑?如果没有,那么本文将对你建立一个良好的游戏架构提出一些有益的方案,如果你已经对上面的问题有了一个明确的答案,那么本文不是你需要阅读的内容。本文的目的是给那些没有任何建立完整游戏引擎经验的人提供一些入门性的知识,使他们初步了解一下如何来
2010-05-06 11:07:00 297
转载 一个快速的内存分配池
对于现代的游戏引擎来说,为了提高性能和有效的管理内存,需要使用各种各样的内存分配模型,内存池作为一种有效的分配模型被大量的使用,它通过一次分配足够的内存来减少对new delelte使用以提高引擎的性能,并且由于每一个内存块都有相同的大小因此非常易于管理,并可以防止内存的泄露。它通常被用于需要分配大量相同对象的场合,如粒子系统这样的地方。 对于在运行时可以明确知道分配
2010-05-06 10:59:00 359
转载 Half Life2 Displacement Terrain System
HL2的地形系统是一个另类的地形系统,它没有使用当前流行的heightmap技术,而是完全使用displacement map技术来进行处理,使用displacement map技术的初衷是为了在框架中和BSP技术保持一致,这是因为在BSP中最小的渲染图元是surface,surface的限制是所有的顶点必须位于同一个平面上,实际上从理论上来说在HL2这样的引擎中也可以使用height
2010-05-06 10:43:00 478
转载 魔兽世界场景组织浅析
没有办法WOW太经典,当自己碰到问题的时候再回头研究wow发现wow尽然没有问题,暴雪的游戏制作经验让wow一开始就设计的如此讲究,不得不感叹国内游戏同世界设计方面的差异。 由于没有wow的源代码,所有的分析想法都来自与wowmapview这个开源的wow地图察看器,wowmapview的代码写的很凌乱,但很容易理解,好了,我们开始吧!Gogo wow场
2010-05-06 10:22:00 563
转载 编译器版本宏_MSC_VER
_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接) MS VC++ 9.0 _MSC_VER = 1500 MS VC++ 8.0 _MSC_VER = 1400 MS VC++ 7.1 _MSC_VER = 1310 MS VC++ 7.0 _MSC_VER = 1300 MS VC++ 6.0 _M
2010-04-14 16:14:00 752
转载 Debug和Release版本之间的区别
有些人可能会问VC中的Debug和Release模式到底有什么区别,能不能将两者混用。 这里是常见的看法:http://forums.msdn.microsoft.com/en-US/vcgeneral/thread/775ce067-b225-4141-8b86-2d7e9b61db97/ syperk说:"As a result, Ive switched to compiling
2010-04-14 16:08:00 461
转载 ZIP与RAR2
Huffman编码 Huffman编码是第一个真正实用的编码方法,由D.A.Huffman在1952年提出。当时Huffman是麻省理工学院的一名学生,据说为了向老师证明自己可以不参加某门功课的期末考试,他设计了这个看似简单却影响深远的编码方法。Huffman编码效率高,运算速度快,实现方式灵活,从20世纪60年代直到现在,在数据压缩领域得到了广泛的应用。而20世纪80年代初,Huffm
2010-04-06 09:35:00 505
转载 Debug版本下CRT对分配内存的填充
1、使用 new 或者 malloc 分配后的内存,其内容被填充为 0xCD,CRT 中称处于这种状态的内存区为 Clean Land,即干净区,由此推测 0xCD 的含义可能为 Clean Data。在此数据的前后(不包含于此区域内),各有一个守卫用的 DWORD,其内容为 0xFDFDFDFD。2、使用 delete 或者 free 释放后的内存,其内容被清空为 0xDD,CRT 中称处于
2010-04-01 14:24:00 837
转载 直接调用类成员函数地址
一、成员函数指针的用法 在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法。C++专门为成员指针准备了三个运算符: "::*"用于指针的声明,而"->*"和".*"用来调用指针指向的函数。比如: class tt {
2010-03-31 15:29:00 226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人