为何选择Libgdx Gdx.gl10.glLineWidth(宽度);不会改变投影属性

时间:2012-09-10 09:56:30

标签: java android opengl-es libgdx

我有典型的带有render()函数的Libgdx类。

在render()函数中,我有ShapeRenderer批处理:

Gdx.gl10.glLineWidth(width);
renderer.begin(ShapeType.Line);
renderer.setColor(25,0, 0, alpha);
renderer.line(point_x1, point_y1, point_x2, point_y2);
renderer.end(); 

在这个函数中我也有:

        camera.update();
        renderer.setProjectionMatrix(camera.combined);

当投影特性改变时,线点正确平移但线宽仍然相同

是否有任何方法可以根据投影宽度和高度改变线宽?

问候

2 个答案:

答案 0 :(得分:6)

线宽以像素为单位,不受任何投影变换的影响。因此,没有简单的方法可以使线宽取决于当前的投影变换,并且您无法通过真实的二维几何(即旋转的矩形或类似的东西)替换线条。

答案 1 :(得分:0)

您没有指定使用的相机类型,但如果是OrthographicCamera,您可以使用zoom根据相机的缩放系数修改线宽:

例如,当您没有放大/缩小时有1像素宽度线时,可以使用:

OrthographicCamera camera = ...
int lineWidth = 1; // pixels

Gdx.gl10.glLineWidth(lineWidth / camera.zoom);