着色器中的持久数据 - GLSL

基拉蜜蜂

是否可以在同一个着色器中拥有持久数据?类似于制服的东西,除了着色器本身可以设置它。

我想要做的是在我的顶点流中嵌入一个顶点,它将充当“状态更改”并影响下游所有顶点的操作。IE 顶点着色器说“啊,我击中了这个顶点”并打开或关闭布尔值......稍后顶点可以检查该布尔值。它不需要在着色器之间工作,它只需要在单个顶点泵期间工作。

这可能吗?使用 GLSL。

尼科尔球

在我的顶点流中嵌入一个顶点,它将充当“状态更改”并影响下游所有顶点的操作。

那是不可能的。相对于该阶段中的其他调用(和绘图命令),特定着色器阶段的调用以很大程度上未定义的顺序执行。无论读取或写入内存的能力如何,您都无法确保在“上游”调用写入该内存之前不会执行“下游”调用。

如果您想做类似的事情,您需要将它们放入单独的绘图命令中,并在此类绘图之间发出适当的内存屏障(以使此类写入对以后的命令可见)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章