Java OpenGL - 透明背景看下面的面板层?

时间:2014-03-21 20:36:30

标签: java opengl jogl

我使用Java OpenGL渲染点,以覆盖视频流的顶部。

我试图让Java OpenGL画布窗口的背景透明,所以当叠加在视频流层的顶部时,只有渲染点可见?

这是我用来设置画布的代码。

 
public void init(GLAutoDrawable drawable) {

GL gl = drawable.getGL(); System.err.println("INIT GL IS: " + gl.getClass().getName()); // Enable VSync gl.setSwapInterval(1); // Setup the drawing area and shading mode gl.glEnable(GL_BLEND); gl.glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); gl.glShadeModel(GL.GL_SMOOTH); gl.glClearColor(0.0f, 0.4f, 0.0f, 0.0f); }

欢呼任何关于如何做到这一点的想法。 Ĵ

1 个答案:

答案 0 :(得分:1)

您需要在应用内执行的过程应该是这样的:

  • 从视频流中获取RGB缓冲区
  • 将此缓冲区保存为纹理
  • 将此纹理渲染为屏幕上的四边形
  • 在四边形上方渲染您的点。

OpenGL需要在流程中知道谁是最重要的(由于渲染管道需要知道哪些片段被渲染以及哪些片段被拒绝)。

如果你有一个OpenGL视图和一个else-else-view,那么OpenGL就无法做出这个决定。