2018年4月16日 星期一

Week08#Note!!!

----------------------------------------

Week08

(1)主題:打光
(2)期中模擬考
(3)T-R-T小考
(4)回家作業:3D Model會動(最少1個關節)
(5)Recap
----------------------------------------


期中考題:
glPushMatrix(); //備份矩陣
   glTranslatef(x,y,z); //移動
   glRotatef(angle, x,y,z); //旋轉
   glScalef(x,y,z); //放大縮小
   
   glBegin(GL_POLYGON); //開始畫
       glNormal3f(nx,ny,nz); //法向量
       glTexCoord2f(tx,ty); //貼圖座標
       glColor3f(r,g,b); //顏色
       glVertex3f(x,y,z); //頂點
   glEnd(); //結束畫
glPopMatrix(); //還原矩陣
--------------------------------------------------------------------------------------------------------------------------

TODO:下載好需要的資料


使用Light&Material來玩打光!


把中間的圖形換成茶壺的

畫出一台車子
#include "glm.h"///(1)呼叫glm.h外掛
GLMmodel * pmodel =NULL;///(2)準備好指標
static void display(void)
{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        ///(0)準備好3D模型,放在C:\Users\USER\Desktop\freeglut\bin\data\porsche.obj
        ///(3)忘了! 畫模型!!
        if(!pmodel){
        pmodel = glmReadOBJ("data/porsche.obj");
        if(!pmodel)exit(0);
        glmUnitize(pmodel);
        glmFacetNormals(pmodel);
        glmVertexNormals(pmodel,90.0);
        }

        glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
        ///glutSolidTeapot(1);///glutSolidCone(1,1,slices,stacks);
    glPopMatrix();
    glutSwapBuffers();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("GLUT Shapes");

    glutDisplayFunc(display);
    glutMainLoop();

    return EXIT_SUCCESS;
}




沒有留言:

張貼留言