我需要创建一个480x480的3D透视摄影机视口,并将其显示在屏幕的右下角。屏幕的其余部分充满了2D图形。
我尝试使用viewportX,viewportY以及viewportHeight和viewportWidth扩展Viewport,但测试3D对象不会绘制。
我按照本教程来获取基本原型。 https://code.google.com/p/libgdx-users/wiki/Decals
如何正确扩展ViewPort并使用它来绘制一个"窗口"屏幕上的3D图形?
答案 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显示了如何在这些区域中渲染的另一个示例。