顯示具有 Week07 標籤的文章。 顯示所有文章
顯示具有 Week07 標籤的文章。 顯示所有文章

2018年6月4日 星期一

Week07_QAQ筆記

WEEK07:3D模型/3D Explorer、轉檔OBJ

(這周不知為何找不到好像沒存到,家裡又沒辦法好好開起3D Explorer,所以我參考同學的圖)

任務一:3D Explorer
去老師的網站下載需要的東西

將glm.c 改成 glm.cpp
將transformation.c 改成 transformation.cpp

1.開啟3D Explorer











2.打開專案,Addfiles / Setting-Compiler 把勾勾清掉






















3.開啟transformation.cpp












#include "glm.h"  ///  (1)要呼叫glm的外掛
GLMmodel* pmodel = NULL;   ///  (2)宣告GLM的3D模型的指標

void display()

{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///以前教過的清畫面

    if (!pmodel) {
pmodel = glmReadOBJ("data/porsche.obj");   ///這段負責畫3D模型
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("Week07 我自己的3D模型讀進來");

    glutDisplayFunc(display);
    glutMainLoop();
}

2018年4月10日 星期二

Week07 葉子的筆記

2018-04-09  Week07

電腦圖學


(1) 主題: 3D模型/3D Explorer
(2) 轉檔, OBJ模式(v,vt,vnf.)
(3) 期中考考題(10行 OpenGL Code)
(4) 小考:T-R-T
(5) 回家作業

Topic 1 -  用3D Explorer開3D模型

到moodle下載3D Explorer 下載下來後並安裝(詳見圖一)
(圖一)出處:老師用圖

接著到jsyeh.org/3dcg10j網站下載 Source / data / glut32.dll / window三個資料夾  (詳見圖二)
(圖二)出處:老師用圖

接著把data資料夾解壓縮放到桌面開啟3D Explorer 查看data裡的3D模型



Topic 2 -  讀入自己想要的3D模型

TODO: source.zip 有三個程式碼檔案 glm.h 、glm.cpp、transformation.c解壓縮到桌面
(詳見圖三)
(圖三)出處:老師用圖

解壓縮在source裡的三個檔案 分別是glm.h, glm.c  transformation.c並開啟codeblocks glut 專案(project) P.s 請記得到moodle載freeglut檔案並完成相關手續(詳見圖四)

(圖四)出處:老師用圖



接著分別把三個檔案改檔名(glm.h, glm.c --> glm.cpp, transformation -> tran.cpp) (詳見圖五)
(圖五)出處:老師用圖


transformation.c改成 transformation.cpp  (詳見圖六)

(圖六)出處:老師用圖


接著在codeblocks中加入剛剛改好的三個檔案  (詳見圖七)
(圖七)出處:老師用圖

匯入glm.h, glm.cpp, transformation.cpp 3個檔案  (詳見圖八)

(圖八)出處:老師用圖

記得要到codeblocks的 Setting中的 Compiler中取消第一項的勾勾  (詳見圖九)

(圖九)出處:老師用圖

請記得要Rebuild (詳見圖十)

(圖十)出處:老師用圖

然後把data資料夾複製  (詳見圖十一)
(圖十一)出處:老師用圖

把data資料夾複製好後放進freeglut中的bin資料夾中  (詳見圖十二)
(圖十二)出處:老師用圖


因為在transformation.cpp中已經有main函式了請把 main.cpp裡的程式清空  (詳見圖十三)
(圖十三)出處:老師用圖


接著開啟程式~~~完成 (詳見圖十四)
(圖十四)出處:老師用圖

----------------------------------------------------------分隔線-------------------------------------------------------

程式碼

#include "glm.h"
GLMmodel * pmodel=NULL;

void display()
{
    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("Week07 It's my 3D code");

    glutDisplayFunc(display);
    glutMainLoop();
}


---------------------------------------------------------分隔線--------------------------------------------------------

詳細解說



程式碼  (請見圖十五)
(圖十五)出處:老師用圖


自己用obj檔加入程式中  (詳見圖十六)
(圖十六)出處:老師用圖

Q: 為什麼 #include "glm.h" 是用雙引號呢?

ANS: 因為在函式庫中並沒有glm.h這個東西 這是外掛所以使用雙引號 (詳見圖十七)

(圖十七)出處:老師用圖




2018年4月9日 星期一

Week07_+0筆記

http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/   下載data解壓縮
安裝3DExplorer_v181.rar3DExplorer_v181.rar 開啟data

安裝 執行
 jsyeh.org/3dcg10
data.zip--->桌面/data/一堆3D模型
=> 用3D Explorer 開3D模型
    


創專案將source.zip中的glm.c glc.h transformation.c放入專案資料夾

新增檔案

取消設定勾選

加入DATA在freeglut資料加BIN中

重新編譯



三讀入3D模型


#include "glm.h"///(1)glm的外掛
GLMmodel *pmodel=NULL;///(2)指標
void display()
{
 glClear(GL_COLOR_BUFFER_BIT|GL_COLOR_BUFFER_BIT);///清畫面

    if (!pmodel) {
pmodel = glmReadOBJ("data/porsche.obj");///(3)這段負責畫3D的模型
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("WEEK07");
    glutDisplayFunc(display);
    glutMainLoop();
}

                                           

Week 07 安淇的課堂筆記

1.
到http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
下載 source   data   window




2.



3.

week07*小紅帽槓上大野狼

3D模型/轉OBJ檔/T-R-T

*moodle 下載3DExplorer

*下載http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/  (source/data/win32/glut32.dll)
  -

*開啟3DExplor
  -
  -尋找data
  -

*打開Code Blocks
  -建立GLUT Project (記得載 freeglut . 更改libglut32.a)
  -抓取source.zip的程式碼 (glm.h(關鍵)/glm.c(關鍵)/transformation.c(範例)),放到上面所建立的Project中
  -
  -更改glm.c -> glm.cpp / transformation.c -> transformation.cpp
  -
  -把glm.h/glm.cpp/transformation.cpp放進專案內
  -
  -Add two files in Project (glm.cpp / transformation.cpp)
  -
  -在settings 的 compiler取消一個勾勾,然後把main.cpp清空(不能有兩個main())
  -
  -build -> rebuild (ctrl-F11),檔案裡會跑出bin和obj,把data丟到freeglut的bin裡面
  -跑跑看

*自己寫程式
  -#include "glm.h" ///要放在同一目錄下
  -GLMmodel * pmodel=NULL;///指標
  -從transformation中擷取得程式
  -
  -
 -要把transformation.cpp的程式碼全部刪掉,因為同一個專案中不能有兩個main()函式
*顯示小車車
  -
  -#include "glm.h"///呼叫glm外掛
GLMmodel * pmodel=NULL;///指標
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清畫面

    if (!pmodel) {
pmodel = glmReadOBJ("data/porsche.obj");///data要放在freeglut/bin的裡面
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("05160965");

    glutDisplayFunc(display);
    glutMainLoop();
}

Week07_馬明

2018-04-09
Week07
(1)主題:3D模型
(2)轉檔,OBJ格式(v,vt,vnf)
(3)期中考題(10行OpenGL Code)
(4)小考T-R-T
(5)回家作業:骨架階層矩陣

TODO:Moodle下載3D Exploration探索/檔案總管

(1)安裝、執行
----------------------------------
TODO:下載jsyeh.org/3dcg10>>data.zip

(2)data.zip→桌面/data/一堆3D模型
=> 用 3D Exploration 開 3D模型(看)

------------------------------------
TODO:想自己讀入3D模型(EX.jsyeh.org/3dcg10的範例)

建GLUT專案week07_glm

下載jsyeh.org/3dcg10>>Source.zip
找出
(1)glm.h
(2)glm.c重新命名glm.cpp
(3)transformation.c重新命名transfarmation,cpp
上述3個程式放入桌面week07_glm資料夾

freeglut>>bin放入data/模型
                 lib的改libfreeglut.a複製貼上檔名改libglut32.a

-------------------------------------------
TODO:File-New-Project,GLUT
Add files放入glm.cpp,transfarmation,cpp
Setting-Compiler的勾勾清掉


main.cpp程式清空,因為另外.cpp都有main
清空後再rebuild然後build and run


--------------------------------------------------
TODO:自己打造 3D模型 程式
(1)把上節課transfarmation.cpp內容刪除
(2)main.cpp放程式
#include "glm.h"///1.外掛
GLMmodel * pmodel=NULL;//2.指標
void display()
{
   glClear(.....)///3.畫模型
   .
   .
   .
   glutSwapBuffer()///畫出來
}



-----------------------------



Week07 來福的汪汪圖學週記

0409 week07

主題3D模型

轉檔 OBJ格式>>youtube上有小葉老師影片
https://www.youtube.com/watch?v=D4a7cNFF9kQ

期中考題
小考TRT
作業骨架 階層 矩陣



01>>
按照步驟做

去網站下載三個檔案
 source data win32
把win32解壓縮
把data 跟 glut32.dll放到解出來的資料夾


02>>
自己寫程式出來

///新的東西
#include "glm.h" ///呼叫外掛
GLMmodel * pmodel = NULL;///做出指向指標

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///清理畫面
    ///新的東西(複製)
    if(!pmodel)
    {
        pmodel = glmReadOBJ("data/f-16.obj");///呼叫OR畫出模型(檔案名稱)
        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("week07 3D讀取");

    glutDisplayFunc(display);
    glutMainLoop();
}

03>> 轉檔OBJ

week07 記筆的我

下載3DExplorer

http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
下載 data.zip
         glut32.dll
         source.zip
         windows.zip

以Exploring開啟data

開啟OpenGL



從source拉進glm和transformation並將檔名改成.cpp


將第一個勾取消掉

Rebuild



自己打