2012-01-09 61 views
9

我在Mac OS X上設置了一個OpenGL 3.2 Core上下文。我希望能夠在屏幕上繪製一些厚黑色的喜歡。在以前的OpenGL版本中,我只能設置OpenGL 3.2核心配置文件glLineWidth

glLineWidth(10.0f); 

我將得到一條10像素寬的線。然而,當我檢查3.2中的線寬度範圍時,我得到的值爲1,對於平滑線,0-1爲平滑線。如何在屏幕空間中製作10.0像素寬的線?有沒有簡單的方法來繪製這不是每個線段的矩形?

回答

7

利用OpenGL 3.2纖芯分佈,主叫glLineWidth具有大於1.0的值給出一個錯誤INVALID_VALUE(呼叫glGetError來證明這一點)。

當然,您可以通過確定畫線所需的四邊形來得到想要的結果。

我想你應該能夠從線點生成四邊形:哎,一個更大的線是四!也許你可以使用this這樣的技術來獲得你想要的結果。

的關鍵是:不是依靠線寬,你給一個單元的四作爲輸入(使用三角形帶4個頂點),然後變換傳遞給它適當制服着色器內輸入的頂點。

也許另一種方法是使用幾何着色渲染:生成從點四。但是,我不確定這一點。我不知道幾何着色器(當然,只有當它可行時)纔是最好的方法:使用單個四邊形繪製線條的成本將是構成條的每條線的着色器統一設置。

+0

看起來最好/唯一的方法是通過初始幾何或幾何着色器繪製完整幾何圖形。 – user1139069 2012-01-11 06:04:31

1

這可能取決於您設置的投影類型。你使用正交投影矩陣還是透視投影矩陣?

我認爲,如果不使用的正投影,原始的最後柵格化將受到所述對象(模型矩陣)的從照相機(視圖矩陣)的距離。

乾杯

+0

我正在使用正投影。 – user1139069 2012-01-09 16:34:58

相關問題