随笔分类 -  DirectX

摘要:混合像素的混合,将几种像素合成新的像素。如书中木箱和透明茶壶的图。方法就是通过一定的公式,将前后两个像素值混合为一个新的像素值。该公式如下上面的所有变量都是一个4D 颜色向量(r,g,b,a),并且符号是表示分量相乘。OutputPixel----混合后的像素值SourcePixel-----通常被... 阅读全文
posted @ 2014-04-30 17:01 wangke1020 阅读(419) 评论(0) 推荐(0)
摘要:这个程序是基于上个程序修改而来,为每一个面贴图。但是之前一直有问题,纹理一直不能正确显示1.不显示纹理。如下图所示经排查,问题出在Render函数里面设置顶点格式d3dDevice->SetFVF(D3DFVF_XYZ).然后我就修改成了自定义的格式Vertex::FVF。2.上面修改完成后,纹理显... 阅读全文
posted @ 2014-04-28 13:38 wangke1020 阅读(578) 评论(0) 推荐(0)
摘要:纹理技术是一种允许我们为三角形赋予图像数据的技术。例如,我们能够常见一个立方体并且通过对它的每一个面创建一个纹理来把他变成一个木箱。在Direct3D中一个威力是通过IDirect3DTexture9接口来实现的。一个纹理是一个类似像素矩阵的表面它能够被映射到三角形上。纹理坐标Direct3D使用一... 阅读全文
posted @ 2014-04-25 23:15 wangke1020 阅读(368) 评论(0) 推荐(0)
摘要:灯光的种类1.环境光(Ambient Light): 这种灯光被其他所有表面反射。 2.漫反射(Diffuse Reflection) : 当它照射到一个表面时,它将在所有方向上均匀的反射。 3.镜面反射(Specular Reflection): 当它照到一个表面时,它严格地按照一个方向反射。 ... 阅读全文
posted @ 2014-04-25 17:27 wangke1020 阅读(668) 评论(0) 推荐(0)
摘要:1.表示方法 在Direct3D中,色彩的常用表示方法有两种,一种是D3DCOLOR结构来表示色彩,它实际上是一个DWORD即32位。D3DCOLOR分为4部分,每部分8位,分别是alpha、red、green、blue。各颜色取值范围是0-255。对D3DCOLOR的初始化和复制,常用的方式是用D... 阅读全文
posted @ 2014-04-24 17:06 wangke1020 阅读(384) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 //全局变量 6 7 LPDIRECT3D9 d3D9 = NULL; // IDirect3D9接... 阅读全文
posted @ 2014-04-17 23:08 wangke1020 阅读(815) 评论(0) 推荐(0)
摘要:3.1 顶点/索引缓存 顶点缓存是一块连续的存储了顶点数据的内存。同样的,一个索引缓存是一块连续的存储了索引数据的内存。我们使用顶点和索引缓存保存我们的数据是因为他们能被放置在显存中。渲染显存中的数据要比渲染系统内存中的数据快得多。在代码中,我们用IDirect3DVertexBuffer9接口来定义顶点缓存。用IDirect3DIndexBuffer9接口来定义索引缓存。 3.1.1创建一个顶点和索引缓存 这两个方法大部分参数是相同的,因此我们一起介绍它们。 Length —— 分配给缓存的字节大小。假如想得到一个能存储8个顶点的顶点缓存,那么我们就要在顶点结构中设置这个参数为8 *... 阅读全文
posted @ 2014-04-10 09:17 wangke1020 阅读(773) 评论(0) 推荐(0)
摘要:本章的主题是渲染管线。渲染管线是什么意思呢?我去查了一下,百度百科里说, 渲染管线也称为渲染流水线或像素流水线或像素管线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产能力和效率,而渲染管线则是提高显卡的工作能力和效率。其作用是创建为 3D世界进行几何描述的 2D 图形并设定一个虚拟照相 机确定这个世界中哪一部分将被透视投影到屏幕上。 表现模型 3D世界中最基本的单元就是三角形,三角形可由其三个顶点坐标唯一确定。 三维坐标中每个点有x,y,z构成,而在Direct3D中,一个点不仅包... 阅读全文
posted @ 2014-04-08 09:30 wangke1020 阅读(805) 评论(0) 推荐(0)
摘要:1.Direct3D概述 Direct3D的工作框架图如下图所示。 应用程序通过调用Direct3D的API来绘图,Direct3D不直接作用于图形设备,而是通过硬件抽象层(HAL,Hardware Abstraction Layer)操作图形设备。这样的好处是:Direct3D不需要了解图形设备的细节,只要图形设备支持HAL,Direct3D就可以操作该 图形设备。 1 bool supportsHardwareVertexProcessing; 2 // 如果为真,意味着硬件设备支持它 3 if ( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDL 阅读全文
posted @ 2014-03-25 14:53 wangke1020 阅读(656) 评论(0) 推荐(0)
摘要:三维空间向量 在D3DX库中,用D3DVECTOR3类表示三维空间的向量。向量支持+、-、*、/、==、!= 等各种运算。 计算向量大小(向量的模)我们利用D3DX库下面的函数便能计算向量的大小。FLOAT D3DXVec3Length(CONST D3DXVECTOR3* Pv); 标准化向量 标准化向量就是让向量的大小等于1, 即被叫做单位向量。我们利用D3DX的库下面的函数能标砖化向量。D3DXVECTOR3 *D3DXVec3Normalize(D3DXVECTOR3* pOut, // Result.CONST D3DXVECTOR3* pV // The vecotr to... 阅读全文
posted @ 2014-03-20 13:18 wangke1020 阅读(529) 评论(0) 推荐(0)