我有一个 3D 模型,在渲染时我使用着色器根据一些参数计算顶点颜色(计算密集型任务)。这些参数随时间变化。所以基本上我需要根据当前参数计算顶点颜色,并将其与之前渲染的顶点颜色相加。我将处理具有 5-1000 万个顶点的模型。有人可以帮我解决这个问题的方法。
对不起,不清楚的问题。我面临的问题是如何备份从着色器计算的先前顶点颜色。我不能使用混合,因为对象可以旋转。所以基本上我需要一种机制来保存从着色器计算的顶点颜色信息并在下一次传递中使用它。
我认为转换反馈(DirectX 中的流输出)是您正在寻找的。它在核心 OpenGL 3.0 中可用。这使您能够将在顶点着色器中计算的属性记录到缓冲区对象中,然后可以在后续渲染过程中使用这些对象。
这是一个带有一些起点的相关问题:Transform Feedback 的完整设置。
这篇博文中也有一些信息。