- 博客(11)
- 收藏
- 关注
原创 Direct3D学习手记十一:网格二【从.x文件中加载网格】
上篇我们介绍了自己创建网格的方法,此次我们介绍从.x文件中加载3D模型的方法.x文件:.x文件是一种存储3D模型数据的一种文本文件,其存储格式有两种:文本方式和二进制方式,其中文本方式易于查看,.x文件有其特定的格式.x文件中存储了顶点数据,材质信息和纹理贴图信息等待,可以通过特定的方式读取其中的内容。从.x文件中加载网格:HRESULT D3DXLoadMeshFromX
2013-12-31 10:38:05 1729
原创 Direct3D学习手记十:网格一【手动创建网格】
本文介绍网格技术并手动创建一个立方体网格网格模型:网格模型是一种将物体的顶点数据、材质信息、纹理信息存储在一个外部文件中的3D物体模型。网格接口:网格接口有ID3DXMesh和ID3DPMesh(渐进网格),这两个接口都继承自ID3DBaseMesh接口创建空白网格:HRESULT D3DXCreateMeshFVF( DWORD NumFaces, DWORD Num
2013-12-30 11:23:38 1492 1
原创 Direct3D学习手记九:字体
本文介绍Direct3D里的字体来绘制文本ID3DXFont接口:本文重点介绍使用ID3DXFont来绘制文本信息,该接口内部使用GDI绘制创建字体:方式一:HRESULT D3DXCreateFont( LPDIRECT3DDEVICE9 pDevice, INT Height, UINT Width, UINT Weight, UINT MipLevels, BOOL It
2013-12-29 10:25:19 893 1
原创 Direct3D学习手记八:模板技术【镜面效果】
本文介绍模板技术并实现镜面效果模板缓存:模板缓存和深度缓存是同时创建的,在指定深度缓存格式的时候,模板缓存的格式也被同时指定了,语句如下:d3dpp.AutoDepthStencilFormat=D3DFMT_D24S8;//24位深度缓存,8位模板缓存模板缓存的分辨率与深度缓存和后台缓存的分辨率大小相同,屏幕上的某个像素点都对应着模板缓存、深度缓存和后台缓存中的某个像素值。模
2013-12-28 14:15:57 1527
原创 Direct3D学习手记七:Alpha融合技术
本文介绍Direct3D里的融合技术来实现透明效果在上篇文章中,介绍到深度缓存和深度测试,其效果将会时近处物体遮挡远处物体,但是如果近处物体是玻璃等透明的物体,则紧紧使用深度测试是行不通的,这时就需要使用A融合技术来实现透明效果。融合:融合技术就是将当前像素(源像素)的颜色值与先前的像素(目标像素)的颜色值通过某种方式合成。其中合成方式如下:最终Color=(源像素的R
2013-12-27 11:26:27 1123
原创 Direct3D学习手记六:深度
本文介绍Direct3D里的深度缓存与深度测试深度缓存:深度缓存又称Z缓存,其中存储了将要绘制到屏幕上的像素的深度信息,而深度值则是体现物体远近的指标由于物体相对观察点的远近不同会造成近处物体对远处物体的遮挡。在我们创建设备的时候进行D3DPRESENT_PAREMETERS结构对象的初始化中使用如下两句:d3dpp.EnableAutoDepthStencil=true;
2013-12-26 12:36:10 819
原创 Direct3D学习手记五:纹理映射
本文介绍纹理映射:将2D图像映射到3D物体上纹理坐标:使用纹理映射将图片贴到3D物体表面必须物体的顶点指定纹理坐标,最多指定8级纹理坐标,本次我们只使用一级可以像以下方式定义定点格式://自定义顶点格式typedef struct VERTEX{ FLOAT _x,_y,_z;//三维坐标 FLOAT _u,_v;//纹理坐标,一级纹理 VERTEX(FLOAT x,FL
2013-12-25 14:42:40 922
原创 Direct3D学习手记四:光照、材质与顶点法向量
本文介绍Direct3D里的光照与物体材质以及顶点法向量光照:组成:1.环境光(Ambient),基于自然界环境的整体亮度,周围物体的反射、折射2.漫反射光(Diffuse),沿着特定方向传播,但到达物体表面后沿着各个方向均匀反射,所以在各个方向都能看到3.镜面反射光(Specular),沿着特定方向传播,到达物体表面后会沿着另外一个特定的方向反射出去,只有在该方向观察,才可看
2013-12-24 14:04:20 1787
原创 Direct3D学习手记三:绘制彩色3D物体
本文是在上一篇的基础上做一些锦上添花的事:为物体添加色彩原理:在设置顶点格式的时候给其一个色彩分量D3DFVF_DIFFUSE这里重点介绍一下Diret3D里的常用灵活顶点格式1.D3DFVF_DIFFUSE指示顶点具有颜色(DWORD,ARGB顺序)2.D3DFVF_NORMAL指示顶点具有法向量(float nx,ny,nz)3.D3DFVF_XYZ指示顶点坐标(float
2013-12-23 13:38:11 910
原创 Direct3D学习手记二:绘制简单3D物体
本文介绍绘制简单3D物体的一般步骤首先介绍一下此次要用的COM接口和API函数:COM接口:1.IDirect3DVertexBuffer9接口是顶点缓存接口,用于存储绘制的物体的顶点数据2.IDirect3DIndexBuffer9接口是索引缓存接口,用于存储顶点的索引,因为在绘制大多数物体时都会有顶点被多次使用,如果只用顶点缓存(IDirect3DVertexBuffer9
2013-12-23 12:45:52 1196
原创 Direct3D学习手记一:实现Direct3D程序框架
本文介绍编写Direct3D程序的一般步骤和框架函数:一般步骤:1.注册窗口类2.创建窗口3.创建设备4.初始化程序要用的资源如顶点或索引缓存5.游戏循环即消息循环,在没有消息时进行场景的绘制6.程序退出前的清理操作,释放申请的资源框架函数:1.InitDirect3D函数完成步骤1、2、32.Setup函数完成步骤43.GameLoop函数完成
2013-12-22 14:48:54 1402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人