2016年5月10日 星期二

Week 12 曾子豪

課堂作業一:

(1)先到 jsyeh.org/3dcg10 Download--win32,data,source,glut32.dll

(2)
win32.zip->桌面/2016CG/exe檔
data.zip->桌面/2016CG/data/*.obj,*.mtl
glut32.dll->桌面/2016CG/glut32.dll
source.zip->桌面/2016CG/glm.c,glm.h,transformation.c




課堂作業二:

   建立貝殼專案
   將"作業1"檔案中的Transform.c 和  glm.c 及 glm.h 複製下來,至專案資料夾中。
   將剛剛以上的 .c 檔改成 .cpp 檔
   到CodeBlock , 加  freeglut 的 include 和 lib 的 Path
   加   (1)  freeglut (2) opengl32 (3) glu32 (4)gui32 (5) winmm
   將freeglut.dll 檔 ,加入到專案資料夾中

以下為專案檔案資料夾中,所有的檔案內容  :



 執行成功  ( 如果在執行時發生顯示錯誤,將視窗拉到就會恢復正常)
  


課堂作業3.

 承作業2的檔案,將 Transfrom.cpp 刪除  , 然後新增一個New File
 程式碼如下  :

#include "glm.h"
GLMmodel *pmodel = NULL;
void display ()
{
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    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);

    glutSwapBuffers();

}
GLfloat pos[] = {0.0 , 0.0,-1.0,0.0};
int main (int argc ,char **argv)
{
    glutInit (&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow ("3D Model");
    glutDisplayFunc (display);

    glLightfv (GL_LIGHT0,GL_POSITION,pos);
    glEnable (GL_LIGHT0);
    glEnable (GL_LIGHTING);
    glEnable  (GL_DEPTH_TEST);

    glutMainLoop();
}   
      Step  3 執行
                 

沒有留言:

張貼留言