随笔分类 - DX
DirectX的开发、函数、及相关的知识点收集与整理,凡是转载的文章,在标题处有【转】标志
摘要:很多图片没有alpha通道, 想通过指定特定的颜色为"透明色", 比如, 有一张相片的图像和一张相框的图像. 如下所示.相框的中间部分是白色的,而这张图像又没有alpha通道,是jpg格式的,渲染的时候想让把相框中间的白色部分渲染成透明色,以便看到后面的相片.这个时候就可以使用Colorkey技术了.下面是设置与渲染 部分的代码.View Code //---------------------------------------------------------------------------------void MyDXApp::initOther(){ base
阅读全文
摘要:View Code //// 在场景中渲染出一个茶壶Mesh以及这个茶壶的影子//#include "header.h"ID3DXMesh *pTeapot = NULL;D3DMATERIAL9 teapotMtrl;D3DLIGHT9 pointLight; // 点光bool DXSetup(){ // 初始化材质 ::ZeroMemory(&teapotMtrl, sizeof(teapotMtrl)); teapotMtrl.Ambient = RED; teapotMtrl.Diffuse = RED; teap...
阅读全文
摘要:关于SetTextureStageState()这个函数,此文的理解有误,怕误导了别人,特别在这里声明一下,大家可以看最下面的那个连接,那个写的很好,我也是看了那个blog才知道我理解错了。下面的代码可以不看了。再次说说我的理解吧,一个物体是否透明,取决于它的材质,可以理解,在现实中,玻璃这种材质是透明的,而木头这种材质是不透明的,而材质中的diffuse,diffuse中的alpha就是用来调整这个材质的透明度。SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);这句话是说,现在要画的这个物体,它的alpha来自于颜色,比如这个地
阅读全文
摘要:首先把一些概念强化一下各种Buffer,DX里面有TargetBuffer,ZBuffer和StencilBuffer,在创建Device时有一个参数是D3DPRESENT_PARAMETERS结构对象,这个结构里面有一些字段在此提出来再记一下D3DPRESENT_PARAMETERS d3dpp;d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; // 这个字段值是表示要使用什么格式的TargetBuffer,TargetBuffer存储的是颜色值,所以它的格式一般是说明ARGB各占多少位,详细请看MSDNd3dpp.EnableAutoDepthStenc..
阅读全文
摘要:一、下载DX装起来:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812二、创建一个Win32窗口程序,空的,创建一个cpp文件,把项目属性配置一下,主要就是连接的静态库设置一下,要连接的静态库如下 d3d9.lib d3dcompiler.lib --HLSL编译器 DxErr.lib --错误库 dxguid.lib --定义了Direct3D中所需要的GUID,即COM需要引用的其它的,像DX的动态库、运行库、运行目录,在安装DX SDK的时候就已经设置好了,可以在选项里面看到三、把下面的
阅读全文
摘要:为了便于说明,首先假设存在下列的顶点缓冲和索引缓冲 vb= { {-1.0, 1.0, 0.0}, index 0 { 1.0, 1.0, 0.0}, index 1 { 1.0,-1.0, 0.0}, index 2 {-1.0,-1.0, 0.0}, index 3 {-2.0, 2.0, 0.0}, index 4 { 2.0, 2.0, 0.0}, index 5 } 和对应该顶点缓冲的一组索引缓冲ib 初学D3D,DrawIndexedPrimitive这个函数是个难点,主要是MSDN中的解释不是很明确,这个函数共6个参数,下面对这6个参数进行一下详细的解释。 参数1:D3DPRI.
阅读全文
摘要:为了渲染并显示一个场景,此步骤中示例代码的做法是:清除后备缓冲,并设置为蓝色,将后备缓冲中的内容提交到前台缓冲中,最后将前台缓冲呈现给屏幕。为了清除一个场景,需要调用IDirect3DDevice9::Clear方法。//Clearthebackbuffertoabluecolorg_pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,255),1.0f,0);IDirect3DDevice9::Clear的前两个参数,告知Direct3D所要清除一系列矩形的大小和地址。这些矩形描述了那些在渲染目标表面的,即将被清除的区域
阅读全文
摘要:改变D3D中的渲染状态1). 设置着色模式: SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT) //设置平面着色模式SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD) //设置格劳德着色模式2). 设置多边形填充模式:SetRenderState(D3DRS_FILLMODE, D3DFILL_POINT) //点填充模式,D3D在多边形的每个顶点绘制一个像素SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME) //线填充模式,D3D在多边形的每个边绘制一条
阅读全文
摘要:该教程基于DirectX 8.0 Graphics, 一部分内容由DirectX 8.0 SDK 英文文档翻译而来,一部分是自己工作经验的总结,作者对此享有著作权,读者可任意拷贝和传播,但不包含商业的用途,转贴请注明出处。作者联系方式: jockey8888@sina.com目录:一. 慨述二. D
阅读全文
摘要:如何学习API (OpenGL/Direct3D等)最近很多人在问,我该如何学习OpenGL?我学完了OpenGL了,该怎么用?我想在回答这些类似的问题以前先和大家谈谈怎么学习API的方法,或许谈完了,我就不需要回答了。 首先,我认为API是工具,不是本质,OpenGL/Direct3D的本质是图形
阅读全文
浙公网安备 33010602011771号