gpt4 book ai didi

c++ - 我可以在已编译的 D3D 着色器中更改绑定(bind)点吗?

转载 作者:太空狗 更新时间:2023-10-29 20:55:07 26 4
gpt4 key购买 nike

我有一个 HLSL 着色器,它定义了一些资源,比如常量缓冲区:

cbuffer MyCB : register(b0);

如果我编译我的着色器,我将能够通过反射 API 查询寄存器。但是是否有可能以类似的方式更改已编译着色器 blob 中的寄存器(例如,更改为 b3),您可以将绑定(bind)点分配给已编译 OpenGL 程序中的资源?

最佳答案

在已编译的着色器中,没有 API 可以在运行时更改着色器绑定(bind)。

如果您经历了很多困难,您或许可以通过 dynamic shader linking 实现这一目标在 Shader Model 5.0 中,虽然这需要大量工作而且并不值得,但如果有一个非常简单的替代方案 - 只需使用您想要的绑定(bind)创建一个新的已编译着色器。

关于c++ - 我可以在已编译的 D3D 着色器中更改绑定(bind)点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36849682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com