【发布时间】:2016-03-18 15:31:56
【问题描述】:
请问如何在libgdx中使用opengl画出三条不相连的非正交线?代码 sn-p 非常感谢。 我用谷歌搜索了很多,找到了一个例子(三角形)here,但它被标记为过时并使用网格。
Opengl 教程说我可以这样写:
glBegin(GL_LINES);
glVertex2f(.25,0.25);
glVertex2f(.75,.75);
glEnd();
但是我如何从 libgdx 调用这段代码呢?
是否可以在不编写网格和着色器的情况下画线?
即使使用着色器,当我将此代码写入着色器并通过 ShaderProgram() 加载它时,它也只会给出编译错误。
void main()
{
glVertex2f(.25,0.25);
glVertex2f(.75,.75);
}
所以,虽然 opengl 教程说我可以调用这个 glVertex2f(.25,0.25),但我不能从着色器中调用它。
Lwjgl 教程在某种程度上引用了 libgdx,例如 here 和 here,但代码在 libgdx 中不起作用[方法 batch.draw(texture, x, y, width, thickness) 在 libgdx 中几乎不存在]。
ShapeRenderer 对于我的用例来说太慢了。 从 1x1 px 纹理渲染线听起来很合理,但如果我能像上面那样从 libgdx 进行 opengl 调用,那就更好了。谢谢。
UPD:我看到可以通过Gdx.gl.xxx() 引用opengl 方法,但这里没有Gdx.gl.glVertex2f()。
【问题讨论】:
-
你是如何确定 ShapeRenderer 太慢的?
-
我在场景构建期间解析了一个 svg 图像,然后使用 ShapeRenderer(它也创建一次)绘制它,这会将 fps 从 400 下降到 20-30。我还读到 ShapeRenderer 不缓存任何几何图形,主要用于调试目的。
-
@EugeneS 你能告诉你如何解析 svg 图像并使用 ShapeRenderer 绘制它吗?我有类似的任务,但似乎 libGDX 不支持矢量图形
-
嗨@dimon!我使用 Sovery 作为基础,在这里查看:badlogicgames.com/forum/viewtopic.php?f=17&t=21333
-
@EugeneS 酷,谢谢!