jsyeh.org/3dcg10下載win32.zip / data.zip / glut32.dll
將data.zip / glut32.dll丟進windows資料夾
課堂作業 2
開啟新檔案 - 貝殼
刪除main程式
咒語5句
freeglut
openg32
glu32
gdi32
winmm

Link要記得用


課堂作業 3
加入data資料夾 / freeglut.dll / glm.c / glm.h / transformation.c
將tranformation.c改檔名為myOBJ.cpp / glm.c改為glm.cpp
***myOBJ.cpp改程式碼
#include <GL/glut.h>
#include "glm.h"
GLMmodel*pmodel=NULL; //GLM大寫代表型態,*P表示指標
void display()
{
glClearColor(1,0,0,0);
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);
//以上剪貼Transformation.c中程式
glutSwapBuffers();
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLM model is great!");
glutDisplayFunc(display);
glutMainLoop();
}

課堂作業 4
***打光、深度、旋轉角度***
#include <GL/glut.h>
#include "glm.h"
GLMmodel*pmodel=NULL;
void display()
{
glClearColor(1,0,0,0);
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);
}
glPushMatrix();
glRotatef(150, 0,1,0); //y軸旋轉150度
glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();
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("GLM model is great!");
glutDisplayFunc(display);
glLightfv(GL_LIGHT0, GL_POSITION,pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST); //深度測試
//以上4行為打光
glutMainLoop();
}

可以加LINE嗎 jon111rock 我有圖學的問題想問你
回覆刪除Line ID 0922086915 低消 50w
回覆刪除