2023年4月6日 星期四

劉 電腦圖學 week8

 week08 3D模型

第一堂課

前往https://jsyeh.org/3dcg10/ 下載source deta win32


 

 v 對應 vertex頂點
vt對應 貼圖座標 glTexCoord2f(tx,ty)
vn 對應vertex normal法向量
f 對應 面facet

第二堂課 

開啟glut專案 week08-1
#include <GL/glut.h>
#include "glm.h"

void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glutSolidTeapot( 0.3 );
    glutSwapBuffers();

}

int main(int argc, char* argv[])
{

  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
  glutCreateWindow("week08");

  glutDisplayFunc(display);
  glutMainLoop();

}

把glm.h加進week08-1的目錄







將glm.c改名為glm.cpp 加入week08-1目錄
add檔案到week08-1



#include <GL/glut.h>
#include "glm.h"
GLMmodel *pmodel = NULL;
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    if(pomdel==NULL) {
         pmodel = glmReadOBJ("Gumdan.obj");
         glmUnitize(pmodel);
    }
    glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
     glutSolidTeapot( 0.3 );
    glutSwapBuffers();

}

int main(int argc, char* argv[])
{

  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
  glutCreateWindow("week08");

  glutDisplayFunc(display);
  glutMainLoop();

}

第三堂課

開啟新專案 week08-2 _glm_model_texture
將08-1貼上

安裝opencv

#include <GL/glut.h>
#include "glm.h"
GLMmodel * pmodel = NULL;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    if(pmodel==NULL){
         pmodel = glmReadOBJ("Gundam.obj");
         glmUnitize(pmodel);
         glmFacetNormals(pmodel);
         glmVertexNormals(pmodel, 90);
    }
    glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);

    glutSwapBuffers();

}

int main(int argc, char* argv[])
{

  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
  glutCreateWindow("week08");


  glutDisplayFunc(display);
  glutMainLoop();

}

#include <GL/glut.h>
#include "glm.h"
GLMmodel * pmodel = NULL;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    if(pmodel==NULL){
         pmodel = glmReadOBJ("Gundam.obj");
         glmUnitize(pmodel);
         glmFacetNormals(pmodel);
         glmVertexNormals(pmodel, 90);
    }
    glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);

    glutSwapBuffers();

}

int main(int argc, char* argv[])
{

  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
  glutCreateWindow("week08");

  myTexture("Diffuse.jpg");
  glutDisplayFunc(display);
  glutMainLoop();

}






沒有留言:

張貼留言