2011-04-29 70 views
1

當您在OpenGL中繪製一條線時,glLineWidth會創建一個固定尺寸的線,而不管線與您的距離如何。在OpenGL中繪製一個「三維外觀」線

我想畫一條線,當它靠近時會顯得更大。現在,我明白如果我使用矩形來達到這種效果,一旦多邊形足夠遠,它將看起來有點像素化。

我以前所做的是繪製一個正常的GL_LINE直到線將會大於像素大小的點,然後從該點繼續一個矩形。然而,它不像將所有東西都夾緊到頂點數組或VBO那樣快,因爲它必須在每一幀重新計算。

還有哪些其他方法可用?還是我堅持這個?

+0

固定功能或可編程流水線? – genpfault 2011-04-29 23:49:40

+0

你要找的尺寸有多大? – 2011-04-29 23:55:06

+0

當我看看http://www.falloutsoftware.com/tutorials/gl/gl0.htm時,3D效果可以用簡單的線條出現,我們的大腦只是讓它看起來像3D。你爲什麼需要這些線實際變小? – 2011-04-29 23:56:50

回答

0

我喜歡用漸變的紋理像這樣的畫線:

enter image description here

這真的是我的紋理的Alpha。所以你有一個完全不透明的中心在邊緣完全透明。然後,您可以使用帶點的矩形繪製線:

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

其中每個元組中的最後兩個條目是紋理的u和v。它看起來非常順利。你甚至可以將很多非常小的矩形串起來以形成彎曲的線條。

+0

呃...這是爲了2D繪圖,順便說一句。也許不是你想要的! – 2011-04-30 01:24:31

0

如果您只是繪製一束線條並想要快速簡單的深度效果,請嘗試添加霧。線條消退後,我們的大腦認爲它們是3d。如果靠近觀看者的近端確實是,則這不起作用。

0

如果你想讓你的線在近端更粗,遠端更薄,我想你必須從多邊形建模。