Sunday, October 1, 2017

opengl - hello world 第一支OpenGL的程式


開始做OpenGL的練習

---

glutInitDisplayMode() 定義雙口的顯示模式

 


GLUT_SINGLE: 繪圖命令在窗口執行(可能會看到繪圖的過程)

GLUT_DOUBLE: 繪圖命令在窗口外完成, 完成後再顯示到窗口上 (也就是緩衝模式)


GLUT_RGB: 指定RGB顏色模式的窗口

GLUT_RGBA: 指定RGBA顏色模式的窗口 (A為Alpha, 指的是不透明度)



GLUT_ALPHA: 窗口顏色份量包含不透明度

GLUT_DEPTH: 深度緩存

GLUT_ACCUM: 累加緩存

GLUT_STENCIL: 模板緩存


GLUT_STEREO: 立體窗口

GLUT_INDEX: 顏色索引模式

GLUT_MULTISAMPLE: 多樣本功能

---



---
程式碼:


#include "GL\freeglut.h"

void display()
{
 glClearColor(0.5, 0.5, 0.5, 1);  //清除畫面的顏色
 glClear(GL_COLOR_BUFFER_BIT);   //清除畫面
 glLoadIdentity(); //不讓之前殘留的矩陣資料影像後面的運算

 //開始畫圖
 glBegin(GL_TRIANGLES); //設定畫的圖為三角形
  glColor3f(1, 0, 0); glVertex2f(-0.5, -0.5); 
  glColor3f(0, 1, 0); glVertex2f(0.5, -0.5);
  glColor3f(0, 0, 1); glVertex2f(0, 0.5);
 glEnd();
 //結束畫圖

 glutSwapBuffers(); //把畫好的東西刷上去
}

int main(int argc, char** argv)
{
 
 glutInit(&argc, argv);//初始化glut

 glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE); //初始化顯示器
 glutInitWindowPosition(100, 100); //初始化視窗左上角的位置
 glutInitWindowSize(600, 600); //初始化視窗大小
 glutCreateWindow("DING"); //視窗名稱

 glutDisplayFunc(display); //顯示器

 glutMainLoop();
 return 0;
}

---
運行結果:



No comments:

Post a Comment