在顶点着色器中指定 3D 渲染目标的目标层? [HLSL]

2024-04-02

在 HLSL/Directx11 中工作时,我发现有两种绑定 3D 渲染目标的方法:要么绑定整个目标,要么在指定图层时绑定它。

如果绑定整个目标,如何在 HLSL 代码中指定应用输出颜色的图层?

我怀疑这需要几何着色器......这是正确的吗?

是否有任何其他方法可以允许在顶点着色器或其他地方完成此操作?


如果您绑定整个体积纹理(或TextureArray),您确实需要使用几何着色器来写入特定切片。

你的 GS 输出结构将如下所示:

struct GSOutput
{
    float4 pos : SV_Position;
    uint slice : SV_RenderTargetArrayIndex;
    //Add anything else you need for your triangle
};

请注意,切片不会进行插值,因此如果您需要发送到多个切片,则需要为每个切片推送一个基元。

第二种情况是您不想使用几何着色器。

使用与前一个相同的参数创建一个 rendertargetview 描述,但对于每个切片,更改这些参数(这是针对 Texture2DArray,但如果您使用 Texture3D,则基本相同):

D3D11_RENDER_TARGET_VIEW_DESC rtvd;

rtvd.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY;
rtvd.Texture2DArray.ArraySize = 1;
rtvd.Texture2DArray.FirstArraySlice = yourslice;

现在您只有切片的渲染目标,因此您可以直接在管道中绑定单个切片。

