在OpenGL中绘制“3D外观”线

时间:2011-04-29 23:48:22

标签: opengl

在OpenGL中绘制线条时,glLineWidth会创建一个固定大小的线条,无论线条与您的距离有多近。

我想画一条线,当它靠近时会显得更大。现在,我明白如果我使用矩形来实现这种效果,一旦多边形足够远,它看起来会有点像素化。

我之前所做的是绘制一个普通的GL_LINE直到线条大于像素大小的点,然后从该点继续一个矩形。然而,它并不像将所有东西放到顶点数组或VBO那样快,因为它必须每帧重新计算。

还有哪些其他方法?还是我坚持这个?

3 个答案:

答案 0 :(得分:0)

我喜欢使用这样的渐变纹理来画线:

enter image description here

这真是我纹理的阿尔法。所以你有一个完全不透明的中心褪色到边缘完全透明。然后,您可以使用带点的矩形绘制线条:

(x1,y1,0,0),(x2,y1,1,0),(x1,y2,0,1),(x2,y2,1,1)

每个元组中的最后两个条目是纹理的u和v。它看起来非常顺利。你甚至可以将许多非常小的矩形串在一起,形成曲线。

答案 1 :(得分:0)

如果您只是画了一堆线并想要快速简单的深度效果,请尝试添加雾。线条在后退时的衰减使得我们的大脑认为它们是3d。如果近端真的靠近观众,则无法正常工作。

答案 2 :(得分:0)

如果你希望你的线条在近端较粗而在远端较薄,我想你必须从多边形模拟它们。