OpenGL中的交叉渐变场景

时间:2009-08-20 14:03:27

标签: c++ opengl graphics rendering alphablending

我想在OpenGL中渲染两个场景,然后从一个场景到第二个场景进行视觉交叉淡入淡出。任何人都可以建议学习如何做到这一点的起点吗?

3 个答案:

答案 0 :(得分:9)

您需要学习的最重要的事情是如何渲染到纹理。

当你在2个纹理中同时拥有这两个场景时,它们之间的交叉淡入淡出真的很简单。事实上,做所有有趣的淡入淡出效果很简单:)

答案 1 :(得分:1)

这是sample code of a cross fade。这似乎与Goz有两点不同,因为这两个场景是动态的。该示例使用模板缓冲区进行交叉淡入淡出。

答案 2 :(得分:0)

我可以想到另一种交叉淡化场景的方法,但这取决于场景渲染器的复杂程度。如果它很简单,您可以在渲染执行所需混合效果的第二个场景之前启动着色器程序。我会尝试glBlend(GL_ALPHA,GL_ONE_MINUS_SRC_ALPHA)并在着色器中处理片段的alpha值。

FBO是btw。已有多年可用 - 扩展与否。如果您的渲染器很复杂并且使用着色器程序,您也可以将这两个场景渲染到FBO并混合它们。使用FBO是一种非常常见的技术,可以轻松应用各种效果渲染。