Gamebryo—RendererDx9

RendererDx9

一、 NiDx9Renderer基础

1. 创建一个Dx9Renderer

在全屏下需要设定屏幕的大小和深度。

不支持多渲染器共存

简单版:

static NiDX9Renderer* Create(unsigned int uiWidth,

unsigned int uiHeight,

unsigned int uiUseFlags,

NiWindowRef kWndDevice,

NiWindowRef kWndFocus)

高级版:

static NiDX9Renderer* Create(unsigned int uiWidth, unsigned int uiHeight,

unsigned int uiUseFlags,

NiWindowRef kWndDevice,

NiWindowRef kWndFocus,

unsigned int uiAdapter = D3DADAPTER_DEFAULT,

DeviceDesc eDesc = DEVDESC_PURE,

FrameBufferFormat eFBFormat = FBFMT_UNKNOWN,

DepthStencilFormat eDSFormat = DSFMT_UNKNOWN,

PresentationInterval ePresentationInterval = PRESENT_INTERVAL_ONE,

SwapEffect eSwapEffect = SWAPEFFECT_DEFAULT,

unsigned int uiFBMode = FBMODE_DEFAULT,

unsigned int uiBackBufferCount = 1,

unsigned int uiRefreshRate = REFRESHRATE_DEFAULT)

缓存:frame Buffer、depth buffer、stencil buffer

DX9的Presentation Interval

DX9 Swap Effect

DX9 Framebuffer Mode

DX9 Monitor Refresh Rate

2. 多Dx9Renderer并存

不支持

3. 多窗口渲染

使用CreateSwapChainRenderTargetGroup,只能在窗口模式下使用。

创建渲染窗口会消耗VRAM

4. 渲染到纹理

5. 关闭Dx9Renderer

所有的纹理和几何资源必须在renderer关闭之前被销毁。几何体(包括屏幕空间的几何体)、rendered textures 、 cube maps

6. 改变显示参数

RecreateStatus Recreate(unsigned int uiWidth,

unsigned int uiHeight,

unsigned int uiUseFlags,

NiWindowRef kWndDevice = 0,

FrameBufferFormat eFBFormat = FBFMT_UNKNOWN, DepthStencilFormat eDSFormat = DSFMT_UNKNOWN, PresentationInterval ePresentationInterval = PRESENT_INTERVAL_ONE, SwapEffect eSwapEffect = SWAPEFFECT_DEFAULT, FramebufferMode eFBMode = FBMODE_DEFAULT,

unsigned int uiBackBufferCount = 1, unsigned int uiRefreshRate = REFRESHRATE_DEFAULT)

7. Dx9的设备描述

NiDX9SystemDesc允许应用程序创建一个参数配置窗口,用于创建一个渲染器。

8. DX9Renderer的线程处理

二、 NiDx9Renderer的特征和局限性

1. DX9中的硬件蒙皮

2. DX9中的抗锯齿(Antialiasing)

NiDX9Renderer支持基于多采样器背面缓冲(multisample backbuffers)的全屏抗锯齿(full-scene antialiasing)。如果使用抗锯齿,此时必须设定多采样帧缓冲区模式(multisampled framebuffer mode-FBMODE_MULTISAMPLES_*)

3. DX9中的光照特征和局限性

目前每一个几何体支持8个顶点硬件光照,超过的将被自动舍弃

4. DX9中的Left-Right交换

5. DX9中的顶点雾

6. 在DX9和GB下使用Direct3D纹理

应用程序可以提供Direct3D纹理,并封装成GB的纹理-NiTexutre(NiDX9Renderer::CreateNiTextureFromD3DTexture)。

7. DX9下的纹理特性和局限性

(1) NiDX9Renderer要求显示设备具有单步处理至少两个纹理(two textures in a single pass)的能力

(2) DX9渲染器支持rendered和source cube mapping

8. DX9下的硬件纹理阶段

9. DX9下的cliped projected textures

10. DX9下的多纹理处理的局限性

DX9 Renderer每个顶点最多支持8个纹理坐标,更多的将被自动舍弃

11. W-Buffering支持

12. DX9下的顶点颜色范围

[0.0, 1.0],

13. DX9下设备重置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值