OpenGL支持基本幾何頂點繪畫,使用glVertex()生成畫點的演示程式如上圖:下載
- 按鼠標左鍵繪畫頂點
- 按+鍵加大頂點尺寸
- 按-鍵減小頂點尺寸
- 按S鍵切換抗鋸齒功能
- 按1鍵切換為白色
- 按2鍵切換為黃色
- 按3鍵切換為紅色
繪畫單個頂點
- glPointSize(size);設置頂點的大小
- glBegin(GL_POINTS); 準備繪畫
- glVertex3f(x,y,z); 繪畫頂點(浮點數版)
- glVertex3i(x,y,z); 繪畫頂點(整數版)
- glEnd(); 結束繪畫
因屏幕由像素組成,縮放頂點時邊緣會產生鋸齒,OpenGL有其抗鋸齒算法,啟用後頂定會由方變圓,並修改邊緣像素的顏色:
if (glIsEnabled(GL_POINT_SMOOTH) == false)// 判斷抗鋸齒是否已啟用
{
glEnable(GL_POINT_SMOOTH); // 啟用頂點的平滑模式(抗鋸齒功能)
glEnable(GL_BLEND);// 需啟用混合
}
開啟抗鋸齒算法後,頂點尺寸範圍受到限制,若輸入不受支持頂點的尺寸,會改為最接近的支持數值:
- GLfloat sizes[2];浮點數數組
- glGetFloatv(GL_POINT_SIZE_RANGE,sizes);提取頂點尺寸的範圍
- GLfloat min = sizes[0];最小
- GLfloat max = sizes[1];最大
- GLfloat granularity;
- glGetFloatv(GL_POINT_SIZE_GRANULARITY,&granularity);提取頂點尺寸的粒度
- GLfloat size;
- glGetFloatv(GL_POINT_SIZE,&size);獲取當前頂點尺寸
- size = size + granularity;加大
- size = size – granularity;減小
- glPointSize(size);設置當前頂點的大小,但不能在glBegin()與glEnd()之間調用