Android opengl中的线宽限制
我正在尝试构建一个android应用程序,用opengl显示地理数据(如谷歌地图),opengl在绘制线条时似乎对线条宽度有限制:Android opengl中的线宽限制,android,opengl-es,Android,Opengl Es,我正在尝试构建一个android应用程序,用opengl显示地理数据(如谷歌地图),opengl在绘制线条时似乎对线条宽度有限制: gl.glLineWidth(10); //or gl.glLineWidth(20); ...... gl.glDrawArrays(GL10.GL_LINES, 0, 2); 这就是我得到的: 这似乎是opengl渲染的线条的最大宽度 然而,当我看到谷歌地图时,我发现它可以为这样的道路绘制一条宽得多的线: 有
gl.glLineWidth(10); //or gl.glLineWidth(20);
......
gl.glDrawArrays(GL10.GL_LINES, 0, 2);
这就是我得到的:
这似乎是opengl渲染的线条的最大宽度
然而,当我看到谷歌地图时,我发现它可以为这样的道路绘制一条宽得多的线:
有什么问题吗
顺便说一句,我想知道在我的应用程序中是否需要使用游戏引擎?是的,OpenGL实现对线宽有限制。我认为,执行情况各不相同。有几个选项,但最简单的一个是只绘制一个矩形,该矩形与您需要的高度相同,并从a点延伸到B点。例如,如果您需要50点的线宽,你可以找到从A到B的向量,然后沿着向量的法线在端点投影+25点和-25点,得到矩形的4个角。谢谢,事实上我听说人们用矩形代替直线,但是直线很简单,曲线很容易计算向量,我想这很难。此外,处理线条的连接和封口也不容易,不是吗?@hguser你说得对,所有这些二维图形细节都没有在Opengl中实现,但库是存在的,(cairo,glamor,…)。如果您需要绘制精细的二维矢量图形,请尝试在这样的库中挖掘一些。@j-p:事实上,我已经尝试了
libgdx
,但它似乎不支持绘制宽线:(@hguser try cairo,它们有加速表面(我目前正在测试它们的加速程度)而且是可移植的。它是开源中的一个主要堆栈systems@hguser是的,但是这只是一个小的Android测试,你可以通过Android在Android上使用开罗,或者你可以在NC++中用NANK来帮助你的助手LIBS。也许开罗已经有一些java绑定了,我从来没有搜索过它们。