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

2019-01-12 18:35

对于其他的两个维度,Direct3D11为我们准备了D3D11_TEXTURE1D_DESC用于1D纹理,D3D11_TEXTURE3D_DESC用于3D纹理。

作为最常见的纹理,二维的

D3D11_TEXTURE2D_DESC声明形式如下:

[cpp] view plaincopyprint?

1. typedef struct D3D11_TEXTURE2D_DESC { 2. 3. UINT Width; 4. 5. UINT Height; 6. 7. UINT MipLevels; 8. 9. UINT ArraySize; 10. 11. DXGI_FORMAT Format; 12. 13. DXGI_SAMPLE_DESC SampleDesc;

14. 15. D3D11_USAGE Usage; 16. 17. UINT BindFlags; 18. 19. UINT CPUAccessFlags; 20. 21. UINT MiscFlags; 22. 23. } D3D11_TEXTURE2D_DESC;

三、DirectX11 2D纹理映射demo的创建

这里,我们先介绍一下这个demo的组成结构: 如图,头文件有Dx11DemoBase.h以及Texture2DDemo.h

源文件有 Dx11DemoBase.cpp,Texture2DDemo.h以及main.cpp

在之前的TriangleDemo的基础上,我们再添加一个叫做TextureDemo的类,以及添加一个叫做colorMap_的D3D11ShaderResourceView类型的

着色器资源视图和一个D3D11SamplerState类型的唤做colorMapSampler_ 的采样状态。 着色资源视图简单的来说是一个用于访问资源的对象。当我们加载纹理到内存中的时候,必须创建一个着色器资源视图来通过着色器获取数据,而这些数据会被绑定到输出程序集当中。着色器资源视图也有其他的作用,比如为DirectCompute提供异步运算时需要的数据,本节我们主要是介绍其在纹理方面的运用。ID3D11Texture2D代表数据的缓存,而着色器资源视图允许我们在着色器中查看这个缓存的各项数据。

采样器声明(sampler state)允许我们访问的纹理采样的状态信息。后面将对其做更多更详细的讲解。

TextureDemo类的头文件代码书写风格如下:

代码段一 TextureDemo.h 对TextureDemo类的轮廓书写

[cpp] view plaincopyprint?

1. #ifndef _TEXTURE_2D_DEMO_H_ 2. #define _TEXTURE_2D_DEMO_H_ 3. 4. #include\ 5. 6. 7. class TextureDemo : public Dx11DemoBase 8. { 9. public: 10. TextureDemo( ); 11. virtual ~TextureDemo( ); 12. 13. bool LoadContent( ); 14. void UnloadContent( ); 15. 16. void Update( float dt ); 17. void Render( ); 18. 19. private:


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

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

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

马上注册会员

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