阅读本书:“使用Direct3D 11进行实用的渲染和计算”,并在线查找定义:https://docs.microsoft.com/zh-cn/windows/uwp/graphics-concepts/shader-resource-view-- srv-
我仍然对ID3D11ShaderResourceView是什么感到困惑。
请记住,我正在学习DirectX 11来创建视频游戏。考虑到这一点 ...
什么是着色器资源视图?在什么情况下,您将使用“着色器资源视图”?最重要的是,如何使用着色器资源视图?
我假设您可以在HLSL代码中使用此资源,但是在书中,我还没有看到有关如何执行此操作以及如何将其用于视频游戏引擎的示例。
谢谢!
在较旧的版本(如Direct3D 9)中,您只有一个接口(如IDirect3DTexture9
,)IDirect3DCubeTexture9
,或IDirect3DVolumeTexture9
同时封装了图像位本身和预期的使用语义。这具有特殊的逻辑,以使其也可以作为渲染目标。
在Direct3D 10中,这分为两个元素:
资源(即,图像比特)等ID3DxxTexture1D
,ID3DxxTexture2D
和ID3DxxTexture3D
使用的语义可以ID3DxxShaderResourceView
是用于在着色器中读取纹理的aID3D10RenderTargetView
或用于呈现为纹理的-。
较新设计的优点是,您可以拥有一个ID3DxxTexture2D
资源,并在使用它进行渲染时具有SRV,而在将其用作渲染纹理时具有RTV。您可以将立方体贴图视为数组大小为6的2D纹理。
您可能会发现MSDN上的旧文档很有帮助。
您应该看一下DirectX Tool Kit教程
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句