2024年3月25日 星期一

week06

 ## week06-0_sample_color

1:研究一下main.cpp程式碼177行,找到全部的light(光)相關的程式

20行程式

 glEnable(GL_DEPTH_TEST);

    glDepthFunc(GL_LESS);


    glEnable(GL_LIGHT0);

    glEnable(GL_NORMALIZE);

    glEnable(GL_COLOR_MATERIAL);

    glEnable(GL_LIGHTING);


    glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);

    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);

    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);

    glLightfv(GL_LIGHT0, GL_POSITION, light_position);


    glMaterialfv(GL_FRONT, GL_AMBIENT,   mat_ambient);

    glMaterialfv(GL_FRONT, GL_DIFFUSE,   mat_diffuse);

    glMaterialfv(GL_FRONT, GL_SPECULAR,  mat_specular);

    glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);

## week06-1_lighting

1File_New_project,


## week06-2_lighting_glNormal3f

1.File-NEW-project,glut專案

week06-2_lighting_glNormal3f

2:貼上剛剛的week06-1 lighting的程式

3:我們要把茶壺,變成一個正方形

4:加上mouse轉動這個正方形

## week06-3_gln_obj_model

1:File-New-Project,glut專案

2:先把11行程式glut,先做出來

3:參考source.zip裡面的transformation.c

3.1#include"glm.h"

3.2GlModel*pmodel=NULL;

3.3讀模型,畫模型


#include <GL/glut.h>

#include"glm.h"

GLMmodel* pmodel=NULL;

void drawmodel(void)

{

    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);

}

void display()

{

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    drawmodel();

    glutSwapBuffers();

}




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

{

    glutInit(&argc, argv);///140

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///143


     glutCreateWindow("week06 glm obj model");///145


     glutDisplayFunc(display);///148


     glutMainLoop();///174

}


沒有留言:

張貼留言