自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 NavMesh,关于导航网格的创建

在《人工智能游戏编程真言》中,有详细的叙述如何建立导航网格,但是却没有一丁点的代码,而且在创建过程中,还有许多细节问题没有解决,在百度文库中有一篇关于AS3建立导航网格的文章,里面也讲的很好,但是那里使用三角形作为节点,这显然对于多边形较多的3D世界不太合适。不过里面的A*寻路算法的相关取值是值得观看的。进行了几个礼拜的编写,导航网格稍微能看我先给几张截图,让大家有个底!可以生成多边形的网格节点,

2012-10-25 15:54:50 2719 1

转载 TGA文件内部格式详解(转)

来自:http://blog.sina.com.cn/s/blog_5ff6097b0100xtvw.html继位图之后,我们来看看Tga图片的格式,以及程序实现。 一、  文件格式Tga常见的格式有非压缩RGB和压缩RGB两种格式,其他格式的我们在这里不做讲述。文件的第三个Byte位作为标记:2为非压缩RGB格式,10为压缩RGB格式。它们的具体格式如下: 1、非压缩格式

2012-09-03 10:31:09 1358

转载 DAMAGE:After normal block(#****) (转)

来自:http://blog.csdn.net/djdjnn/article/details/4960124 错误源头一,数组访问越界:大家先看如下一段程序: int* a = new int[5]; a[5] = 3; // 这儿访问越界了 delete[] a;在delete[] a;这句代码处将会出现:DAMAGE:After norm

2012-09-03 10:24:23 481

转载 BMP文件格式(转)

BMP文件格式简介位图文件(Bitmap-File,BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把它称为设备相关位图(device-dependentbitmap,DDB)文件格式。Windows 3.0以后的BMP位图文件格式与显示设备

2012-09-03 08:12:26 580

翻译 D3DXIntersect

HRESULT D3DXIntersect(                  LPD3DXBASEMESH pMesh, //Mesh to test,要检测的网格模型                 CONST D3DXVECTOR3 * pRayPos, //Ray origin,射线的起点                 CONST D3DXVECTOR3 * pRayDir,

2012-08-26 08:20:43 1300

转载 如何使用WinDbg调试程序(转)

转自:http://blog.csdn.net/czhny/article/details/4930663什么是WinDBG? WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。由于大部分程序员不需要做Kernel模式调试, 我在这篇文章中不会介绍Kernel模式调试。Kernel模式调试对学习Windows核心

2012-08-25 09:59:11 803

转载 根据句柄如何获取该进程的所有线程(转)

转自:http://topic.csdn.net/u/20110718/10/78819f5f-2f71-458f-8bb1-5dfb610679f5.html #include #include #include //  Forward declarations:BOOL GetProcessList( );BOOL ListProcessModules( DWORD

2012-08-19 20:14:09 676

转载 BumpMap、NormalMap的区别 (转)

一种是Emboss Bump Map(浮雕凹凸贴图),它使用的是Height map,原理是在原始图像的基础上,对高度场图像进行复制、轻微平移、差操作。但它存在很多严重的局限性,它只能用于漫反射表面,对于镜面高光来说是不可能的。当光源直接照射在物体表面时,如果没有偏移,那么物体表面就不会出现任何凹凸现象。 DOT3 Bump Map(点乘凹凸贴图),它使用的是Normal Map,这是目前

2012-08-19 20:12:20 2690

翻译 副法线的来由(binormal)

Any given vertex has a tangent space as defined in Figure 12.4. The normal of thevertex that you’re already familiar with points out from the triangle. The tangent andthe binormal, on the other ha

2012-08-19 20:11:41 6885

翻译 法线贴图

Since the tangent-space normal map is calculated as an offset of the surfacenormal, it remains largely uniform in color (depicted in the image as gray)(由于切线空间计算的是表面法线的偏移量,所以它保留的是一些比较均匀的颜色(在图中用灰色表示))

2012-08-19 20:11:04 762

转载 系统调用 (转)

转自:http://www.cnblogs.com/forlina/archive/2011/09/13/2174841.html1、内核与系统调用基础对于应用程序进程来说,操作系统内核的作用体现在一组可供调用的函数,称为系统调用(也成"系统服务")。从程序运行的角度来看,进程是主动、活性的,是发出调用请求的一方;而内核是被动的,只是应进程要求而提供服务。从整个系统运行角度看,内核

2012-08-19 20:10:15 806

原创 barycentric coordinates(质心坐标)

我们知道,一条线段的两个端点是Pa和Pb,那么我们可以知道线段间的所有点坐标即:Pt=U*Pa+V*Pb    //(U+V=1 )  (U,V)    =t*Pa+(1-t)*Pb     //(U=t,V=1-U);那么(U,V)即是某点的质心坐标,例如Pa是(1,0),Pb是(0,1) 类推三角形也有类似公式假如三角形三顶点是Pa,Pb,Pc,那么我们也可以写出其内部

2012-08-19 20:09:31 2112

转载 API和MFC创建对话框

一、API:非模态模态对话画框:1.创建对话框前都要先天件对话框资源2.创建非模态对话框,先用   HWND CreateDialog(HINSTANCE hInstance,           LPCTSTR lpTemplate,                     HWND hWndParent,                     DLGPROC lp

2012-08-13 18:01:23 1238

原创 静态链接库与动态链接库的区别

静态库:函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件(.EXE文件)。在使用动态库的时候,往往提供两个文件:一个引入库和一个DLL。引入库包含被DLL导出的函数和变量的符号名,DLL包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,DL

2012-08-03 21:31:30 438

转载 【代理知识】绝对值得珍藏!(转)

一、HTTP代理的匿名性   This is a proxy that hides the original users IP address and other details from the remote server. 这种代理,对远端服务器隐藏原始用户的IP地址以及其它细节(可能,但不必需)。  HTTP代理匿名性是指不通过非常技术手段,直接使用时代理的匿名安全性。(说明:这

2012-08-03 08:18:23 1301

转载 关于vs2003安装总提示要重启问题(转)

首先要安装第1步visual studio.net系统必备,其它点不了.可点第1步安装就弹出"安装程序检测到另一个程序要求计算机重新启动.必须重新启动计算机后才能安装visual studio.net系统必备.系统重新启动后,你需要重新启动安装程序.单击"确定"重新启动,单击"取消"退出安装程序,以后再安装."对话框.重启n次都弹出此对话框,无法安装.     解决办法:    在注册

2012-08-03 08:13:45 1173

原创 关于在vector中为什么要reserve?

帖子:http://topic.csdn.net/u/20090407/15/a3feb00f-774b-4c0f-90ab-8e0c84a8b6d4.html 关键点:reserve是必须的如果没有的话,push_back的之后,当内存不够了,就会有内存的重新分配和元素的拷贝。这是绝对很低效的。 如果 vector 的容量不够了,它会1. 重新分配更多的空间(一般是增

2012-08-03 08:12:23 866

原创 条款38: 决不要重新定义继承而来的缺省参数值(有味道的一条)

让我们从一开始就把问题简化。缺省参数只能作为函数的一部分而存在;另外,只有两种函数可以继承:虚函数和非虚函数。因此,重定义缺省参数值的唯一方法是重定义一个继承而来的函数。然而,重定义继承而来的非虚函数是一种错误(参见条款37),所以,我们完全可以把讨论的范围缩小为 "继承一个有缺省参数值的虚函数" 的情况。既然如此,本条款的理由就变得非常明显:虚函数是动态绑定而缺省参数值是静态绑定的。什么

2012-08-03 08:11:43 627

转载 指向类的数据成员和函数指针(转)

转自:http://blog.csdn.net/xudacheng06/article/details/6764156指向类成员的指针在C++语言中,可以定义一个指针,使其指向类成员或成员函数,然后通过指针来访问类的成员。这包括指向属性成员的指针和指向成员函数的指针。à 指向数据成员的指针在C++语言中,可以定义一个指针,使其指向类成员。当属性成员为静态和非静态时,指针的使用也有不

2012-08-03 08:11:02 565

转载 typedef int int_array[4](转)

转自:http://hi.baidu.com/sword0228/item/f9c0089ed23653da1e42716btypedef int int_array[4]; int ia[3][4]={1,2,3,4,5,6,7,8,9,0,11,12}; int_array *ip=ia; int ia[3][4]={1,2,3,4,5,6,7,8,9,0,11,12}

2012-08-03 08:10:32 1195 1

原创 effective c++相关关键字

(1)关于const类型的函数,也就是在函数名后面加一个const一个成员函数为const的确切含义是什么?有两种主要的看法:数据意义上的const(bitwise constness)和概念意义上的const(conceptual constness)。bitwise constness的坚持者认为,当且仅当成员函数不修改对象的任何数据成员(静态数据成员除外)时,即不修改对象中任何一个比

2012-08-03 08:10:05 367

转载 C/C++可变长参数(转)

转自:http://www.bianceng.cn/Programming/cplus/201002/14858.htm1、为什么要使用可变参数的函数?一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。这也是c功能强大的一个方面,其它某些语言,比如fortran

2012-08-03 08:09:12 818

原创 OD三种断点原理

(1)int 3断点,即cc断点,这是一种基于软中断机制断点,3为中断号。OD中,当你在代码区某行按F2即可实现,其机理是把所在代码的第一个字节保存到一张表上,然后将其修改为CC,当程序运行到此代码时,就会产生中断,从而转至中断服务程序。当你去除断点时,OD会从表里读取出当前断点原来的字节内容。 (2)内存断点,假如你用int 3断点对数据区下断,OD会提示你断点可能不会实现,其实也是必然

2012-08-03 08:07:36 1246

原创 在C/C++中关于局部数组问题(子函数等)

在子函数中,定义的数组变量是不允许返回的,因为它只是临时变量,暂存与当前堆栈里面,只要函数调用结束,数组马上被释放。 但当有时我们需要返回有关数据的指针或数组时,有几种方法可以解决:(1)我们直接把给函数传进数组指针的参数,也就是说你在调用之前先创建数组,作为参数传递进函数,然后返回例 读取文件的一行数据char * getFileOneLine(char *fileName,

2012-08-03 08:06:09 1917

转载 IDE使用问题:vc2003中类型无法转到声明和定义,按F12提示未定义的符号(CSDN一个帖子)

最好的解决方法是:删掉.ncb文件,然后重新打开

2012-08-03 08:05:31 1188

转载 TrackMouseEvent函数在鼠标离开某一窗口或在某一窗口上停留超过某一特定时间长度时发送消息(转)

TrackMouseEvent函数在鼠标离开某一窗口或在某一窗口上停留超过某一特定时间长度时发送消息。其函数原型:BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack); 参数lpEventTrack是一个指向TRACKMOUSEEVENT结构体的指针。函数执行成功的话返回非零值(true),否则返回零(false)。该函数可以发送

2012-08-03 08:04:15 945

原创 关于DX中三角形顶点顺序的问题(绕序)

在DX中,在创建顶点缓存后,是将顶点坐标写入缓存中,在用数据流或加索引来显示三角形时,你的顶点顺序很重要,当然这与背面消除(注:背面消除指的是,假如你背对着相机那么相机看不见你的正面,难么你的正面将被消除,因为看不见,所以要剔除掉)有很大的关系。DX中默认使用的左手坐标,默认左手按顶点顺时针所指向的方向是三角形的正面方向。在程序中你可以指定,哪个方向是顶点顺序是正方向,Device->SetRen

2012-08-03 08:02:26 3634

原创 仿射坐标与齐次坐标

这是我们经常使用的两种坐标,我们用DX来创建顶点结构是,有这两种坐标假如FVF使用的是D3DFVF_XYZ时,我们就说我们用的是齐次坐标,齐次坐标表示我们只用3个分量来表示顶点在世界中的位置。顶点示例struct Vertex{   float x,y,z;}奇怪!!难道还有第四个坐标?-------没错!       难道使用4维空间,第四维不是时间吗????----不是

2012-08-03 08:01:50 2235

转载 VS和PS寄存器的分配

在VertexShader中寄存器设置如下图:在图1.1的右边部分,是临时寄存器,用来储存顶点着色器计算出的中间结果。显然,由于它们是临时性的,因此,可以对这些寄存器进行写入和读取操作。注意名称为a0到aL的寄存器,它们是循环时用来索引地址和追踪循环所用的计数寄存器(counter register)。记住,由于HLSL是一门高级的着色语言,你不需要关心寄存器是如何分配的。对开发者来说这个过程

2012-08-03 08:00:59 1523

原创 在《Advanced Animation with DirectX》由于SDK升级带来的麻烦,与代码修正

写过Advanced Animation with DirectX书里代码的都知道,在现在的DX9.0c中并没有IDirectXFile、IDirectXFileEnumObject、IDirectXFileData 、IDirectXFileDataReference等对象,你在网上到处都可以找见这种类型的错误,关键是如何解决,这里因为新版SDK支持的com对象是ID3DXFile、  ID3D

2012-08-03 08:00:12 1553

原创 DX中为什么没有D3DRS_ZFAILD

因为在DX中只有D3DRS_STENCILZFAIL,因为在模板开启下要模板测试成功才会执行Z测试,而在模板断臂的情况下直接测试Z即可,可能是DX不想引入更多的枚举值,而且也为了强调缓存测试顺序,所以只有D3DRS_STENCILZFAIL而没有D3DRS_ZFAILD。这只是我的猜测,所以信不信就只能由你了!

2012-08-03 07:58:59 429

翻译 D3DFVF顶点定义顺序

//-------------------------------------------------------------------// Flexible vertex format bits//#define D3DFVF_RESERVED0        0x001#define D3DFVF_POSITION_MASK    0x400E#define D3DFVF

2012-08-03 07:58:24 1479

翻译 关于D3DFVF_XYZRHW使用Shader的帖子

(1)此贴中明确给出使用上面的顶点标志,会跳过VertexShader阶段http://www.gamedev.net/topic/551769-hlsl-and-d3dfvf_xyzrhw/  (2)http://www.gamedev.net/topic/620189-using-effect-shader-on-rhw-vertices/关键词:D3DFVF_XYZR

2012-08-03 07:57:46 855

原创 DX9实现天空盒

对于天空盒如何制作,我这里就不介绍了,网上有好些制作天空盒的资料,也可看我的其它转载关于天空盒的资料。这里只讲一种简单的方法实现天空盒。这种方法的基于,网上http://blog.csdn.net/xoyojank/article/details/1628932这里提出的用D3DFVF_XYZRHW实现天空盒的想法。不过有个问题,D3DFVF_XYZRHW本身会跳过坐标变换的阶段,也就是说它不会传

2012-08-03 07:56:57 1771

原创 D3D游戏关于窗口中如何精确确定鼠标位置的相关讨论

在GameDev中的相关贴子:(1)http://www.gamedev.net/topic/623813-getting-mouse-position/里面有几句很重要的话:How do you create your application window?A common mistake is to choose some backbuffer resolution (for

2012-08-03 07:55:45 1845

原创 关于Z(Depth 深度)和Stencil(模板)两种测试对后台缓存的影响次序

http://www.gamedev.net/topic/451617-how-the-stencil-buffer-works/ The order of operations goes like this (assuming the stencil test is enabled):1) Perform stencil test. If failed, perform Stenci

2012-08-03 07:55:01 1610

原创 如何推导视景体的6各面

如何推导视景体的6各面  2012-07-05 14:54:27|  分类:3D游戏学习笔记 |  标签:|字号大中小 订阅   一般我们都是计算在世界坐标中的六个面,由于我们知道的是,在透视坐标中,每个坐标系都有固定的范围,而透视坐标所显示的范围正好为我们计算世界坐标中的六个面。   我们知道,在透视坐标中,x(-1.0f,1.0f),y(-1.0f,1.

2012-08-03 07:54:14 907

原创 二倍镜实现

一种方案,直接变换我们的透视投影矩阵,因为透视变换时,就是分别使x,y,z投影下来,就但说x,y,下面是透视矩阵xScale     0          0               00        yScale       0               00          0       zf/(zf-zn)         10          0

2012-08-03 07:53:15 831

翻译 D3DVERTEXELEMENT9的详细解释

struct D3DVERTEXELEMENT9 {WORD Stream; //Stream NoWORD Offset; //Start of this element in bytesBYTE Type; //Element type (float1 ... float4, D3DCOLOR, etc.)BYTE Method; //Tesselation methodB

2012-08-03 07:52:42 2404

翻译 HLSL着色器可接受的输入输出语义

顶点着色器These semantics have meaning when attached to a vertex-shader parameters. Thesesemantics are supported in both Direct3D 9 and Direct3D 10.InputDescriptionTypeBINORMAL[n]

2012-08-03 07:51:51 855

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除