- 博客(22)
- 资源 (3)
- 收藏
- 关注
原创 创建灵活的摄象机
<br />通过鼠标活动改变vLookatPt(x,y,z)中的xyz<br />从而改变观察矩阵。<br />D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec )
2010-06-30 14:48:00 620
原创 实现委托
<br />#include <iostream>using namespace std;template <class T>class A{private: typedef int (T::*delegateFun)(int); T * _This; delegateFun _deleGate;public: //This是被代理的对象, delegateFun是被代理的方法 A(T * This, delegateFun delegatef)
2010-06-30 14:18:00 717
原创 The Direct3D Transformation Pipeline
Introduction<br />This white paper provides a technical explanation for Direct3D application developers on how to set the parameters of the Direct3D Transformation Pipeline by the direct manipulation of Direct3D matrices.Overview<br />Direct3D uses three t
2010-06-29 19:04:00 1623
原创 Direct3D顶点坐标变换
<br />开始的话:顶点坐标变换时Direct3D学习中的入门基础,在这里将详述其原理:<br />Direct3D中渲染三维对象的过程分为两个阶段:《1》T&L(Transforming and Lighting),即坐标变换和光照;<br /> 《2》光栅化处理阶段。<br /> <br />一,T&L流水线:<br /> 如下图:<br />
2010-06-29 18:19:00 3695
原创 d3d像素雾化
Using Pixel Fog<br />Use the following steps to enable pixel fog in your application.Enable fog blending by setting the D3DRS_FOGENABLE render state to TRUE. Set the desired fog color in the D3DRS_FOGCOLOR render state. Choose the fog formula to use by set
2010-06-25 13:57:00 1266
原创 浮点数四舍五入最简洁的办法。
<br />float x=5.2;<br />int n;<br /> <br />n= int(x+0.5);
2010-06-23 22:43:00 1410 1
原创 d3d旋转分解
<br />D3D是通过Device的SetTransform来设置世界变换矩阵的。物体默认是在D3D的世界坐标原点上。如果我们要把它做一些变换再显示出来,就要计算一个该物体的世界矩阵matWorld,再调用Device的SetTransform(D3DTS_WORLD,&matWorld),来变换他的位置。<br />位移好说,用一个D3DXMatrixTranslation就能统统搞定,关键是旋转。D3D的所有旋转函数所围绕的轴都是穿过原点的,所以如果我们要空间中任意轴旋转,就要和位移配合起来做。<br
2010-06-23 17:09:00 3631 1
原创 关于3d旋转
<br />3d游戏中涉及到很多旋转,但是在计算旋转矩阵时,点的旋转要转化为向量的旋转来计算,而向量的旋转要从三维坐标转化为二维坐标来计算。
2010-06-20 22:55:00 855
原创 D3DXVec3Cross运算的意义
D3DXVECTOR3 *D3DXVec3Cross( <br /><br /> D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2);通过差积运算得到一个垂直于pV1, pV2的向量。此向量垂直于pV1, pV2.
2010-06-20 17:27:00 4280
原创 D3DXVec3TransformNormal和D3DXVec3TransformCoord的区别
<br />一个是对向量的旋转,一个是对点的旋转<br /> <br />坐标和向量是有区别的:向量的第四维数值是0,坐标的第四维数值是1<br />向量=两个坐标的差值 第四维同样做减法,结果是0<br />向量的坐标变换用D3DXVec3TransformNormal,<br />点的变换用D3DXVec3TransformCoord。<br />D3DXVec3Transform和D3DXVec3TransformCoord相似,区别在于后者变换后将w投射回1<br /> <br />实际执
2010-06-20 17:06:00 2001
原创 d3d纹理过滤
<br />//=============================================================================<br />// Desc: 最近点采样和线性纹理过滤方式<br />//=============================================================================<br />#include <d3dx9.h><br />#pragma comment(lib, "d3d9.
2010-06-18 13:12:00 1231
原创 3d3灯光设置注意的地方
<br />#include <d3dx9.h><br />#pragma comment(lib, "d3d9.lib")<br />#pragma comment(lib, "d3dx9.lib")<br />#pragma comment(lib, "winmm.lib")<br />//-----------------------------------------------------------------------------<br />// Desc: 全局变量<br />//----
2010-06-18 11:04:00 1088
原创 d3d设置灯光时需要注意的地方
<br />void Render()<br />{<br /> g_pD3dDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(45, 50, 170), 1.0f, 0);<br /> if (SUCCEEDED(g_pD3dDevice->BeginScene())) {<br /> SetLight();<br /> g_pD3dDevice->SetStreamSource(0, g_pVB, 0, si
2010-06-17 18:13:00 1028
原创 d3d设置材质与灯光
//-----------------------------------------------------------------------------// Desc: 设置材质和灯光//-----------------------------------------------------------------------------VOID SetLight(){ //设置材质 D3DMATERIAL9 mtrl; ZeroMemory( &mtrl, sizeof(D3DM
2010-06-17 12:32:00 2250
原创 d3d 画旋转方棱椎与六面体
<br /> //ÏÂÃæÊdzÌÐòËùÐèÒªµÄincludeÎļþ£¬µÚÒ»¸öincludeÊÇÊÓ´°Ëù±ØÐëµÄ£¬ //µÚ¶þ¸öÊÇDirect3D 8Ëù±ØÐëµÄ¡£ #include <WINDOWS.H> #include <D3DX8.H> HWND hWnd; HDC hDC; HINSTANCE hInstance; //µÃµ½³ÌÐòµÄÀý×Ó
2010-06-16 17:41:00 1385
原创 CheckDeviceType的作用
<br />HRESULT CheckDeviceType( <br /><br /> UINT Adapter,<br /> D3DDEVTYPE DeviceType,<br /> D3DFORMAT DisplayFormat,<br /> D3DFORMAT BackBufferFormat,<br /> BOOL Windowed<br />);<br /> <br />CheckDeviceType用来检查是否有匹配的显卡驱动支持该DisplayForma
2010-06-16 16:41:00 2055
原创 d3d实现一个旋转的三角形
<br />#include "d3d9.h"<br />#include "d3dx9math.h"<br />#pragma comment(lib,"d3d9.lib") <br />#pragma comment(lib,"d3dx9.lib") <br />#pragma comment(lib, "winmm.lib") <br />LPDIRECT3D9 g_pD3D = NULL;//Direct3D¶ÔÏó<br />LPDIRECT3DDEVICE9 g_pd3dDevice =
2010-06-16 14:58:00 808
原创 d3d实现一个旋转的三菱椎
<br />#include "d3d9.h"<br />#include "d3dx9math.h"<br />#pragma comment(lib,"d3d9.lib") <br />#pragma comment(lib,"d3dx9.lib") <br />#pragma comment(lib, "winmm.lib") <br />LPDIRECT3D9 g_pD3D = NULL;//Direct3D¶ÔÏó<br />LPDIRECT3DDEVICE9 g_pd3dDevice =
2010-06-16 14:55:00 2325
原创 SetRenderState很耗资源,请放入init3D函数中
<br /> g_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);<br /> g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, false);<br /> <br />耗资源,而且只需要对设备设置一次就起到效果,所以放到初始化d3d 设备的函数中。
2010-06-16 14:26:00 1042
原创 为什么看到的三角形是黑的
<br />如果开了灯光,但是又没有设置材质,此时的三角形会是黑的,所以需要关闭灯光。<br />g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, false);
2010-06-16 14:24:00 749
原创 d3d为什么不能显示正反面
<br />如果没加 g_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); 会导致看不到正反面,所以如果没有旋转那么此时将看不到任何东西,因为看不到正面或者反面。
2010-06-16 14:23:00 720
原创 3d透视投影函数的理解
<br />转自http://blog.csdn.net/hhzczhh/archive/2010/06/15/5671563.aspx
2010-06-15 15:54:00 752
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人