DX笔记

DX笔记

1、D3DXMatrixPerspectiveFovLH()
DirectX中投影变换D3DXMatrixPerspectiveFovLH()其实产生的变换矩阵不是将3D物体转换为2D平面画面的变换。实际上是把3D世界的物体变换到(1,1,0) (-1,1,0) (-1,-1,0) (1,-1,0) (1,1,1) (-1,1,1) (-1,-1,1) (1,-1,1)这个小盒子中。在Jim Adams 的著作<Role playing games with DriectX 8.0>和Frank Luna 的著作中<Introduction to 3D Game Programming with DirectX9.0>都把这个变换矩阵讲成从3D到2D的变换。实际上在DirectX中3D到2D的变换是由SDK自己完成的。而我们要做的是把3D世界变换到上面那个小盒子中。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/normallife/archive/2008/12/24/3597214.aspx

2、LPDIRECT3DSURFACE9
多重贴图其实就是先按照基本帖图方法为模型指定帖图,
然后读入第二个帖图调用D3DXLoadSurfaceFromSurface(...)把第二个的部分贴到第一上.
只是D3DXLoadSurfaceFromSurface()函数不能直接操作已经读入帖图文件定向到设备上的纹理对象

Surfaces是什么:

   通俗的讲surfaces就是一个二维的矩形平面。在DX9中,与其对应的com接口为IDirect3DSurface9,LPDIRECT3DSURFACE9。

Surfaces的作用:

   作为一个矩形平面,surfaces用来在屏幕上显示平面图象,即从文件中读取图象数据呈现给用户

IDirect3DSurface9的使用一般过程:

   声明: LPDIRECT3DSURFACE9

   创建: CreateOffscreenPlainSurface(…)

   获取图象信息: D3DXGetImageInfoFromFile(…)

   装载到surfaces中: D3DXLoadSurfaceFromFile(…)

   获取back buffer地址: GetBackBuffer(…)

   显示: UpdateSurface(…)

   释放内存 Release()

3、GetRenderTarget()
将对象渲染到指定目标上

4、GetDepthStencilSurface

以下示例代码显示了如何使用IDirect3DDevice9::GetDepthStencilSurface方法取得设备拥有的深度缓存。

LPDIRECT3DSURFACE9 pZBuffer;

5、 g_pEffect->CommitChanges()

对用通道中的状态设置,通过CommitChanges()更新变换,

6、

   

m_d3dDevice->GetDepthStencilSurface( &pZBuffer );





 

你可能感兴趣的:(DX笔记)