如果没有反馈,如果片段着色器对它们没用,优化器可能会从最后一个顶点处理着色器中删除输出。
转换反馈捕获这些输出。由于这个原因我有可能无法捕获所有输出吗?
或者用不同的方式表达,我是否必须提供一个片段着色器,即使我将使用该程序专门用于填充反馈缓冲区,也会对这些值执行某些操作?
答案 0 :(得分:2)
要捕获的输出变量列表必须在着色器本身中使用布局参数指定,或者在程序与glTransformFeedbackVaryings
链接之前指定。 GPU可以使用捕获的变量列表作为变量的黑名单来优化。
所以不,如果你正确设置了变换反馈,优化器就不会破坏你的着色器。