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勾選取消!!
就可以執行喽~


沒有留言:
張貼留言