我有一个3D模型,在渲染时我使用着色器来计算顶点颜色(计算密集型任务),基于一些参数。这些参数随时间变化。所以基本上我需要根据当前参数计算顶点颜色,并将其与先前渲染的顶点颜色相加。 我将处理具有5-10百万个顶点的模型。有人可以帮我解决这个问题。
对于不明确的问题,我们深表歉意。 我面临的问题是如何备份从着色器计算的前一个顶点颜色。 我不能使用混合,因为对象可以旋转。所以基本上我需要一种机制来保存从着色器计算出的顶点颜色信息,并在下一次传递中使用它。
答案 0 :(得分:2)
我认为Transform Feedback(DirectX中的Stream Out)正是您所寻找的。它在核心OpenGL 3.0中可用。这使您可以将在顶点着色器中计算的属性记录到缓冲区对象中,然后可以在后续渲染过程中使用这些对象。
以下是一个相关问题,其中包含一些起点:Full setup of Transform Feedback。
this博文中也有一些信息。