随笔分类 - DirectX9
一个微软自家的三维开发
摘要:一.简介 在Direct3D中,有三种输出文字的方法: (1) ID3DXFont 接口渲染文字 (2) CD3DFont 类渲染文字 (3) D3DXCreateText() 函数渲染文字 二.ID3DXFont 1.创建 ID3DXFont 接口 HRESULT D3DXCreateFontIn
阅读全文
摘要:一.简介 绘制流水线也称为渲染管线,在DirectX的固定渲染管线中有九个步骤 用来创建3D世界几何描述的2D图像,并且设定一个虚拟摄像机把其中需要的部分透视投影到屏幕上 绘制流水线的流程:局部坐标系->世界坐标系->观察坐标系->背面消隐->光照->投影->裁剪->视口坐标系->光栅化 三维图形的
阅读全文
摘要:一.左手系坐标和右手系坐标 左手系坐标和右手系坐标的X轴和Y轴都是分别指向右边和上边的,唯一的区别在于手指中指指向的方向,一个是朝着屏幕,一个是朝着我们自己. 二.向量 点是三维空间中的一个坐标,它的值是参照原点绝对的 向量是表示方向和大小的三个分量,与位置距离无关,它是相对于参考点的 1.向量的表
阅读全文
摘要:一.简介 1.DirectX版本 DirectX1.0 1995年 DirectX 2.0DirectX 3.0DirectX 5.0DirectX 6.0DirectX 7.0 1997年 DirectX 8.0 2000年 DirectX 9.0DirectX 9.0cDirectX 10.0D
阅读全文
摘要:一.简介 d3dx9mesh.h有关网格模型 二.灵活的顶点格式 Direct3D中的顶点不只有空间位置属性,还可以有颜色 法线向量属性等,所以可以自定义一个顶点结构 1.使用 struct ColorVertex{ float _x,_y,_z; //位置 DWORD _color; //颜色};
阅读全文
摘要:一.D3DXCOLOR(颜色结构体) //全局颜色常量 namespace d3d{ ... const D3DXCOLOR WHITE(D3DCOLOR_XRGB(255,255,255)); const D3DXCOLOR BLACK(D3DCOLOR_XRGB(0,0,0)); const D
阅读全文
摘要:一.OBJ文件简介 obj文件不包含面的颜色定义信息,可以引用材质库存储在一个.mtl的文件中(mtllib 材质库),材质库包含了材质的漫射(diffuse) 环境(ambient) 光泽(specular) 反射(specularity) 折射(refraction) 透明度(transpare
阅读全文
摘要:一.简介 纹理映射是一种为三角形赋予图像数据的技术 在 Direct3D 中一个纹理是通过 IDirect3DTexture9 接口来表示,一个纹理是一个像素矩阵的表面被映射到三角形上 二.纹理坐标 Direct3D 使用一个纹理坐标系统,它是由水平方向的 u 轴(向右为正)和竖直方向 v 轴(向下
阅读全文
摘要:一.项目背景 因公司项目需要对.x模型进行处理,但是目前市场上处理.x模型文件的软件太少,对这种模型格式不兼容,所以只能转为OBJ这种通用的模型文件格式,最后处理完再把OBJ模型文件格式转换为.x模型文件格式 二.项目实施 做一个开源的小工具,用来转换.x模型文件和OBJ模型文件,分享到Github
阅读全文
摘要:一.简介 二.接口抽象类 1.IDirect3DDevice9 2.IDirect3DVertexBuffer9 / IDirect3DIndexBuffer9 3.ID3DXMesh 三.结构体 1.D3DXVECTOR3 2.D3DXCOLOR 3.D3DLIGHT9 4.D3DXMATRIX
阅读全文
摘要:一.简介 当一个函数里面的参数涉及到 Rlease() 或者 Free() 的时候,涉及到内存的操作,就要加返回值检验 二.检验函数返回值 三.检验错误缓存区
阅读全文
摘要:要用到纹理Surface 后续补上 要用到纹理Surface 后续补上
阅读全文
摘要:一.简介 二.灯光模型 1.环境光(Ambient Light) 环境光(Ambient Light):这种灯光将被其他所有表面反射且被用在照亮整个场景 2.漫射光(Diffuse Light) 漫反射(Diffuse Reflection):这种灯光按照特殊方向传播,当它照射到一个表面,它将在所有
阅读全文
摘要:1.3-图形学基础知识 1.3.1 表面 表面是Direct3D用于存储2D图像数据的一个像素矩阵,可以用接口IDirect3DSurface9来描述表面 1.3.4 内存池 表面和其他的Direct3D资源可以放入许多类型的内存池(Memory Pool),内存池的类型可用D3DPOOL枚举类型来
阅读全文
摘要:一.简介 二.着色器模式 1.平面着色 平面着色使得每个图元的每个像素都被赋予该图元第一个顶点所指定的颜色 2.格劳德着色 格劳德着色时得图元表面各像素的颜色值由各顶点的颜色进行线性插值得到 三.总结
阅读全文
摘要:一.简介 顶点着色器(Vertex Shader)是一段运行在图形卡GPU中的程序,它可取代固定流水线(渲染管线)中的变换和光照环节 二.使用顶点着色器的步骤 (1)顶点声明的创建使用 在使用固定流水线(渲染管线)的时候,使用灵活的顶点格式(FVF)来描述顶点结构的分量 在可编程流水线中,顶点结构的
阅读全文
摘要:一.简介 二.Direct3D类 1.创建D3D类 IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion); 2.获取设备类型 STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, //设备显示器(显卡)D3DDEV
阅读全文
摘要:一.简介 高级着色语言(High)可以编写顶点着色器和像素着色器,取代固定功能流水线中的部分功能,在图形卡的GPU(Graphics Processing Unit,图形处理单元)中执行 注意:如果图形卡不支持顶点着色器和像素着色器,可以切换为REF设备,但是这个设备会运行很慢 Shader lan
阅读全文