如何扩展ViewPort并使用它在屏幕上绘制3D图形的“窗口”

时间:2014-06-01 22:58:33

标签: libgdx

我需要创建一个480x480的3D透视摄影机视口,并将其显示在屏幕的右下角。屏幕的其余部分充满了2D图形。

我尝试使用viewportX,viewportY以及viewportHeight和viewportWidth扩展Viewport,但测试3D对象不会绘制。

我按照本教程来获取基本原型。 https://code.google.com/p/libgdx-users/wiki/Decals

如何正确扩展ViewPort并使用它来绘制一个"窗口"屏幕上的3D图形?

1 个答案:

答案 0 :(得分:1)

以下内容可用于Viewport的固定大小为480x480,位于左下角。如果您向其提供PerspectiveCamera,则会在此区域中呈现所有内容。

public class CustomViewport extends Viewport {

    public CustomViewport (Camera camera) {
        this.camera = camera;
    }

    @Override
    public void update (int screenWidth, int screenHeight, boolean centerCamera) {
        viewportX = 0;
        viewportY = 0;
        viewportWidth = 480;
        viewportHeight = 480;
        worldWidth = 480;
        worldHeight = 480;
        super.update(screenWidth, screenHeight, false);
    }

}

如果您想在此后的其他地方渲染,则必须通过glViewport()

“重置”Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

现在您可以随意渲染,例如在空白的顶部和右侧区域。

This test显示了如何在这些区域中渲染的另一个示例。