Opengl Es Line厚度

时间:2014-06-30 16:11:48

标签: android opengl-es line thickness

我在opengl es中在android上画了一行。这条线很好。唯一的问题是,无论相机距离相近还是多远,线条都保持相同的厚度。这有什么解决方案吗?

1 个答案:

答案 0 :(得分:4)

OpenGL以固定宽度绘制线条,以像素为单位,与相机的距离无关。如果你需要" line"如果厚度随相机距离的变化而变化,则必须将它们绘制为多边形。

您可以使用glLineWidth()更改线宽,但它仍然是固定宽度(以像素为单位)。此外,在OpenGL ES中,实现只需要支持最大1.0的行宽。

将线条绘制为多边形至少有两种主要方法。一种是为每条线绘制一个四边形,并确保四边形朝向相机。另一种方法是你画一个" stick" (圆柱体)由多个多边形组成。根据您所需的精度,使用少至4个多边形来近似圆柱体就足够了,这基本上使它成为一个很长的薄盒。