android - Opengl Es 线宽

标签 android opengl-es line thickness

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

最佳答案

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

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

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

关于android - Opengl Es 线宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494495/

相关文章:

安卓。和引擎。使用透明度的图像伪影

c - 如何将文件(IN C)中的每一行保存在变量中? :)

android - 在 eglSwapBuffers 之后保留后台缓冲区内容

java - 如何在 OpenGL ES 中移动带有纹理的形状?

android - 带有切换按钮的 radio 组无法正常工作

android - 非常简单的Android地理围栏示例

python - 用换行符格式化 python 字典

objective-c - 如何检测可拖动线上的触摸(使用 drawRect 绘制)

java - 停止 SwipeRefreshLayout 刷新动画,尽管 setRefresh(false)/isRefreshing=false

android - Toast 不显示 - Android