JOGL-3D,在对象的表面上渲染动态字符串

时间:2015-12-26 11:42:30

标签: java 3d jogl

我是JOGL的新手。我需要在3D世界中加载数千个元素(如立方体)。这些元素将具有与每个元素相关联的唯一标签。哪个应显示在元素的面上(面部取决于相机视点)。

我成功创造了世界&我只加载我正在查看的部分。当2D中仅加载了对象/元素时。 CPU使用率是正常的。但是当我介绍文本时(使用 TextRenderer ),CPU使用率非常高(即正常情况下的30%+)。

我想要一种有效的方式来渲染3D世界中的文本。 我使用下面的代码来渲染文本。

textRenderer.begin3DRendering();
textRenderer.setColor(Color.WHITE);
textRenderer.setSmoothing(true);
textRenderer.draw3D(name, x, y, object4D.vertex[0][2]+0f, 0.02f);
textRenderer.end3DRendering();

我尝试使用 TextRegionUtil

try {
        font = FontFactory.get(FontFactory.JAVA).getDefault();
        renderState = RenderState.createRenderState(SVertex.factory());
        renderer = RegionRenderer.create(renderState, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable);
        renderer.init(gl2, Region.DEFAULT_TWO_PASS_TEXTURE_UNIT);

        textUtil = new TextRegionUtil(Region.DEFAULT_TWO_PASS_TEXTURE_UNIT);

        pmv = renderer.getMatrix();
        pmv.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
        pmv.glScalef(0.1f, 0.1f, 01f);
        pmv.glLoadIdentity();
    } catch (IOException e) {
        e.printStackTrace();
    }

    pmv.glPushMatrix();
    pmv.glTranslatef(0, 0, 0);
    renderState.setColorStatic(1, 0, 0, 1);
    textUtil.drawString3D(gl2, renderer, font, fontSize, "Text", null, texSize);
    pmv.glPopMatrix();

但我无法正确看待。 它显示如下视图。

enter image description here

所以请任何人帮我解决这个问题。

0 个答案:

没有答案