我在 android 上用 opengl es 画了一条线。线条画得很好。唯一的问题是,无论相机离它多近或多远,这条线都保持相同的粗细。有解决办法吗?
最佳答案
OpenGL 以固定宽度绘制线条(以像素为单位),与距相机的距离无关。如果您需要粗细随相机距离而变化的“线”,则必须将它们绘制为多边形。
您可以使用 glLineWidth()
更改线宽,但它仍然是固定宽度(以像素为单位)。此外,在 OpenGL ES 中,实现只需要支持最大 1.0 的线宽。
至少有两种主要方法可以将线绘制为多边形。一种是为每条线绘制一个四边形,并确保四边形朝向相机。另一种方法是绘制一个由多个多边形组成的“棒”(圆柱体)。根据您需要的精度,使用少至 4 个多边形来近似圆柱体可能就足够了,这基本上使它成为一个细长的盒子。
关于android - Opengl Es 线宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494495/