摘要:General Performance Tips尽量少用Clear : 尽量在原有的上面画。尽量少变换状态。尽量用小的纹理尽量用front->back顺序画screen尽量用triangle而不是lists或fanarrange strips to reuse triangle vertices sooner, rather than later.尽量少用性能需求高的效果. 将其降级使用。经常 test 你应用程序的性能。尽量少交换vertex buffer尽量多用static vertex buffers尽量用一个大的static vertex buffer有不同的FVF为一个对象。而
阅读全文
摘要:纹理有0~7层,D3DSAMP_MAGFILTER | D3DSAMP_MINFILTER(放大器缩小器),D3DTEXF_POINT | D3DTEXF_LINEAR | D3DTEXF_ANIFOTROPIC .最近点采样速度快, 效果差.绘制 : 与浮点值, 最接近的整数值, 的纹理颜色值.情况 : 纹理大小 和 图元大小 接近.线性纹理过滤应用最广, 质量好, 速度快.绘制 : 与浮点值, 最接近的整数值, 的上下左右4点加权平均纹理颜色值.各项异性纹理过滤三维物体与投影面不平行->投影拉长扭曲->各项异性绘制 : 各项异性的方法绘制SetSamplerState(0, D
阅读全文
摘要:D3DRS_SPECULARENABLE开启镜面光.镜面颜色 在 纹理计算后, 透明计算前,进行计算。纹理计算 -> 镜面颜色计算 -> 透明 计算
阅读全文
摘要:部分D3D函数,将 几何计算 推送到 几何管线。他将 模型和视点 转换到世界坐标。
阅读全文
摘要:createloadcopyuse resources这节给出简明的介绍 使用resources的 步骤 方法。IDirect3DIndexBuffer9 IDirect3DVertexBuffer9inherit fromIDirect3DResource9IDirect3DCubeTexture9 IDirect3DTexture9, IDirect3DVolumeTexture9inherit from IDirect3DBaseTexture9Resource Properties (Direct3D 9)资源属性所有资源都有以下属性:使用方式。 例如:作为纹理 或 渲染目标格式。 例
阅读全文
摘要:最基础的3D实体, 是3D坐标系统里的点, 以及点链表。3D原语为多边形. 封闭的3D图形定义至少有3个点。最基础的多边形, 是三角形, 微软用三角形组成其他多边形, 因为三个顶点是共面的, 而非共面多边形效率很低.你可以用三角形, 组成复杂的多边形, 或网格图.以下展示了一个 正方体, 你可以另加材质和纹理.图略你可以用三角形原语 创造出 很顺滑的曲线, 你可以使用高氏阴影.图略D3D设备原语列表:Point ListsLine ListsLine StripsTriangle ListsTriangle StripsTriangle Fans (Direct3D 9)从IDirect3DD
阅读全文
摘要:对于定点的处理方式, 在CreateDevice时,选定, 并且只能选1种:D3DCREATE_SOFTWARE_VERTEXPROCESSINGD3DCREATE_HARDWARE_VERTEXPROCESSINGD3DCREATE_MIXED_VERTEXPROCESSINGD3DCAPS9 决定 硬件处理定点能力。D3DVTXPCAPS决定 软件处理定点能力。通常, 应用程序 应该使用HAL设备处理。软件处理只提供有限的顶点处理能力,但包括全部的 光照, 着色。当使用HAL设备创建的Device时, 你可以随时切换 硬件 和 软件 顶点处理模式。(只有这种设备类型 同时支持软硬件顶点处理
阅读全文
摘要:D3D device可以是 operational状态 或 lost状态 。operational状态 就是 可正常渲染状态。lost状态 由一些事件触发, 转换过去, 如全屏模式下 失去焦点, 会使得渲染无效。Present时返回D3DERR_DEVICELOST错误。一些情况会导致 设备失效 : 典型的 , 1. ALT+TAB 或 系统对话框被初始化。 2. 电源管理事件 触发 3. 任何Reset失败都会导致device丢失。所有派生自 IUnknown的函数, 都保证在device失效后 仍然工作. 当device失效后, 每个函数会有三种行为:1. D3DERR_DEVICEL..
阅读全文
摘要:应用程序可以 查询 所有支持D3D的 设备 枚举 并 选择 一个使用。
阅读全文
摘要:D3D应用程序 有两种不同 运行模式.全屏 和 非全屏.全屏调试 需要一个远程的调试, 使用DirectX Control Panel Tool来使多监视器debug开启.
阅读全文
摘要:所有devices创建后 关联到一个 D3D对象上, 他们共享一份物理资源。如果你创建多个渲染设备, 从一个D3D对象上, 极端的性能问题可能会产生, 因为他们同用了一个硬件。略......代码........注意 : create, release, reset, 应该在同一个线程中调用.
阅读全文
摘要:HAL Device主要的设备类型。支持 硬件加速 和 (硬件 + 软件)顶点处理。应用程序 不会直接进入图像适配器. 而是通过D3D来进行图形加速器使用。如果你的电脑支持hal, 它可以使用hal来获得最好的图形性能。CreateDevice使用D3DDEVTYPE_HAL参数 创建device.Reference DeviceD3D支持一种附加的设备类型, 叫ref.这种设备用来调试. 并且只在安装了DirectX SDK的机器上才能成功.因为这种设备 更注重 精度 而非 速度, 所以得到的程序不会很fast.ref设备 会在任何可能的时候 使用CPU instructions, 但不是为
阅读全文
摘要:WindowsXP display driver model(XPDM) or Windows Vista display driver model(WDDM). 依赖于操作系统安装。这两个驱动下, D3D API有些不同。安全桌面在安全桌面时,HAL不能使用。-------------------------------------------------------------------------------------| XPDM会丢失所有devic. || D3D9Ex 和 Direct3D 10 APIs 会成功创建de...
阅读全文
摘要:Direct3D Graphics Pipeline 内部处理流程 逻辑Direct3D System Integration应用程序和图像硬件 逻辑
阅读全文
摘要:Getting Started (Direct3D 9)ArchitectureDevicesResourcesCoordinate Systems and GeometryTransformsViewports and ClippingLights and MaterialsRenderingSurfacesTexturesD3DXX Files (Legacy)Coordinate Systems and Geometry (Direct3D 9)1, 2, 左(积极)右(消极)手坐标系 : x, y 都是固定的, y上正, x右正.z轴左右手判定 : 左右手, 4指顺x轴掏, 大拇指方向
阅读全文