随笔分类 -  D3D

摘要:#include<d3d9.h>#include<d3dx9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Ortho Projection Matrix"#define WINDOW_WIDTH 640#define WINDOW_HEIGHT 480// Function Prototypes...boo 阅读全文
posted @ 2011-08-19 14:25 小 楼 一 夜 听 春 雨 阅读(2850) 评论(0) 推荐(0)
摘要:http://www.cppblog.com/lovedday/archive/2008/05/02/48632.html投影变换将摄影空间中的三维物体投影到二维胶片上,也就是Direct3D中的屏幕,这种三维到二维的变换过程就是投影变换,即从取景空间到摄影空间的变换。设三维物体在观察空间中的坐标为Pview,投影矩阵为Mproj,则顶点在投影空间中的坐标为:Pproj= Pview* Mproj下面分别介绍两种基本的投影变换:正交投影和透视投影,以及它们在Direct3D中的实现。1、正交投影正交投影中,投影向量和观察平面垂直,物体坐标沿观察坐标系的z轴平行投影到观察平面上,观察点和观察平面 阅读全文
posted @ 2011-08-19 14:19 小 楼 一 夜 听 春 雨 阅读(2743) 评论(0) 推荐(0)
摘要:#include<d3d9.h>#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Drawing a Quad"// Function Prototypes...bool InitializeD3D(HWND hWnd, bool fullscreen);bool InitializeObjects();void RenderScene();void Shutdown();// Direct3D object and device.LPDIRECT3D9 g_D3D = NULL;LPDIREC 阅读全文
posted @ 2011-08-19 14:10 小 楼 一 夜 听 春 雨 阅读(484) 评论(0) 推荐(0)
摘要:#include<d3d9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Drawing a Triangle"// Function Prototypes...bool InitializeD3D(HWND hWnd, bool fullscreen);bool InitializeObjects();void Ren 阅读全文
posted @ 2011-08-19 14:03 小 楼 一 夜 听 春 雨 阅读(355) 评论(0) 推荐(0)
摘要:#include<d3d9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Drawing Lines"// Function Prototypes...bool InitializeD3D(HWND hWnd, bool fullscreen);bool InitializeObjects();void RenderSc 阅读全文
posted @ 2011-08-19 11:43 小 楼 一 夜 听 春 雨 阅读(1831) 评论(0) 推荐(1)
摘要:#include<d3d9.h>#include<d3dx9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Template"#define WINDOW_WIDTH 640#define WINDOW_HEIGHT 480// Function Prototypes...bool InitializeD3D 阅读全文
posted @ 2011-08-19 11:09 小 楼 一 夜 听 春 雨 阅读(497) 评论(0) 推荐(0)
摘要:#include<d3d9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Blank D3D Window"// Function Prototypes...bool InitializeD3D(HWND hWnd, bool fullscreen);void RenderScene();void Shutdown(); 阅读全文
posted @ 2011-08-19 10:57 小 楼 一 夜 听 春 雨 阅读(703) 评论(0) 推荐(0)
摘要:IDirect3D* WINAPI Direct3DCreate9(UINT SDKVersion //版本号); //创建Direct3D9接口对象HRESULT IDirect3D::GetDeviceCaps(UINT Adapter, //显卡号(一般为D3DADAPTER_DEFAULT)D3DDEVTYPE DeviceType, //设备类型(一般为D3DDEVTYPE_HAL)D3DCAPS9* pCaps //返回设备功能信息); //本机显示卡功能检测HRESULT IDirect3D::GetAdapterDisplayMode(UINT Adapter, //显卡号D3 阅读全文
posted @ 2011-08-18 23:14 小 楼 一 夜 听 春 雨 阅读(2103) 评论(0) 推荐(0)
摘要:3.3.1 透视投影透视投影最显著的特征就是透视缩短,物体距离照相机越远,它在最终图像中看上去就越小。这是因为透视投影的视景体可以看成是一个金字塔的平截头体(顶部被一个平行于底面的平面截除)。位于视景体之内的物体被投影到金字塔的顶点,也就是照相机或观察点的位置。靠近观察点的物体看上去更大一些,因为和远处的物体相比,它们占据了视景体中相对较大的区域。这种投影方法常用于动画、视觉模拟以及其他要求某种程度的现实感的应用领域,因为它和我们在日常生活中观察事物的方式相同。glFrustum()函数定义了一个平截头体,它计算一个用于实现透视投影的矩阵,并把它与当前的投影矩阵(一般为单位矩阵)相乘。记住,视 阅读全文
posted @ 2011-08-08 15:44 小 楼 一 夜 听 春 雨 阅读(3351) 评论(0) 推荐(0)
摘要:D3DXIntersectTri 求三角形与射线相交D3DXVECTOR3vec1(-10,0,-10);D3DXVECTOR3vec2(0,0,10);D3DXVECTOR3vec3(10,0,-10);D3DXVECTOR3vecOrg(0,10,0);D3DXVECTOR3vecDir(0,-2,0);//求射线长度D3DXVECTOR3_vecDir;D3DXVec3Subtract(&_vecDir,&vecDir,&vecOrg);floatdis_Ray=D3DXVec3Length(&_vecDir);D3DXVec3Normalize(& 阅读全文
posted @ 2011-08-04 10:48 小 楼 一 夜 听 春 雨 阅读(1341) 评论(0) 推荐(1)
摘要:转自http://www.cnblogs.com/lancidie/archive/2011/05/20/2052094.html学习D3D,应该对这三个内存理解,网上收集了一下相关资料,收藏下来。三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡内存都很小,那时还是在显存是16M,32M为主流的时候,如果你运行一个需要很多纹理的3D程序,那么显存一会就不够用了,那该咋办呢?只好问系统内存借点用用了!这就是AGP内存的由来,在我们电脑BIOS中有个设置AGP Aperture的选项,这里就是设置显 阅读全文
posted @ 2011-08-03 17:26 小 楼 一 夜 听 春 雨 阅读(520) 评论(0) 推荐(0)
摘要:用矩阵变换3-D向量,并且用w = 1投影结果。定义:D3DXVECTOR3*WINAPID3DXVec3TransformCoord(D3DXVECTOR3*pOut,CONST D3DXVECTOR3*pV,CONST D3DXMATRIX*pM);ParameterspOut[in, out]指向D3DXVECTOR3结构的操作结果。pV[in]指向D3DXVECTOR3结构的向量。pM[in]指向D3DXMATRIX结构的变换矩阵。Return Value指向D3DXVECTOR3结构的变换后的向量。说明:这个函数用矩阵pM变换3-D向量pV(x, y, z, 1),并且用w = 1投 阅读全文
posted @ 2011-08-03 11:44 小 楼 一 夜 听 春 雨 阅读(1327) 评论(0) 推荐(0)
摘要:从三点构造一个平面方程。定义:D3DXPLANE*WINAPID3DXPlaneFromPoints(D3DXPLANE*pOut,CONST D3DXVECTOR3*pV1,CONST D3DXVECTOR3*pV2,CONST D3DXVECTOR3*pV3);参数:pOut[in, out]指向D3DXPLANE的平面方程。pV1[in]指向D3DXVECTOR3结构的向量,用来构造平面的一个点。pV2[in]指向D3DXVECTOR3结构的向量,用来构造平面的一个点。pV3[in]指向D3DXVECTOR3结构的向量,用来构造平面的一个点。返回值:指向D3DXPLANE结构的平面方程, 阅读全文
posted @ 2011-08-03 11:42 小 楼 一 夜 听 春 雨 阅读(505) 评论(0) 推荐(0)
摘要:D3DXVec3TransformCoord 函数用矩阵变换3-D向量,并且用w = 1投影结果。定义:D3DXVECTOR3*WINAPID3DXVec3TransformCoord(D3DXVECTOR3*pOut,CONST D3DXVECTOR3*pV,CONST D3DXMATRIX*pM);ParameterspOut [in, out]指向 D3DXVECTOR3 结构的操作结果。 pV [in]指向 D3DXVECTOR3 结构的向量。 pM [in]指向 D3DXMATRIX 结构的变换矩阵。 Return Value指向 D3DXVECTOR3 结构的变换后的向量。说明:这 阅读全文
posted @ 2011-08-02 18:13 小 楼 一 夜 听 春 雨 阅读(1651) 评论(0) 推荐(0)
摘要:TGA(Tagged Graphics)文件 TGA是由美国Truevision公司为其显示卡开发的一种图像文件格式,已被国际上的图形、图像工业所接受。现在已成为数字化图像,以及运用光线跟踪算法所产生的高质量图像的常用格式。TGA文件的扩展名为.tga。TGA的结构比较简单,属于一种图形、图像数据的通用格式,目前大部分文件为24位或32位真彩色,在多媒体领域有着很大影响。由于Truevision公司推出TGA的目的是为了采集、输出电视图像,所以TGA文件总是按行存储、按行进行压缩的,这使得它同时也成为计算机生成图像向电视转换的一种首选格式。使用photoshop软件可以打开此类文件。结构 TG 阅读全文
posted @ 2011-07-12 16:00 小 楼 一 夜 听 春 雨 阅读(3327) 评论(0) 推荐(0)
摘要:改变D3D中的渲染状态 1). 设置着色模式: SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT) //设置平面着色模式 SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD) //设置格劳德着色模式 2). 设置 阅读全文
posted @ 2010-08-25 14:21 小 楼 一 夜 听 春 雨 阅读(605) 评论(0) 推荐(0)