请注意,只有当您提前(在 CPU 中)知道绘图调用将渲染到哪个切片时,这才有效。您也可以仅针对此绘制调用渲染到单个切片。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在顶点着色器中指定 3D 渲染目标的目标层? [HLSL] 的相关文章

  • 4.HLSL Effect(效果框架)

    4 HLSL Effect xff08 效果框架 xff09 进行到这里 xff0c 读者可能会觉得使用着色器多少有些繁琐 xff0c Effect xff08 效果框架 xff09 被提出以解决这些问题 作为一种方法 xff0c Effe
  • DirectX11 简介+环境配置

    文章目录 前言 获取SDK 安装 项目环境配置 创建项目 链接库 方法一 方法二 前言 DX11是Win7的产物 它是09年发布的 可谓是非常古老 那么为什么我们还要学习呢 这是为了给下一步的DX12做准备 如果你是Win10用户 且安装了
  • OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

    OpenGL坐标变换及其数学原理 两种摄像机交互模型 附源程序 实验平台 win7 VS2010 先上结果截图 文章最后下载程序 解压后直接运行BIN文件夹下的EXE程序 a 鼠标拖拽旋转物体 类似于OGRE中的 OgreBites Cam
  • ‘fxc‘ 不是内部或外部命令,也不是可运行的程序

    编译龙书的Demo出现这个问题 d3d11CodeSet Chapter 6 Drawing in Direct3D Box 1 添加到环境变量 fxc exe在C Program Files x86 Microsoft DirectX S
  • 错误 X3000:着色器文件中存在非法字符

    我粘贴了一行着色器代码 现在我的项目无法工作 我删除了受污染的代码行 我已经按照 VS Notepad 和 Notepad 的建议从头开始多次重写着色器Unity 论坛 我在 Notepad 中使用了十六进制编辑器视图来排除前两个字节不是0
  • 使用 DirectX11 像素着色器在 GPU 中将颜色从 DXGI_FORMAT_B8G8R8A8_UNORM 转换为 NV12

    我正在编写一个代码 用于使用桌面复制捕获桌面 并使用英特尔硬件MFT 将其编码为 h264 编码器仅接受 NV12 格式作为输入 我有一个 DXGI FORMAT B8G8R8A8 UNORM 到 NV12 转换器 https github
  • JavaFX EXCEPTION_ACCESS_VIOLATION

    我对 JavaFX 桌面应用程序有疑问 特别是 3D 渲染功能 每次我尝试构建和启动 JavaFX 应用程序时 JVM 都会崩溃 并且会收到类似于以下错误的错误 A fatal error has been detected by the
  • 如何在C#项目中使用VS2012的自动HLSL编译?

    http blogs msdn com b chuckw archive 2012 05 07 hlsl fxc and d3dcompile aspx http blogs msdn com b chuckw archive 2012 0
  • Unity Shader - 如何有效地重新着色特定坐标?

    首先 请允许我解释一下我所得到的内容 然后我将讨论接下来我想要弄清楚的内容 我有什么 我有一个带纹理的自定义网格 其一些边缘与 Unity 中的整数世界坐标完全对齐 在网格中 我添加了自己的粗略但有效的自定义表面着色器 如下所示 Shade
  • DirectX11 使用 PNG CreateWICTextureFromMemory

    我目前已经使用 CreateWICTextureFromFile 加载纹理 但是我想要对其进行更多控制 并且我想将图像以字节形式存储在资源加载器中 下面只是两组测试代码 它们返回两个单独的结果 我正在寻找对可能的解决方案的任何见解 ID3D
  • 在 directx 11 中渲染 h264 视频帧

    我是新来的DirectX 我正在尝试编写一个自定义 IP 摄像机视频播放器 并且我正在使用它DirectX11使用 Wpf Gui 作为前端渲染解码图像 I am a 时间 2019 03 17 标签 c developer并使用了托管的d
  • 在 directx 11 中一次渲染到多个纹理

    我正在尝试使用 C directx 11 SDK 一次渲染到两个纹理 我希望一个纹理包含结果图像的每个像素的颜色 渲染 3D 场景时我通常在屏幕上看到的颜色 另一个纹理包含每个像素的法线和深度 3 个浮点表示法线 1 个浮点表示法线 为深度
  • 错误 LNK2019:函数 ___tmainCRTStartup 中引用了无法解析的外部符号 _wWinMain@16

    我开始使用 DirectX 11 并收到以下编译错误 错误 1 错误 LNK2019 无法解析的外部符号函数 中引用了 wWinMain 16 tmainCRT启动 错误 2 error LNK1120 1 unresolved exter
  • DirectX 11 叠加

    我正在为游戏编写 DirectX 11 覆盖 创建纹理非常简单 而且我对 C C 有很好的了解 我遇到的问题是在我的测试窗口中我可以打印纹理 但是一旦我改变相机角度 纹理就会随之移动 这就是大多数人想要的 我想知道的是如何以 2D 打印某些
  • 我们可以在透明窗口上应用着色器吗

    I am looking to apply a particular shader to a transparent window for example on a live desktop I want to create a trans
  • 了解 dFdX 和 dFdY 的基础知识

    我读过很多关于行为的描述dFdX n and dFdY n 并且相信我仍然能够掌握学校的偏导数 我不明白的是 在最简单的示例中 n 来自哪里 读取glsl内置函数dFdx n and dFdy n 除了数学之外 没有任何背景 我会将它们解释
  • 在顶点着色器中指定 3D 渲染目标的目标层? [HLSL]

    在 HLSL Directx11 中工作时 我发现有两种绑定 3D 渲染目标的方法 要么绑定整个目标 要么在指定图层时绑定它 如果绑定整个目标 如何在 HLSL 代码中指定应用输出颜色的图层 我怀疑这需要几何着色器 这是正确的吗 是否有任何
  • DirectX 11 ClearRenderTargetView 恢复透明缓冲区?

    我正在尝试创建一个使用 directx 进行绘制的窗口opaque上面的内容透明的视图 即桌面显示出来 使用 DirectX11 我尝试执行以下操作 但它并没有使背景透明 事实上 我输入的任何不透明度值都会给出完全相同的结果 我在做什么 f
  • 使用 SharpDX 和 EasyHook 捕获全屏 DX11 程序的屏幕截图

    在有人提到它之前 IS提到了this http www codeproject com Articles 274461 Very fast screen capture using DirectX in Csharp链接以了解如何将后台缓冲
  • Reflection.Emit 中的短格式操作码错误

    我正在制作一种与以下非常相似的小语言hlsl但仅支持像素着色器 该语言使用reflection emit构建实现相同功能的 NET 程序集 我目前正在测试分支指令的实现if在我的一个单元测试中 一个大的if与内if elses 失败并显示以

