2022年4月12日 星期二

END之書 week08

 1. 打光/模型

1.1jsyeh.....

window.....

data.....light material.exe => "conduct"

source.zip


1.2 open "notepad++"

glut => move code to notepad++ => "sample.cpp"


GLUT callback =>display()、keyboard()、mouse()、motion() 會被glut呼叫的函數


///期中考試題

glPushMatrix();///備份

   glTranslatef(x,y,z);///移動

   glRotatef(角度,x,y,z);///轉動

   glScalef(x,y,z);///縮放

glPopMatrix();還原


打光程式碼 => 陣列、函數


1-3 github => week06程式 => copy => paste week08 => 茶壺


1-4 source.zip => glm.h、glm.c、lightmaterial.cpp,拿裡面的程式用 => 讀入3D模型


1-5 glm.c => glm.cpp 加入專案

1-6 lightmaterial.cpp => "notepad++"


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

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

GLMmodel*  pmodel=NULL;  GLMmodel模型的指標,NULL表示還沒好


1-7 偷程式碼


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);

}///用來畫3D模型的程式碼


1-8 畫模型


drawmodel()



檔案放 working dir 工作目錄,在codeblock下方有 "Build log" 說明工作目錄在哪


data.zip => data => 放工作目錄

glm.h、glm.c => 放week08_model (c改cpp)

glm.cpp => 加入week08_model專案

week08右鍵 => "add file"


soccerball改"Al"(小寫L)


上github之前記得"save project"

沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

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