【DirectX】 纹理可以绑定的地方

昨日遭遇一个问题:尝试将某个纹理的资源视图绑定到计算着色器(CS)上,但始终无法绑定成功。经排查发现,该纹理的渲染目标视图已被绑定到渲染目标上。

Direct3D 11 中,一块纹理资源(ID3D11Texture*)通过 视图(View)对象 绑定到图形管线的不同位置。以下是所有纹理可能被绑定的“地方”或“阶段”:


✅ 一、纹理资源可以绑定的位置汇总

绑定位置 / 管线阶段 使用的视图类型 说明
✅ 着色器资源(SRV)Shader Resource View ID3D11ShaderResourceView 最常见,用于读取纹理内容(采样)
✅ 无序访问(UAV)Unordered Access View ID3D11UnorderedAccessView 通常用于计算着色器(CS)写入纹理数据
✅ 渲染目标(RTV)Render Target View ID3D11RenderTargetView 作为输出目标进行写入(如 OMSetRenderTargets
✅ 深度模板(DSV)Depth Stencil View ID3D11DepthStencilView 作为深度缓冲绑定进行深度/模板测试

✳️ 各视图类型示意图

Texture
 ├── SRV → 绑定到 VS/PS/GS/HS/DS/CS 的 SRV 槽位(读取)
 ├── UAV → 绑定到 CS(或 DX11.1 的 OM UAV)用于写入
 ├── RTV → 绑定为输出颜色缓冲
 └── DSV → 绑定为深度/模板缓冲

✅ 二、着色器各阶段绑定纹理(通过 SRV)

你可以通过 context->*SetShaderResources 将纹理绑定到:

Shader 阶段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值