随机推荐

  • JS中如何获取对象数组的特定属性?

    我有以下代码和测试数据 const getNestedObject nestedObj pathArr gt return pathArr reduce obj key gt return obj obj key undefined obj
  • Visit_Psych_Nodes_Alias:未知别名:默认(Psych::BadAlias)

    我从 ruby 2 7 1 更新到 3 1 1 然后删除 Gemfile lock 并运行bundle update 它位于开发分支上 所以如果这是一个坏主意我可以扔掉它 我只是想看看它是否有效 bundle update成功了 但是当我启
  • knockout.js 将表单加载到 viewModel 中

    我目前正在成功使用 knockout js 来处理应用程序中的所有数据绑定 但是 在每个页面加载时 在我的 document ready 中 我正在执行初始异步数据加载 如下所示 document ready getData 但是 是否可以
  • pandas 附加到具有不同名称的列

    如何附加2个具有不同列名的不同数据框 a pd DataFrame id 0 1 2 3 countryid 22 36 21 64 famousfruit banana apple mango orange famousanimal mo
  • 有什么方法可以让用户上传的 SVG 图像免受代码注入等影响?

    我想在网站上显示用户上传的 SVG 图像 但它们很容易被利用 https security stackexchange com questions 11384 exploits or other security risks with sv
  • 使用 DOM 样式通过 Javascript 获取或更改 CSS 类属性

    我的目标是更改表中列的背景颜色 而无需按 ID 或名称单独寻址每个数据条目 我知道有几种方法可以做到这一点 确切地说我已经尝试了 3 种 但每种方法都遇到了问题 为了简单明了起见 在这个问题中 我问如何使用元素 样式 背景颜色 http w
  • 在 JavaFX HTMLeditor 中设置本地图像

    我正在寻找一种使用 JavaFX HTMLEditor 的 setHtmlText 来添加local图像 我可以添加远程图像没有问题 HTMLEditor editor new HTMLEditor editor setHtmlText i
  • 使用充气城堡正确创建带有中间证书的新证书

    所以我的问题如下 基本上我想使用 bouncy castle jdk16 版本 1 46 创建一个证书链 一般来说 我对充气城堡和 java security 相当陌生 所以如果我的方法可能完全错误 但无论如何 这就是我所做的 到目前为止
  • 当一张表小得多时,以编程方式连接表还是使用 SQL Join 语句更快?

    当一张表小得多时 以编程方式连接表还是使用 SQL Join 语句更快 更具体地说 如何从hashmap
  • 如何在 Dart 中构建单例?

    单例模式确保只创建一个类的一个实例 我如何在 Dart 中构建它 感谢达特工厂建造者 https www dartlang org guides language language tour factory constructors 构建单
  • Flutter本地数据库存储

    目前我正在创建一个用户注册标准 它有三个注册页面 对于每次完成的用户注册页面 我想将其存储在本地存储中 如果用户在第 3 级注册之前关闭应用程序 我想显示已完成页面的输入详细信息 而无需调用 api 那么 这是在 flutter 中本地存储
  • 中断 (n)curses 获取传入信号

    我的一个程序使用 ncurses 来绘制一个小 tui 我的目标之一是使其能够移植到其他诅咒实现中 这意味着我想捕获终端仿真器在调整大小操作时发出的 SIGWINCH 并更新我的 tui 以遵循更改后的几何形状 而不依赖于 ncurses
  • 如何使用 C# 将其他系列添加到 Excel 图表

    I am trying to add an additional data series to the chart this shows CPU threshold I can get the range and create the gr
  • SSRS字体在哪里安装?

    简单的问题我找不到简单的答案 我正在使用报告服务器生成报告 并且报告使用自定义字体 我的问题是我需要在所有将运行报告的计算机上安装自定义字体还是仅在服务器上安装自定义字体 该公司使用SSRS 2008 只有在报告服务器上安装字体然后启用字体
  • 使用jquery保存元素的所有css属性

    我基本上试图将元素的所有当前 css 属性保存在本地 var array 中 我试过 el css and el css 没有运气 有什么快速的技巧吗 demo http so lucafilosofi com save all css p
  • 尝试访问 ViewSet 创建定义中的 request.data 时出现 KeyError 'id'

    我最近从 drf 2 4 升级到 v3 并一直在尝试覆盖def Create在我的一个视图集中 但是 当尝试访问我保存到序列化器变量的 request data 时 我会收到错误 KeyError at api appointments i
  • Ruport - “”的未定义方法“each”:String

    我正在遵循本教程中的第一个示例 http ruportbook com printable documents html http ruportbook com printable documents html 但我一直得到 String的
  • 是否可以控制从 matplotlib 颜色图中检索哪些颜色?

    我想将图中的颜色分配给由整数表示的标称数据 我想从定性颜色图中绘制颜色 特别是我想从 Set3 中绘制五种颜色 问题是我想使用前五种颜色 但颜色映射器对我的数据进行标准化 五个分类值的范围从 1 到 5 并从 12 种颜色中选择第 1 4
  • 如何使用 hooks 覆盖 Material ui 样式

    我尝试使用类名使用 React Hooks 和 Material Ui 创建剪切到页面顶部的 AppBar 并将鼠标悬停在其他抽屉上 全部如以下所述 https material ui com demos drawers clipped u
  • 在顶点着色器中指定 3D 渲染目标的目标层? [HLSL]

    在 HLSL Directx11 中工作时 我发现有两种绑定 3D 渲染目标的方法 要么绑定整个目标 要么在指定图层时绑定它 如果绑定整个目标 如何在 HLSL 代码中指定应用输出颜色的图层 我怀疑这需要几何着色器 这是正确的吗 是否有任何