2021年5月19日 星期三

阿~一代一代 week13












C:\OpenCV2.1\include 

C:\OpenCV2.1\lib

cv210 cxcore210 highgui210

1. 先讓貼圖成功

1.1. hackmd.io/@jsyeh/opengl 有 貼圖範例程式

1.2. Fiile-New-Project, GLUT專案 week13_robot (把main.cpp內容備份)

1.3. 把貼圖範例程式 放入 main.cpp (把 puipui.jpg 改成 Diffuse.jpg)

1.4. 把圖檔放好 桌面/freeglut/bin  有 Diffuse.jpg bg.jpg (Teams裡)


2. 讓目錄正確 (因桌面/freeglut/bin 太怪了。要改到 專案目錄week13_robot)

2.1. 把 freeglut\bin 的 freeglut.dll copy到專案目錄 week13_robot

       把 Diffuse.jpg 及 bg.jpg 移到專案目錄 week13_robot

2.2. 用 Notepad++ 把 week13 robot\week13_robot.cbp 專案檔打開

兩個working_dir 要改成 "."  再存檔

2.3. CodeBlocks會出現 Reload畫面


3. glm模式

3.1. 檔案準備好 source.zip (glm.h glm.cpp(改), transformation.c)

3.2. 模型準備好 gundam還沒切開.zip 裡有 Gundam.obj Gundam.mtl Diffuse.jpg 

3.3. 要加入程式 (在week13_robot 專案中, Add 把 glm.cpp 加入)

3.4. 用 Notepad++ 開 transformation.c 要偷裡面的程式

       #include "glm.h"

       GLMmodel * pmodel = NULL;

       再 copy drawmodel() 的函式, 改glmReadOBJ("檔名") 及 改右邊 glmDraw(... GLM_TEXTURE) , 並在 display()裡叫 drawmodel()

3.5. 圖檔Diffuse.jpg看起來需要上下反過來, 可用小畫家幫忙,存檔後再執行即可



4. 旋轉

4.1. 先整體旋轉 glPushMatrix(); glRotatef(角度, 0,1,0); 畫圖; glPopMatrix();

4.2. 背景的圖,移一下





5. T-R-T

5.1. 先把(許多小)模型準備好 body.obj body.mtl, arm1.obj arm1.mtl, arm2.obj arm2.mtl...

5.2. 把 GLMmodel * body = NULL 等都加上許多指標 (body, arm1, arm2)




沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...