OpenGL修行 點線面模式設定

2021-10-09 01:12:09 字數 2090 閱讀 5905

線多邊形

通過glpointsize()函式即可實現點的大小控制,我畫了兩個大小不同的點,還是挺明顯的。

線的寬窄可以通過gllinewidth()函式來進行控制,大家可以通過下面兩條線來進行對比。

void

display2()

虛線繪製的時候就需要使用glenable()來進行虛線模式的開啟。

乙個多邊形你可以想象成乙個紙片,有正面也有反面,你可以設定他的正反面以及相對應的繪製模式。

glfrontface(gl_ccw); // 設定ccw方向為「正面」,ccw即counterclockwise,逆時針

glfrontface(gl_cw); // 設定cw方向為「正面」,cw即clockwise,順時針

有的時候你只需要正面或反面,這時候就可以用到表面剔除。

直線可以被畫成虛線,而多邊形則可以進行鏤空。

首先,使用glenable(gl_polygon_stipple);來啟動鏤空模式(使用gldisable(gl_polygon_stipple)可以關閉之)。

然後,使用glpolygonstipple來設定鏤空的樣式。

void glpolygonstipple(const glubyte *mask);

其中的引數mask指向乙個長度為128位元組的空間,它表示了乙個32*32的矩形應該如何鏤空。其中:第乙個位元組表示了最左下方的從左到右(也可以是從右到左,這個可以修改)8個畫素是否鏤空(1表示不鏤空,顯示該畫素;0表示鏤空,顯示其後面的顏色),最後乙個位元組表示了最右上方的8個畫素是否鏤空。

void

display7

(void);

glclear

(gl_color_buffer_bit)

;glenable

(gl_polygon_stipple)

;//開啟鏤空模式

glpolygonstipple

(mask)

;//設定鏤空樣式

glrectf(-

0.5f,-

0.5f

,0.0f

,0.0f);

// 在左下方繪製乙個有鏤空效果的正方形

gldisable

(gl_polygon_stipple)

;//關閉鏤空模式

glrectf

(0.0f

,0.0f

,0.5f

,0.5f);

// 在右上方繪製乙個無鏤空效果的正方形

用windows自帶的畫筆程式新建一副,取名為mask.bmp,注意儲存為「單色位圖」,設定的高度和寬度均為32畫素。

參考文獻:

opengl畫點線面

1 關於點 點的大小預設為1個畫素,但也可以改變之。改變的命令為glpointsize,其函式原型如下 void glpointsize glfloat size size必須大於0.0f,預設值為1.0f,單位為 畫素 注意 對於具體的opengl實現,點的大小都有個限度的,如果設定的size超過...

點線面的意義 對點線面的認知

點 認識點點,辭海 的解釋是 細小的痕跡。在 幾何學上,點只有位置,而在 形態學中,點 還具有大小 形狀 色彩 肌理等造型元素。在 自然界,海邊的沙石是點,落在玻璃窗上的 雨滴是點,夜幕中滿天星星是點,空氣中的塵埃也是點。點的表情 具體為形象的點,可用各種工具表現出現,不同形態的點呈現出不同的視覺特...

OpenGL 入門 二維點,線,面

opengl 畫簡單的圖形,不用知道太多為什麼,先實踐,後面慢慢遠離,windows下opengl的配置參考 opengl講解文章推薦 標準座標系 以螢幕中心為原點 0,0,0 你面對螢幕,你的右邊是x正軸,上面是y正軸,螢幕指向你的為z正軸。長度單位這樣來定 視窗範圍按此單位恰好是 1,1 到 1...