Opengl Es线粗

NJG*_*GUY 3 android opengl-es line thickness

我在opengl es中的android上画一条线。这条线画得很好。唯一的问题是,无论相机距离相机多近或多远,线条都保持相同的粗细。有什么解决办法吗?

Ret*_*adi 5

OpenGL以固定的宽度(以像素为单位)绘制线,而与到相机的距离无关。如果您需要“线”的粗细随相机距离而变化,则必须将其绘制为多边形。

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

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