结合dx文档解析 PipesGS 的实现原理。深入理解 GS 及 StreamOut 等dx 基础概念。
1、ID3D10Buffer Interface:
该接口用来存取 buffer resource (都是无结构的内存)。buffer 一般用来存储顶点和索引数据。
主要接口:
GetDesc ,获取buffer描述信息;
Map,获取buffer数据的指针;
Unmap,使得通过Map获取的指针无效;
三种类型的buffer可以被创建,顶点buffer,索引buffer,shader-constant buffer。创建这些buffer资源,需要调用接口
ID3D10Device::CreateBuffer。
一个buffer在被访问之前要绑定到管线上。要绑定到 input-assembler stage 上,通过调用 IASetVertexBuffers 和 IASetIndexBuffer。要绑定到 Stream-Output stage 上,通过调用 SOSetTargets。
buffer 可以被同时绑定到多个管线状态上,供读取。buffer 可以被绑定到一个单独的管线状态上被写入。然而相同的buffer不能同时
读取和写入。
2、ID3D10ShaderResourceView Interface:
该接口指定一个shader在渲染期间可以访问的 subresources。shader resoureces 包括 constant buffer, texture buffer, texture , sampler。
主要接口:
ID3D10ShaderResourceView::GetDesc。
当绑定资源到 shader stage 时就需要创建 shader-resource-view。绑定发生在下面函数调用时:
GSSetShaderResources、VSSetShaderResources、PSSetShaderResources。
本文详细介绍了DX10中ID3D10Buffer接口的使用,包括如何存储和访问buffer资源,以及在管线中的绑定过程。此外,还探讨了ID3D10ShaderResourceView接口,它是shader访问资源的方式,并解释了shader资源的类型和绑定方式。
634

被折叠的 条评论
为什么被折叠?



