疯鱼无阻 http://bbs.ogdev.net/TopicContent.aspx?BoardID=2&TopicID=1960&Page=1我把根据SDK的帮助文档翻译,结合自己的理解写出来,大家来看看,请指出不正确的地方.
DDRS_ZENABLE用于控制深度缓存的状态。它的状态是用一个枚举类型来表示的:D3DZB_TRUE、D3DZB_FALSE和D3DZB_USEW。在D3D中z-buffering是对z轴上的信息起作用,所以,如果你需要表示的是2D信息的话,可以用pd3dDevice->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE);关闭z-buffering。比如游戏中的UI,需要用到一些控制面板之类的DD,这个时候就是需要关闭它的。这个渲染参数的默认值是跟D3DPRESENT_PARAMETERS中的EnableAutoDepthStencil的值是相关联的;如果这个值是TRUE,那么渲染状态就是D3DZB_TRUE,反之为D3DZB_FALSE。
D3DRS_FILLMODE从名字看的话,这个渲染模式是用来;控制填充模式的,它的值也是一个枚举类型D3DFILL_POINT、D3DFILL_WIREFRAME和D3DFILL_SOLID。默认值是D3DFILL_SOLID,不过这个值的作用现在还没有看出来。:P
D3DRS_SHADEMODE这个参数控制的是阴影模式,默认值是D3DSHADE_GOURAND,翻译过来一般是叫做高络德渲染。另外两个D3DSHADE_FLAT和D3DSHADE_PHONG。高络德阴影模式是对一个三角形的3个顶点的颜色进行线性叉值算法得到的。平面阴影模式只利用三角形的第一个顶点进行描述。很显然用D3DSHADE_GOURAND渲染方式可以得到更加逼真的阴影效果。
D3DRS_ZWRITEENABLE默认值TRUE表示可以写深度缓存,这个参数可以保护深度缓存不被系统修改。深度比对规则是依照D3DRS_ZFUNC参数的,如果值为FALSE的话,假设深度缓存被修改,但是这个值却不能写进缓存。
D3DRS_ALPHATESTENABLE这个参数将允许每个象素点都做alpha测试;如果测试通过的话,这个象素就会被帧缓存处理,否则的话,它会被所有帧缓存忽略掉。这个测试其实就是通过D3DRS_ALPHAFUNC参数提供的对比函数,比较输入的alpha值和参照值之间的差别,这个参照值是由D3DRS_ALPHAREF参数确定的,默认值是FALSE。
D3DRS_LASTPIXEL默认值是TRUE,绘制一条线的最后一个象素,如果是FALSE,就是不画。这个参数的主要作用是在绘制线框的时候体现出来的,假设我们要画一个矩形边框,有时候,矩形的两条线段的端点会出现重叠的现象,影响效果,这个时候,你可以把这个参数设为FALSE;但是要注意的是,除非你有明确的目的,一般不要轻易修改这个参数的值,它可能导致线框的结合处出现断开的现象。
D3DRS_SRCBLEND和D3DRS_DESTBLEND是用来设定支持的混合模式。
D3DRS_CULLMODE这个参数用来指定三角形背面的剔除方式。它的值是一个D3DCULL类型的枚举类型。D3DCULL_NONE,不要剔除背面;D3DCULL_CW,按照顺时针的方向的顶点剔除背面;D3DCULL_CCW,按照逆时针方向剔除背面。而最后一个就是默认值,还没弄清楚区别在什么地方。
D3DRS_ZFUNC这个参数在前面有提到,与D3DRS_ZWRITTENABLE有些关联。它的值是D3DCMPFUNC枚举类型的值;默认值是D3DCMP_LESSEQUAL。它允许程序根据一个象素距离摄像机的长度来接受或者拒绝它。这个象素的深度值会与depth-buffer的值进行比较,如果通过了这个测试,这个象素就会被写。实际上,如果象素没有通过测试的话,软件光栅处理和很多硬件加速都会更加快一些,因为不要渲染象素的话,就不需要对纹理进行过滤和调节。
D3DRS_ALPHAREF设定象素alpha测试的参考值,它的值是一个DWORD型的低8位,区间是从0x00000000到0x000000ff。默认值是0。
D3DRS_ALPHAFUNC这个参数允许程序根据象素的alpha值来决定是否接受。类似D3DRS_ZFUNC。
D3DRS_DITHERENABLE使程序允许抖动,默认是FALSE。
D3DRS_ALPHABLENDENABLE允许使用alpha混合,默认是FALSE。而混合类型是由D3DRS_SRCBLEND和D3DRS_DESTBLEND决定的。
D3DRS_FOGENABLE允许烟雾混合,也就是常说的烟雾效果。默认FALSE。
D3DRS_SPECULARENABLE打开镜面反射效果,默认是FALSE。
D3DRS_FOGCOLOR设定烟雾颜色。
D3DRS_FOGTABLEMODE这个烟雾公式被用来计算象烟雾,设定烟雾模式,默认值是D3DFOG_NONE,另外还有D3DFOG_EXP,D3DFOG_EXP2,D3DFOG_LINEAR。
分享到:
相关推荐
删除与基类重复的方法,相对减少源码体积(不多,约20KB).3:[+]ID3DXPMesh 之前版本漏掉了(MSDN内没有,d3dx9mesh.h中有).4 [+]ID3DXSPMesh 之前版本漏掉了(MSDN内没有,d3dx9mesh.h中有).5:[+]IDirect3D9Ex。6:[+]...
我如何将一个IDirect3DSurface9拉伸到另一个?功能IDirect3DDevice9 :: StretchRect无法在屏幕外的表面上使用。
对ID3D11Texture2D实现颜色填充(对D3D11实现IDirect3DDevice9::ColorFill效果) 运行环境VS2019 编Rlease x86版本
Direct3D 的IDirect3DDevice9::Clear 方法。图1.1 显示了应用程序、Direct3D 和图形设备之间的关 系。 图1.1 图1.1中Direct3D所表示的是Direct3D中已定义的,供程序员使用的Direct3D接口和函数的集合。 这些接口和...
可以在D3D8的游戏中写入自己的文字。hook 了IDirect3DDevice8::EndScene 来实现屏幕写字。希望对这方面感兴趣的童鞋有所帮助。 该示例由PowerBasic编写,很容易读懂。
Direct3D中实现图元的鼠标拾取
d3d9 画平面圆 void DrawCircle( IDirect3DDevice9* pd3dDevice, int xCenter, int yCenter, int nRadius, D3DCOLOR FrameColor)
3. iDirect 全球网络管理系统(NMS) 4. iDirect 虚拟网络运营商(VNO)、用户网络检察员(CNO) 5. iDirect 与移动通信 6. iDirect 系统其它方面的优势 6.1 小站安装容易 6.2 Rx CRC 关联 6.3 自动波束(网络)切换...
6:[+]IDirect3DDevice9Ex 7:[+]IDirect3DSwapChain9Ex 8:[+]IDirect3D9ExOverlayExtension 9:[+]IDirect3DDevice9Video 10:[+]IDirect3DAuthenticatedChannel9 11:[+]IDirect3DCryptoSession9 12:[+]...
在纹理和顶点混合的初期,我们可以调用IDirect3DDevice9::SetTextureStageState函数来进行操作。下面是这个函数的声明: HRESULT SetTextureStageState( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD ...
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive 3.4.3 Begin/End Scene 3.5 D3DX几何体 3.6 例程:三角形、立方体、茶壶、D3DXCreate* 3.7 小结 第4章 颜色 4.1 颜色表示 4.2 顶点颜色 4.3 着色 4.4 例程:...
IDirect3DDevice9 *g_pD3DDevice = NULL; // Sky vertex structure, fvf, vertex buffer, and texture typedef struct { float x, y, z, rhw; float u, v; } sSkyVertex; #define SKYFVF (D3DFVF_XYZRHW | D3DFVF...
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive 80 3.4.3 Begin/End Scene 81 3.5 D3DX几何体 81 3.6 例程:三角形、立方体、茶壶、D3DXCreate* 83 3.7 小结 87 第4章 颜色 89 4.1 颜色表示 89 4.2 顶点颜色...
IDirect3DDevice9 pDev 然后Initialization CG(参考initCG函数定义) Step2 1:注册CgFX状态 从固定管线接管纹理状态 根据cgfx文件名创建Effect对象 cgD3D9RegisterStates myCgContext ; CGcontext myCgContext ...
关于某些源代码文件包含的内容的快速概述: 文件描述 主要D3D8入口点Direct3DCreate8定义 IDirect3D8接口的实现,包括设备创建 IDirect3DDevice8接口的实现,包括着色器转换 否则将在d3d8.h中找到所有使用过的D3D8...
2011年2月7日 - 顶点着色器例子——Diffuse Lighting(《龙书》) #include "d3dUtility.h" // // Globals // IDirect3DDevice9* Device = 0; const int Width = 640;
6:[+]IDirect3DDevice9Ex 7:[+]IDirect3DSwapChain9Ex 8:[+]IDirect3D9ExOverlayExtension 9:[+]IDirect3DDevice9Video 10:[+]IDirect3DAuthenticatedChannel9 11:[+]IDirect3DCryptoSession9 12:[+]IDirectInput8 ...
iDirect小站操作简单指导PPT教案.pptx
The IDirect3DDevice9 interface is introduced and an overview of device methods and internal state is given. Finally, a basic framework is given for a 2D application. Chapter 1 begins with an overview...