在OpenGL中绘制线条时,glLineWidth会创建一个固定大小的线条,无论线条与您的距离有多近。
我想画一条线,当它靠近时会显得更大。现在,我明白如果我使用矩形来实现这种效果,一旦多边形足够远,它看起来会有点像素化。
我之前所做的是绘制一个普通的GL_LINE直到线条大于像素大小的点,然后从该点继续一个矩形。然而,它并不像将所有东西放到顶点数组或VBO那样快,因为它必须每帧重新计算。
还有哪些其他方法?还是我坚持这个?
答案 0 :(得分:0)
我喜欢使用这样的渐变纹理来画线:
这真是我纹理的阿尔法。所以你有一个完全不透明的中心褪色到边缘完全透明。然后,您可以使用带点的矩形绘制线条:
(x1,y1,0,0),(x2,y1,1,0),(x1,y2,0,1),(x2,y2,1,1)
每个元组中的最后两个条目是纹理的u和v。它看起来非常顺利。你甚至可以将许多非常小的矩形串在一起,形成曲线。
答案 1 :(得分:0)
如果您只是画了一堆线并想要快速简单的深度效果,请尝试添加雾。线条在后退时的衰减使得我们的大脑认为它们是3d。如果近端真的靠近观众,则无法正常工作。
答案 2 :(得分:0)
如果你希望你的线条在近端较粗而在远端较薄,我想你必须从多边形模拟它们。