重點一:Notepad++將檔名更改.cpp即可改變文字顏色
重點二:用5-10行寫出Glut的基礎內容
#include <GL/glut.h> //呼叫涵式庫windows自己下載;moc自己就有
int main(int argc, char *argv[]) //主程式;argc參數數量;*argv[]參數內容
{
glutInit(&argc, argv); //初始化
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); //初始化設定模式
glutCreateWindow("GLUT Shapes"); //創造視窗
glutMainLoop(); //無限迴圈
return 0; //結束
}
p.s. glutInitDisplayMode(顏色,雙緩存,3D(深度));
p.s. glutInitDisplayMode(顏色,雙緩存,3D(深度));
重點三:寫出Glut使3D視窗能出現點,線,面,顏色
1.畫出茶壺
#include <GL/glut.h>
void display(void)
{
glClearColor(1,0,0,0); //設定背景顏色(目前為紅色)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清 顏色 | 3D(深度) 的緩存
glColor3f(0,1,1); //賦與物體顏色(目前為靛色);f為float
glutSolidTeapot(0.3); //畫出茶壺
glutSwapBuffers(); //雙緩衝區互換
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display); //註冊display涵式
glutMainLoop();
return 0;
}
p.s.1 glClearColor(紅,綠,藍,透明度);
p.s.2. glColor3f(紅,綠,藍);
p.s.3 為何要用glutSwapBuffers();
2.以點,線畫出面
#include <GL/glut.h>
void display(void)
{
glClearColor(1,0,0,1000000);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0,1,1);
glBegin(GL_POLYGON); //開始畵polygon(多邊形)
glColor3f(0,1,1); //從點開始擴散顏色
glVertex3f(0,0.5,0); //決定頂點之一;f為float
glColor3f(1,0,1); //從點開始擴散顏色
glVertex3f(-0.707,-0.707,0); //決定頂點之一;f為float
glColor3f(1,1,0); //從點開始擴散顏色
glVertex3f(0.707,-0.707,0); //決定頂點之一;f為float
glEnd(); //畫圖結束
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
p.s.1 glVertex3f(); 將整個視窗視為從-1~1
p.s.2 glVertex3f(x座標,y座標,z座標);



沒有留言:
張貼留言