2021年5月19日 星期三

本人發言不代表本人立場 week13

主題:做出有關節的機器人

0. 設好環境

1. 貼圖

  • 可以用老師的範例hackmd.io/@jsyeh/opengl或自己的
  • 開GLUT專案(備份main.cpp)
  • 貼圖範例放進main(Diffuse.jpg)
  • 圖檔放進freeglut/bin
    執行結果:

2. 設定目錄

  • freeglut.dll複製到專案目錄
  • 圖片也移到專案目錄
  • 用notpad++開今天的專案檔 => 兩個working_dir改成"." => 存檔
  • Reload

3. glm

  • 準備檔案source.zip(glm.h,glm.c改cpp,transformation.c)
  • 準備模型gundam還沒切開.zip(Gundam.obj,Gundam.mtl,Diffuse.jpg)
  • 加入程式(專案中add glm.cpp)
  • 用notepad++開transformation.c複製程式碼
    • #include "glm.h"
    • GLModel * pmodel = NULL
    • 複製drawmodel()函式
    • 改glmReadOBJ("檔名")跟改右邊的glmDraw(...| GLM_TEXTURE)
    • 在display()裡叫drawmodel()
    • 最後變成:
#include "glm.h"
GLMmodel * pmodel = NULL;
void
drawmodel(void)
{
    if (!pmodel) {
pmodel = glmReadOBJ("Gundam.obj");
if (!pmodel) exit(0);
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90.0);
    }
    glmDraw(pmodel, GLM_SMOOTH | GLM_TEXTURE);
}

  • 把茶壺註解掉 

                                執行:

                            • 垂直旋轉disffuse.jpg
                            • 再執行一次

                            4. 旋轉

                            • 整體旋轉
                              • glPushMatrix(); glRotatef(角度,0,1,0);glPopMatrix();

                                執行結果: 


                            5. TRT

                            • 加入模型
                            • 把 GLMmodel * body = NULL 等都加上指標

                            glmReadOBJ() , glmDraw  >>>>>>>>>> To Be Continue

                            沒有留言:

                            張貼留言

                            距地表面160 Week11

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