首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX 11什么是阴影资源视图

DirectX 11什么是阴影资源视图
EN

Stack Overflow用户
提问于 2017-09-29 17:08:30
回答 2查看 6K关注 0票数 4

阅读这本书:“使用Direct3D 11进行实际渲染和计算”,并在网上寻找定义:https://learn.microsoft.com/en-us/windows/uwp/graphics-concepts/shader-resource-view--srv-

我仍然对ID3D11ShaderResourceView是什么感到困惑。

请记住,我正在学习DirectX 11来创建一个电子游戏。考虑到这一点..。

什么是阴影资源视图?在什么情况下,您会使用阴影资源视图?最重要的是,如何使用Shader资源视图?

我假设您可以在HLSL代码中使用这个资源,但在这本书中,我还没有看到如何这样做的示例,以及如何将其用于电子游戏引擎。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-30 01:18:27

在较早的版本(如Direct3D 9 )中,您作为单个接口(如IDirect3DTexture9IDirect3DCubeTexture9IDirect3DVolumeTexture9 )封装了图像位本身和预期的使用语义。这具有特殊的逻辑,使它也能作为呈现目标工作。

在Direct3D 10中,这分为两个元素:

  • 资源(即图像位),如ID3DxxTexture1DID3DxxTexture2DID3DxxTexture3D
  • 用法的语义,它要么是用于读取阴影中的纹理的ID3DxxShaderResourceView,要么是用于呈现纹理的- ID3DxxRenderTargetView。还有一个用于使用ID3D11UnorderedAccessView的DirectCompute。

新设计的优点是,您可以有一个单一的ID3DxxTexture2D资源,并有一个SRV使用它来渲染,当你使用它作为渲染纹理的RTV。您可以将cubemap视为数组大小为6的二维纹理。

您可能会发现关于Microsoft的旧文档很有帮助。

你应该看看DirectX工具包教程

票数 8
EN

Stack Overflow用户

发布于 2017-10-11 09:38:57

所以现实生活中的例子就是阴影--基本上你是从灯光位置填充深度缓冲器,然后从摄像机位置通过几何图形,然后使用深度缓冲区的数据来计算像素是否在阴影中。因此,DirectX中的视图可以转换为“将此资源视为”。在第一部分中,您将使用纹理作为DepthStencilView (“将此纹理视为深度模板”),在下一部分中,您将使用相同的纹理作为对着色器的输入(ShaderResourceView,“将此纹理视为着色资源)。

这种“过渡”在资源同步方面非常重要。在DX11中,这是由驱动程序为您完成的,而在DX12中,您必须处理这个问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46493782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档