Lwjgl文本渲染和简单的2d渲染

时间:2014-01-22 19:27:43

标签: java opengl rendering lwjgl text-rendering

我在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

获得了此代码

1 个答案:

答案 0 :(得分:-1)

我在使用2D渲染3D之前遇到过这个问题,我所做的是制作3个独立的方法。在你的情况下3可能会工作,如何使用它是通过首先调用你的2D渲染,然后渲染,所以它为我的例子我使用的名称setOrphoOn和setOrphoOff在2D和关闭3D(我猜相同的规则)

Click here to see example of how it is done

抱歉,我没有<< t<代码>和< / code>因为这个网站不喜欢我的代码格式,所以iv必须这样做,它应该只在包含代码的浏览器中打开

此外,如果这不能轻易解释并且代码格式不正确,请注意不要???但这就是我如何做到的,它对我有用,随意自行测试setOrphoOnOff