今天教程式碼由下往上讀:如(圖1)
圖1:
2021電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
#include <GL/glut.h>
#include <math.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_POLYGON);
glColor3f(244/255.0, 203/255.0, 87/255.0);
glVertex2f( (8-150)/50.0, -(8-150)/50.0);
glVertex2f((212-150)/50.0, -(8-150)/50.0);
glVertex2f((212-150)/50.0, -(211-150)/50.0);
glVertex2f( (8-150)/50.0, -(211-150)/50.0);
glEnd(); ///¥H¤W¬OI´º
glBegin(GL_POLYGON);
glColor3f(28/255.0, 16/255.0, 12/255.0);
glVertex2f( (51-150)/150.0, -(70-150)/150.0);
glVertex2f((99-150)/150.0, -(70-150)/150.0);
glVertex2f((99-150)/150.0, -(131-150)/150.0);
glVertex2f( (51-150)/150.0, -(131-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(28/255.0, 16/255.0, 12/255.0);
glVertex2f( (200-150)/150.0, -(70-150)/150.0);
glVertex2f((248-150)/150.0, -(70-150)/150.0);
glVertex2f((248-150)/150.0, -(131-150)/150.0);
glVertex2f( (200-150)/150.0, -(131-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(243/255.0, 243/255.0, 243/255.0);
glVertex2f( (211-150)/150.0, -(74-150)/150.0);
glVertex2f((231-150)/150.0, -(74-150)/150.0);
glVertex2f((231-150)/150.0, -(94-150)/150.0);
glVertex2f( (211-150)/150.0, -(94-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(243/255.0, 243/255.0, 243/255.0);
glVertex2f( (68-150)/150.0, -(74-150)/150.0);
glVertex2f((88-150)/150.0, -(74-150)/150.0);
glVertex2f((88-150)/150.0, -(94-150)/150.0);
glVertex2f( (68-150)/150.0, -(94-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(77/255.0, 62/255.0, 52/255.0);
glVertex2f( (51-150)/150.0, -(122-150)/150.0);
glVertex2f((99-150)/150.0, -(122-150)/150.0);
glVertex2f((99-150)/150.0, -(130-150)/150.0);
glVertex2f( (51-150)/150.0, -(130-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(77/255.0, 62/255.0, 52/255.0);
glVertex2f( (200-150)/150.0, -(122-150)/150.0);
glVertex2f((248-150)/150.0, -(122-150)/150.0);
glVertex2f((248-150)/150.0, -(130-150)/150.0);
glVertex2f( (200-150)/150.0, -(130-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(48/255.0, 42/255.0, 36/255.0);
glVertex2f( (137-150)/150.0, -(132-150)/150.0);
glVertex2f((163-150)/150.0, -(132-150)/150.0);
glVertex2f((163-150)/150.0, -(148-150)/150.0);
glVertex2f( (137-150)/150.0, -(148-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(255/255.0, 0/255.0, 0/255.0);
glVertex2f( (0-150)/150.0, -(150-150)/150.0);
glVertex2f((68-150)/150.0, -(150-150)/150.0);
glVertex2f((68-150)/150.0, -(230-150)/150.0);
glVertex2f( (0-150)/150.0, -(230-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(255/255.0, 0/255.0, 0/255.0);
glVertex2f( (233-150)/150.0, -(150-150)/150.0);
glVertex2f((300-150)/150.0, -(150-150)/150.0);
glVertex2f((300-150)/150.0, -(230-150)/150.0);
glVertex2f( (233-150)/150.0, -(230-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(150/255.0, 96/255.0, 109/255.0);
glVertex2f( (93-150)/150.0, -(170-150)/150.0);
glVertex2f((207-150)/150.0, -(170-150)/150.0);
glVertex2f((207-150)/150.0, -(217-150)/150.0);
glVertex2f( (93-150)/150.0, -(217-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(212/255.0, 153/255.0, 179/255.0);
glVertex2f( (110-150)/150.0, -(191-150)/150.0);
glVertex2f((190-150)/150.0, -(191-150)/150.0);
glVertex2f((190-150)/150.0, -(217-150)/150.0);
glVertex2f( (110-150)/150.0, -(217-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(150/255.0, 96/255.0, 109/255.0);
glVertex2f( (136-150)/150.0, -(170-150)/150.0);
glVertex2f((150-150)/150.0, -(156-150)/150.0);
glVertex2f((163-150)/150.0, -(170-150)/150.0);
glEnd();
glutSwapBuffers();
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("08160873");
glutDisplayFunc(display);
glutMainLoop();
}
第一堂課我們教的是創建一個GitHub的帳號,並修改Profile的個人圖片.(如圖1)
圖1:
今天的首要課程 是打造一個GLUT程式,首先開一個"OPEN-GL專案"
開Code Blocks(File-New-Project),並點選"Open-GL "執行!
如同上禮拜的課程如"圖一.圖二"
圖一:
圖二:
接著修改程式碼 做出茶壺 如下圖:
接著使茶壺變色 如下圖:
第2堂課:
1.開啟"CodeBlocls",並且新增File-New-Project,並點選OpenGL
2.取檔名?A:(Week01) ,放在哪?A:(Desktop)
3.下一步....下下步....and Bulid and Run.
如下圖1:
#include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) { if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...