--------------------------------------------------------------
1.
下載範例 - jsyeh.org/3dcg10
win32.zip = > exe檔
data.zip = > obj mtl檔
glut32.dll
*source.zip = >glm.h
glm.c
transformation.c
如圖:

-----------
2.
然後用其檔案在Code::Block 開啟
將必須的設定和檔案設定好
注意將data資料夾複製

-------------
3.
之後如果要用其中的模型 要鍵入 然後
使用一個程式來控制它
這裡是寫一個myOBJ.cpp來控制
程式碼如下
#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);
}
glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
glutSwapBuffers();
}
int main(int argc,char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLM GREAT!!");
glutDisplayFunc(display);
glutMainLoop();
}
而這裡是用車子做為範例
還要glm檔(要改cpp)

------------
4.
將其打光,將LIGHT加入

有角度問題
程式碼:
#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(90,0,1,0);
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 GREAT!!");
glutDisplayFunc(display);
//光的程式碼
glLightfv(GL_LIGHT0,GL_POSITION,pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
glutMainLoop();
}
----------------------------------------------
之後作業為
基礎要求: 有你的模型(maya要匯出OBJ檔)、貼圖、聲音、互動 (這個在本週日5/15要完成)
1. 畫面截圖 (下次才要貼 YouTube錄影)
2. 文字說明檔 (txt檔, 裡面說清楚你想做什麼? 期待做出的成果像什麼樣子?(給圖或給別人的網址來參考) 你完成了什麼? 程式怎麼操作? 想要老師再多教什麼來幫你? 有什麼可以加分的東西要強調?)
3. 精簡程式壓縮檔 (含 source code、專案Project設定檔、必要的素材檔(聲音、圖片)、程式執行檔) (可不附 freeglut 或 opencv 2.1 的 dll檔, 老師會準備好) (請先試過可執行, 別放不必要/沒用的檔案)
沒有留言:
張貼留言