是否可以在同一个着色器中拥有持久数据?类似于制服的东西,除了着色器本身可以设置它。
我想要做的是在我的顶点流中嵌入一个顶点,它将充当“状态更改”并影响下游所有顶点的操作。IE 顶点着色器说“啊,我击中了这个顶点”并打开或关闭布尔值......稍后顶点可以检查该布尔值。它不需要在着色器之间工作,它只需要在单个顶点泵期间工作。
这可能吗?使用 GLSL。
在我的顶点流中嵌入一个顶点,它将充当“状态更改”并影响下游所有顶点的操作。
那是不可能的。相对于该阶段中的其他调用(和绘图命令),特定着色器阶段的调用以很大程度上未定义的顺序执行。无论读取或写入内存的能力如何,您都无法确保在“上游”调用写入该内存之前不会执行“下游”调用。
如果您想做类似的事情,您需要将它们放入单独的绘图命令中,并在此类绘图之间发出适当的内存屏障(以使此类写入对以后的命令可见)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句