2022年4月12日 星期二

電腦圖學筆記week08

 1-1.到    jsyeh.org/3dcg10    下載 wins、data、source ,並執行LightMaterial.exe


1-2. 到moodle下載freeglut 再用codeblocks開啟新專案再將新專案的程式碼複製到notepad++上

1-3.了解glut範例sample.cpp 的177 行 像是 GLUT callback、display()、mouse()、motion()、keyboard()

還有期中考考題:

glPushMatrix(); glTranslatef(x,y,z); glRotatef(角度,x,y,z); glScalef(x,y,z); glBegin(GL_POLYGON); glColor3f(r,g,b); glTexCoord2f(rd,ty); glNormal3f(nd,my,nz); glVertex3f(x,y,z); glEnd(); glPopMatrix();



1-4.從github 拿出上週的程式(使用git clone) 在將week06_light程式碼(notepad++)複製到week08_model的main.cpp

執行

2-1.將source.zip中的glm.h 、 glm.c、lightmaterial.cpp開啟,即可讀入3D模型

1. glm.h  include他

2. glm.c 改成glm.cpp 加入project

3. lightmaterial.cpp 用notepad++ 研究 "學習"

#include <GL/glut.h> 角括號(是系統的include裡的檔案)

#include "glm.h"   雙引號(同目錄裡的檔案)

GLMmodel* pmodel = NULL; (指標指到GLMmodel模型的指標,NULL代表還沒好)


void

drawmodel(void)

{

    if (!pmodel) {

pmodel = glmReadOBJ("data/soccerball.obj");

if (!pmodel) exit(0);

glmUnitize(pmodel);

glmFacetNormals(pmodel);

glmVertexNormals(pmodel, 90.0);

    }


    glmDraw(pmodel, GLM_SMOOTH);

2-2. 畫模型

  1. 用哪一行程式->drawmodel() TODO:在display()中用drawmodel()取代glutSoildTeapot()
  2. 檔案在哪裡 要放在woring dir( 工作目錄)裡
  3. 在 CodeBlocks下方 藍色 Build Log 說我們的工作目錄在...
  4.  TODO: 把 glm.h 還有 glm.c (檔名改成 glm.cpp) 放到 week08_model 目錄(要看到副檔名)
  5. 結案:把glm.h、glm.c(檔名改成glm.cpp)放到week08_model目錄
  6. TODO: 在 week08_model 的專案中, add project  glm.cpp

可以試著更改模型



















沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...