2017年10月12日 星期四

蒲立年的學習筆記 Week 05

Part 1: 開啟移動、選轉、縮放模擬程式

Step 1: 從jsyeh.org/3dcg10下載data、win32和 glut32.dll

Step 2: 解壓縮後放入同一層級資料夾

Step 3: 執行Transformation.exe
=>可透過滑鼠在參數上方上下拖移改變參數
完成!!

Part 2: 模擬透視投影

Step 1: 承上述步驟,執行另一檔案 Projection.exe


=>右鍵可以選擇不同參數模式
(1)glu Perspectivev(fovy,aspect,zNear,zFar)
(2)glOrtho(左,右,上,下,近,遠)
     glFrustum(左,右,上,下,近,遠)
(3)gluLookAt(eyeX,eyeY,eyeZ,
                        centerX,centerY,centerZ,
                        upX,upY,upZ)
=>eye為視角位置, center為物體位置, 視角看出去的角度


Part 3: 建構簡單透視模擬程式

Step 1: 從jsyeh.org/3dcg10下載source

Step 2: 把projection.cpp簡化成以下程式
#include <GL/glut.h>
#include "glm.h"
GLMmodel* pmodel = NULL;
void
drawmodel(void)
{
    if (!pmodel) {
pmodel = glmReadOBJ("data/al.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);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week05");

    glutDisplayFunc(display);

    glutMainLoop();

}

注意!! 由於glm.cpp裡的strdup涵式為舊式涵式,執行前請將Settings->compiler裡的C++11勾選取消!!
就可以執行喽~

沒有留言:

張貼留言