【问题标题】:Lwjgl text rendering and simple 2d renderinglwjgl文本渲染和简单的2d渲染
【发布时间】:2016-03-16 05:15:40
【问题描述】:

我在 2D 3D 和 2D 文本渲染之间切换时遇到问题。 当我切换到 2D 渲染简单的四边形,然后我切换到 2D 进行 tekst 渲染时,四边形将被删除。 我用我的代码尝试了几件事,问题是glBlendFunc 这是我初始化简单 2D 渲染的代码:

GL11.glEnable(GL_BLEND);
GL11.glMatrixMode(GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 1, -1);

GL11.glMatrixMode(GL_MODELVIEW);
GL11.glLoadIdentity();

这是我为文本初始化 2D 渲染的代码:

GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glDisable(GL11.GL_LIGHTING);

GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
GL11.glClearDepth(1);

GL11.glEnable(GL11.GL_BLEND);

// This is the problem line
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

GL11.glViewport(0,0, 800, 600);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 600, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

在我切换到 2d 渲染文本后,在下一个渲染循环中清除屏幕后,不会再次绘制简单的 2d 形状。 我怎么解决这个问题? 我从http://lwjgl.org/wiki/index.php?title=Slick-Util_Library_-_Part_3_-_TrueType_Fonts_for_LWJGL得到这个代码

【问题讨论】:

标签: java opengl rendering lwjgl text-rendering


【解决方案1】:

我之前在用 2D 渲染 3D 时遇到过这个问题,我所做的是制作 3 个单独的方法。在您的情况下,3 可能会起作用,您将如何使用它是首先调用您的 2D 渲染,然后是渲染,因此在我的示例中,我使用名称 setOrphoOn 和 setOrphoOff On 是 2D 而关闭是 3D(我猜同样的规则适用)

Click here to see example of how it is done

对不起,我没有和,因为这个网站不喜欢我的代码格式,所以我必须这样做,它应该在包含代码的浏览器中打开

另外很抱歉,如果这不能简单解释并且代码格式不正确???但这就是我的做法,它确实对我有用,您可以随意测试 setOrphoOnOff

【讨论】:

  • 格式化代码只需缩进一次即可。编辑器工具栏上应该有一个问号,有格式说明。
  • 我试过缩进,但它可以用于一半的代码链接是我放入我的下拉框的 txt
猜你喜欢
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-09-15
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
相关资源
最近更新 更多