DirectX11 创建渲染目标视图
来源:互联网 发布:b站mac 编辑:程序博客网 时间:2024/05/20 10:13
创建渲染目标视图
什么是渲染目标视图?为什么要创建渲染目标视图?
什么是渲染目标视图?首先从渲染目标说起。前面我们说了在显示前台缓冲区的时候,DirectX在后台渲染后台缓冲区,后台缓冲区就是渲染目标。而渲染目标视图就是在缓冲区的颜色贴图基础上来渲染的。(因为很多时候缓冲区的颜色贴图还没有完成,我们要在其基础上继续渲染)
如何创建渲染目标视图?
渲染目标视图通过调用设备的CreateRenderTargetView函数来创建,该函数有三个参数:
[in]第一个参数,是我们从后备缓冲区获得的2D视图贴图,我们在这个贴图的基础上继续渲染。
[in]第二个参数,是渲染视图描述。设置为NULL将给我们物体表面的Mip映射等级设为0。
[out]第三个参数,保存创建的渲染目标视图。如何从后备缓冲区获得2D贴图?
交换链中的主缓存和后备缓存其实就是一种颜色贴图,可以通过交换链的GetBuffer来获得缓存(贴图)。GetBuffer有三个参数:
[in]第一个参数,缓存索引(0给出第一个缓存,就是交换链此时的后备缓存)。
[in]第二个参数,尝试操纵的接口类型,2D贴图类型就是ID3D11Texture2D。这里要用到__uuidof来查找跟ID3D11Texture2D绑定全局唯一标识符(GUID)。
[out]第三个参数,保存获得的缓存(2D贴图)。创建完渲染目标视图,如何绑定到设备?
我们需要调用设备的OMSetRenderTargets函数例将渲染目标绑定到设备上,该函数有三个参数:
[in]第一个参数:要绑定的渲染目标视图总数量。
[in]第二个参数:渲染目标视图数组或一个渲染目标视图的指针。
[in]第三个参数:深度模板缓冲视图。设为NULL为不绑定。
下面给出一个完整的渲染目标视图的创建和绑定示例代码:
ID3D11RenderTargetView* backBufferTarget_; ID3D11Texture2D* backBufferTexture; result = swapChain_->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&backBufferTexture ); if( FAILED( result ) ) { DXTRACE_MSG( "Failed to get the swap chain back buffer!" ); return false; } result = d3dDevice_->CreateRenderTargetView( backBufferTexture, 0, &backBufferTarget_ ); if( backBufferTexture ) backBufferTexture->Release( ); if( FAILED( result ) ) { DXTRACE_MSG( "Failed to create the render target view!" ); return false; } d3dContext_->OMSetRenderTargets( 1, &backBufferTarget_, 0 );
- DirectX11 创建渲染目标视图
- DirectX11 创建视图-投影矩阵
- DirectX11 渲染状态
- DirectX11 中的渲染路径
- Directx11渲染框架重构
- DirectX11笔记(四)--渲染管线
- DirectX11 创建顶点缓存
- DirectX11 创建输入布局
- DirectX11 创建混合状态
- DirectX11创建dx11项目
- DirectX11 着色器资源视图
- 【DirectX11】第二篇 DirectX11渲染管线(2016.05.09更新)
- 视图渲染
- DirectX11实现简单的水面模拟渲染
- DirectX11之3D渲染管线
- DirectX11学习笔记(4) 文本的渲染
- DirectX11笔记(十二)--Direct3D渲染8--EFFECTS
- DirectX11 创建和启用纹理
- ios程序员6级考试
- C++多态解释与例子
- 设计模式,理解模式,代码模式
- ios之把UIColor类型得到一张纯色的UIImage类型的图片
- 打开Dreamweaver的时候出现错误
- DirectX11 创建渲染目标视图
- ISP图像质量调节介绍
- 黑马程序员-OC-继承
- python assert
- android 4.3之前的版本 播放hls获取不到总时长的原因
- Map insert的三种用法
- C语言位运算符及作用:与、或、异或、取反、左移和右移
- Baidu地图之removeEventListener失效问题
- VS2010 语法错误: 标识符“__RPC__out_xcount_part” 最全解决方法