资源描述:
《d3d透视制作教程从基础到源码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、D3D透视制作教程从基础到源码学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。1:d3d的初始化LPDIRECT3D9g_pD3D=NULL;//d3d对象LPDIRECT3DDEVICE9g_pd3dDevice=NULL;//d3d设备对象LPDIRECT3DVERTEXBUFFER9g_pVB=NULL;//顶点缓冲//初始化D3DHRESULTInitD3D(HWNDhWnd){//创建D3Dg_pD3D=Direct3DCreate9(D3D_SDK_VERSION);/
2、/填充D3DDevice结构D3DPRESENT_PARAMETERSd3dpp;ZeroMemory(&d3dpp,sizeof(d3dpp));d3dpp.Windowed=TRUE;d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;d3dpp.BackBufferFormat=D3DFMT_UNKNOWN;//创建D3DDeviceg_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWAR
3、E_VERTEXPROCESSING,&d3dpp,&g_pd3dDevice);//初始化几何数据HRESULTInitGeometry(){//初始化顶点数据CUSTOMVERTEXg_Vertices[]={{-1.0f,-1.0f,0.0f,0xffff0000,},{1.0f,-1.0f,0.0f,0xff0000ff,},{0.0f,1.0f,0.0f,0xffffffff,},};//创建顶点缓冲区g_pd3dDevice->CreateVertexBuffer(3*sizeof(CUSTOMVERTE
4、X),0,D3DFVF_CUSTOMVERTEX,D3DPOOL_DEFAULT,&g_pVB,NULL)//填入顶点数据VOID*pVertices;g_pVB->Lock(0,sizeof(g_Vertices),(void**)&pVertices,0)returnE_FAIL;memcpy(pVertices,g_Vertices,sizeof(g_Vertices));g_pVB->Unlock();//渲染函数VOIDRender(){pDevice->SetRenderState(D3DRS_ZENAB
5、LE,D3DZB_FALSE);pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);//更改这两个渲染状态就可以实现透视功能//清空缓冲g_pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,0),1.0f,0);g_pd3dDevice->BeginScene()//在BeginScene后台缓存绘制图形//开始绘制图形g_pd3dDevice->SetStreamSource(0,g_pVB,0,si
6、zeof(CUSTOMVERTEX));g_pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX);g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,1);g_pd3dDevice->EndScene();//在EndScene结束后台缓存渲染图形//在这可以得到我们的颜色,画准心。g_pd3dDevice->Present(NULL,NULL,NULL,NULL);//将后台缓存绘制的图形提交到前台缓存显示}//清理资源VOIDCleanup
7、(){g_pVB->Release();//释放顶点缓存对象g_pd3dDevice->Release();//释放设备对象g_pD3D->Release();//释放d3d对象}下面是一篇网上的透视源码作简要注释boolStartDll=1;boolWallHack=1;//定义布尔变量用来判断是否开启透视功能typedefHRESULT(WINAPI*DrawIndexedPrimitive_)(LPDIRECT3DDEVICE9pDevice,D3DPRIMITIVETYPEType,INTBaseVertex
8、Index,UINTMinIndex,UINTNumVertices,UINTStartIndex,UINTPrimitiveCount);//从这开始是detourshookcom接口需要的参数,后面有如何用detourshookcom接口的方法,这里定义了一个类型DrawIndexedPrimitive_pDrawIndexedPrimit