OpenGL与非OpenGL图纸一起使用?

时间:2014-05-13 21:21:12

标签: java opengl

使用OpenGL渲染的图形是否可以处理不使用OpenGL渲染的图形?

我开始学习OpenGL,但是在实际编写OpenGL中的所有内容时我仍然很害羞,我觉得用JPanel或Canvas绘制它们会更舒服。我假设它不会导致代码明智的问题,但同时显示所有可能会导致问题?还是我坚持一个或另一个?

2 个答案:

答案 0 :(得分:2)

将OpenGL图形与另一个非OpenGL图像集成或渲染归结为合成图像。您可以拍摄2D图像并将其作为纹理加载到OpenGL中,这样您就可以使用该纹理在OpenGL中绘制表面,或者按照您的问题建议绘制背景。或者,您可以在OpenGL中使用framebuffers将OpenGL场景渲染到纹理,然后可以将其转换为2D位图并与其他图像组合。

当然,这种方法存在局限性。将OpenGL场景移动到2D图像后,通常会丢失所有深度(如果您想这样做,可以在图像中的其他通道中保留深度,但这会涉及额外的工作)。

此外,由于您可能希望一张图像不是简单地覆盖另一张图像,因此您必须在其中一张图像中包含一个Alpha(透明度)通道,以便在合并它们时,被绘制的天堂将最终显示出潜在的形象。

但是,我建议您尽一切努力找到一个满足您所有需求的渲染API。从长远来看,组合两个API的渲染输出所做的额外工作可能会浪费精力。将OpenGL控件嵌入到封闭的应用程序中是一回事,该应用程序使用更传统的API(如AWT)来呈现其许多控件。另一方面,尝试将来自OpenGL和另一个渲染API的输出合成到同一输出区域是非常不寻常的。

也许如果你能提供一个更具体的例子说明你正在谈论什么样的渲染,人们可以提供更多有用的建议。

答案 1 :(得分:0)

你被一个或另一个困住了。你不能把它们放在一起。