Visual - C++游戏开发笔记全集 - 图文(2)

2019-01-12 18:35

二、基础知识讲解

1.纹理的加载

在Direct3D11中,我们通常使用

D3DX11CreateTextureFromFile函数用于从硬盘文件中加载纹理。这个函数支持非常丰富的图像格式,比如BMP,PNG,以及DDS。

D3DX11CreateTextureFromFile函数拥有六个变量,具有以下的函数原型:

[cpp] view plaincopyprint?

1. HRESULT D3DX11CreateTextureFromFile(

2. 3. ID3D11Device* pDevice, 4. 5. LPCTSTR pSrcFile, 6. 7. D3DX11_IMAGE_LOAD_INFO* pLoadInfo, 8. 9. ID3DX11ThreadPump* pPump, 10. 11. ID3D11Resource** ppTexture, 12. 13. HRESULT* pHResult 14. 15. );

D3DX11CreateTextureFromFile函数的第一个的参数为ID3D11Device类型的指针变量。

第二个参数pSrcFile为被加载文件的文件路径和文件名。

第三个参数pLoadInfo为一个图形信息结构体。它为一个可选的参数,并允许我们通过指定CPU访问的标识、内部格式、宽度和高度来控制图像纹理的加载方式。

第四个参数pPump用于多线程加载纹理时的异步处理。

第五个参数ppTexture用是纹理对象被调用时这个函数创建出的地址。如果

D3DX11CreateTextureFromFile函数调用成功,这个变量就会拥有一个现成的纹理供使用。 最后一个参数pHResult是指向线程返回值的指针。

若此线程的参数不为空,pHResult必须为一个有效的内存地址。在Direct3D中我们能够使用很多函数载入各种琳琅满目的图

像文件格式,下面我们对他们进行一个详细的列举:

Windows Bitmap (BMP)

Joint Photographic Expert Group—i.e., JPEG (JPG)

Portable Network Graphics (PNG) Tagged Image Format (TIFF) Graphics Interchange Format (GIF) DirectDraw Surface (DDS) Windows Media Player (WMP)

2.纹理接口

纹理接口通常用于管理一个特定类型的图像数据。目前Direct3D纹理接口主要有三种类型,他们分别是:

ID3D11Texture1D——用于1D或者条形的纹理 ID3D11Texture2D——用于2D数据,这也是最常用的纹理资源类型、

ID3D11Texture3D——用于表示3D数据的纹理资源类型

上述3种纹理资源类型都包含一个或者多个子资源。

而游戏开发中使用的大多数纹理类型基本上都为二维的,他们都需要转化为ID3D11Texture2D型资源后再使用。而这些子资源代表了纹理中不同的 MIP等级。

譬如Adobe’s Photoshop这类的图像编辑器是创造2D纹理的最得力帮手。

3. 纹理细节

在游戏开发的过程中,常常我们需要从加载的纹理中得到一些特定的信息,比如说维度或者像素格式。这时候隶属于ID3D11Texture2D中的GetDesc函数就可以派上用场了。这个函数的功能是为我们填充D3D11_TEXTURE2D_DESC结构体中的各种细节,从而通过这个结构体作为载体,有关的各类数据就一目了然了。

D3D11_TEXTURE2D_DESC是专用于2D纹理的纹理描述结构体家族中的一员。


Visual - C++游戏开发笔记全集 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:信息化建设项目绩效评价报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: