顯示具有 04160232_呂哲昊 標籤的文章。 顯示所有文章
顯示具有 04160232_呂哲昊 標籤的文章。 顯示所有文章

2017年7月3日 星期一

Week18 邊緣人上課筆記

期末作品展示:
https://youtu.be/cBNR1pYCWw0

Week 08 邊緣人上課筆記

(1)期中考模擬考
glPushMatrix();///備份矩陣
  glTranslatef(x,y,z):///移動
  glaRotatef(angle,x,y,z):///轉動
  gl
(2)T-R-T轉動
(3)打光
(4)機器人
(5)回家作業

2017年6月12日 星期一

Week 17邊緣人上課筆記

(1)期末作品示範
(2)背景貼圖示範
(3)打光,貼圖切換
(4)讀檔內插示範
(5)學期總複習
(0)介紹今天的內容直播
(1)示範 myEarth.zip便背景
    freeglut 裝桌面\freeglut\include\lib\bin
    openCV 2.1裝C:\OpenCV2.1\include\lib\bin
    把display李///畫地球
   glBegin(GL_POLYGON):
      glTexCoord2f(0,0);glVertex3f(-1,+1,0);
      glTexCoord2f(1,0);glVertex3f(+1,+1,0);
      glTexCoord2f(1,1);glVertex3f(+1,-1,0);
      glTexCoord2f(0,1);glVertex3f(-1,-1,0);
   glEnd;

2017年6月5日 星期一

Week 16 邊緣人上課筆記

(1)內插公式
TODO:用Excel
A1:時間 角度
A2:0.0    O~=內插公式=A2*90000+(1-A2)*30000
      0.1    複製
      0.2     貼上
      .....
a*新+(1-a)*舊


TODO:用同學杯麵
04160391_robot解壓,裝freeglut,build
TODO:(1)內插公式&函式加入
             (2)Timer函式準備好



(2)存檔、讀檔

TODO:寫檔案
#include <stdio.h>
FILE* fout=NULL;//檔案指標
;在keyboard()中
if(key=='s'||key=='S')
{ if(fout==NULL)fout=fopen("file.txt","w+");
fprintf(fout,"%3f %3f %3f %3f %3f\n",angle[o].....


(3)利用Timer自動內插

(4)鍵盤+滑鼠
int now=0;
int oldX=0, oldY=0;
#include <stdio.h>
void keyboard(unsigned char key, int x, int y)///今天簡化修改
{
    printf("%c\n", key);
    if(key=='0') now=0;///今天簡化修改
    if(key=='1') now=1;///今天簡化修改
    if(key=='2') now=2;///今天簡化修改
    if(key=='3') now=3;///今天簡化修改
    if(key=='4') now=4;///今天簡化修改
    if(key=='5') now=5;///今天簡化修改
}
void mouse(int button, int state, int x, int y)///今天簡化修改
{
    oldX=x;///今天簡化修改
    oldY=y;///今天簡化修改
}
void motion(int x, int y)///今天簡化修改
{
    angle[now] += x-oldX;///今天簡化修改
    oldX=x;
    glutPostRedisplay();///今天簡化修改
}

2017年5月22日 星期一

Week 14邊緣人上課筆記

(1)上週回家作業
TODO:在s302把freeglut裝好
            把moodle的作業下載解
             開專案調設定
TODO:做出手隨身轉動
TODO:小考T-R-T觀念

* glPushMatrix();
        glRotatef(angle, 0,1,0);

        glPushMatrix(); ///body
            glTranslatef(0,0,0);
            glRotatef(180,0,1,0);
            glScalef(0.4,0.4,0.4);
            glmDraw(pmodel[0], GLM_SMOOTH | GLM_MATERIAL);
        glPopMatrix();

        glPushMatrix();///head
            glTranslatef(0,0,0);
            glRotatef(180,0,1,0);
            glRotatef(10,1,0,0);
            glTranslatef(0,0.65,0);
            glScalef(0.7,0.7,0.7);
            glmDraw(pmodel[1], GLM_SMOOTH | GLM_MATERIAL);
         glPopMatrix();///將頭手身體組合在一起轉動
glPopMatrix();

TODO:謝佩04160152-rb.zip
             計時器:在main()
             glutDisplayFunc(display);
             glutTimerFunc(0           ,timer,    0);
                                      等多久  叫誰  參數
             void timer(int t)///計時器叫的時候, 要做什麼呢?
      {      glutTimerFunc(0,timer,t+1);///先撥下一個鬧鐘
               angle++;
               glutPostRedisplay();///提醒電腦,有空要畫一下畫面哦
      }



(2)動起來

2017年5月15日 星期一

Week 13邊緣人上課筆記

(1)小考:T-R-T觀念
TODO:老師示範小考
           glPushMatrix();
                  glTranslatef(x,y,z)(3)在把樓下的會旋轉的腿,掛在(x,y,z)
                  glRotatef(angle,x,y,z)(2)對Z軸做旋轉angle角度
                  glTranslatef(x,y,z)(1)把旋轉中心點,放在畫面中間
                  drawArm();畫某物件
         glPopMatrix();


(2)上周範圍
(3)讀圖檔
TODO:讀圖檔,
用OpenCV 2.1
(1)安裝opencv-2.1.0-vs2008.exe

(2)確認C:\openCV2.1\include\opencv\很多.h檔
                                    \lib\很多lib檔
                                    \bin\很多dll檔

(3)新增貝殼專案file-New-Project,右上角console App





(4)設定貼圖


(5)轉動的地球
TODO:myEarth.zip.解壓縮
(1)   freeglut到c:\users\user\Desktop\freeglut
                                                            include
                                                            lib
                                                            bin

(2)myEarth專案黨開起來          
(3)F9執行image.jpg圖
                 freeglut.dll
                 要裝好OpenCV.可開圖
                 專案cbp
                  程式cpp


(6)回家最業:機器人

2017年5月8日 星期一

Week 12 邊緣人上課筆記

(1)3D TRT轉動
(2)矩陣頭影矩陣
(3)攝影機運鏡
(4)會動的機器人
TODO:jsyeh.org/3dcg10 download
data.zip->桌面\windows\data\模型.obj
windows.zip->桌面\windows\projection.exe
glut32.dll->桌面\windows\glut32.dll
TODO:
glutLookAt(eyeX,eyeY,eyeZ,
                   centerX,centerY,centerZ,
                   upX,upY,upZ);

TODO:04160011_hw1_projection.zip
改glutLookAt(......)
改eyeX
   eyeY
   eyeZ---->改攝影機拍攝的位置

centerX
centerY
centerZ,--->中心位置

改glutPerspective(fov      ,1          ,near,   far)'
                             視野角, xy比例
field of view(FOV)

glMatrixMode(GL_PROJECTION);--->改為透視矩陣
    glLoadIdentity();---->配合上方的透視矩陣
    gluPerspective(60, 1, 0.001, 10000);---->配合上方的透視矩陣
    glMatrixMode(GL_MODELVIEW);--->改為原來矩陣

glPushMatrix();
                    ///glTranslatef();掛上去
                    glTranslatef();定旋轉中心
                    glRotatef();旋轉


2017年5月1日 星期一

Week 11 邊緣人上課筆記

TODO:Google:3D Exploration(3D的檔案總管)
3D Exploration 1.81(橘色.免費試用版)
在S302安裝.
TODO:jsyeh.org/3dcg10有data.zip
     有3D模型可用.

ToDO:用3D Exploration開啟data.zip模型
TODO:匯出OpenGL Sample APP

File-Save AS.選Cpp Open Gl.....在某目錄存下來(桌面)
4.勾繪匯出Export Dialog 出現框框
5.看cpp檔Notepad++看
6.codeBlocks.File-New-Project.OpenGL專案偷天換日(把main.c移除換porsche.cpp)




(1)組合出機器人
1.myGLMsample.zip
2.data.zip
3.source.zip{glm.c
                      glm.h
                      transformation.c
4.freeglut.zip
(2)做出可轉動的關節
1.匯出obj檔(要按visible objects only)

2.generate material file
save vertex nomals
compact data全勾

3.if (!pmodel1) {
        pmodel1 = glmReadOBJ("data/dolphins1.obj");

        if (!pmodel1) exit(0);
        glmUnitize(pmodel1);
        glmFacetNormals(pmodel1);
        glmVertexNormals(pmodel1, 90.0);
        }

4.glPushMatrix();
            glTranslatef(0.5,0,0);
            glScalef(0.4,0.4,0.4);
            glmDraw(pmodel1,GLM_SMOOTH|GLM_MATERIAL);
        glPopMatrix();
        glPushMatrix();
            glTranslatef(-0.5,0,0);
            glScalef(0.4,0.4,0.4);
            glmDraw(pmodel2, GLM_SMOOTH | GLM_MATERIAL);
        glPopMatrix();

(3)錄製動作
(4)回家作業:機器人

2017年4月24日 星期一

Week 10 邊緣人上課筆記

(1)貼圖
(2)聲音
#include <mmsystem.h>///Multimedia System(多媒體系統)









void mouse(int button,int state,int x,int y)///Add a mouse Function
{
    PlaySound("C:\\Users\\user\\Desktop\\lesson32\\Lesson32/Data/shot.wav",NULL,SND_ASYNC);
}///copy this line ///要把檔名裡面的目錄裡面的斜線,從\ 變成(A)\\ OR (B)/

glutMouseFunc(mouse)///Add a mouse Function


(3)小遊戲
ToDo:玩遊戲,射擊
Google:NeHe Lesson 32
下載 Lesson最下面
Visual C++的範例
解壓縮桌面\Lesson32\lesson32.exe應用程式











ToDo:小鋼琴加入keyboard
void keyboard(unsigned char key,int x,int y)
{
    if(key=='1') PlaySound("do.wav",NULL,SND_ASYNC);
    if(key=='2') PlaySound("re.wav",NULL,SND_ASYNC);
    if(key=='3') PlaySound("mi.wav",NULL,SND_ASYNC);
    if(key=='4') PlaySound("fa.wav",NULL,SND_ASYNC);
    if(key=='5') PlaySound("so.wav",NULL,SND_ASYNC);
}
glutKeyboardFunc(keyboard);

#inlcude "CMP3_MCI.h"///(1)放在同一個程式碼專案目錄中
CMP3_MCI myMP3;///宣告一個變數,叫myMP3
myMP3.Load("C:\\Users\\user\\Desktop\\2017\\music.mp3");///讀取mp3檔案
myMP3.Play();///啟動檔案

2017年4月17日 星期一

Week 09 邊緣人上課筆記

(1)期中考試

(2)T-R-T 觀念測驗

(3)讀入3D模形
google:obj mtl youtube
可找到maya會出OBJ的方法

(4)老師的myGLMsample.zip解開
freeglut.zip->桌面\freeglut\include\lib\bin
TODO:jsyeh.org/3dcg10下載
☆source.zip(glm.h,glm.cpp)
windows.zip->桌面\windows\Transformation.exe
data.zip->桌面\windows\data\soccerball.obj
glut32.dll->桌面\windows\glut32.dll

(1)切換模型

(2)開啟soccerball.objmtl{v開頭 Vertex
      Notepad++ 按右鍵      vn開頭Vertex normal
                                           vt開頭Vertex texture coordinate
                                            f 開頭face(臉,面)
1.首先把myGLMsample檔案

2.開啟0416001-hw1.cbp

3.重新建立程式

4.       GLMmodel* pmodel = NULL;///一開始,沒有讀入模型,NULL



if (!pmodel) { ///一開始如果有指標,那要很小心,要讀入模型
        pmodel = glmReadOBJ("data/porsche.obj");///檔名拼字目錄要對
        if (!pmodel) exit(0);讀完還是沒有?太糟了,失敗就閃退
        glmUnitize(pmodel);
        glmFacetNormals(pmodel);
        glmVertexNormals(pmodel, 90.0);
        }如果沒有模型讀取模型

5.glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);一直讀取模型

6.#include <GL/glut.h>
#include "glm.h"
讀取GL檔

7.匯入模型到OBJ檔到時候能會進GL(export all)



2017年4月10日 星期一

Week 08 邊緣人筆記

(1)期中考模擬考
glPushMatrix();備份矩陣

  glTranslatef(x,y,z);移動

  glRotatef(angle,x,y,z);旋轉

  glScalef(x,y,z);縮放

glBegin(GL_POLYGON);///開始畫

  glColor3f(r,g,b);///顏色

  glNormal3f(nx,ny,nz);///法向量

  glTexCoord2f(tx,ty);///貼圖座標

  glVertex3f(x,y,z);///頂點

glEnd();///結束畫

glPopMatrix();///還原矩陣

(2)T-R-T轉動
(3)打光
照著之前的步驟:
1.首先下載freeglut

2.開啟glutproject

3.更改路徑到freeglut

4.run and bluit


5.打出
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPopMatrix();
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();


6.找尋light

宣告光源及打光的調整: glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);

    glMaterialfv(GL_FRONT, GL_AMBIENT,   mat_ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE,   mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR,  mat_specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, high_shinines

7.把light以上的程式碼都刪掉


8.run and bluit


9更改程式碼
const GLfloat light_position[] = { 2.0f, -5.0f, 0.0f, 0.0f };


10.float angle=0;
angle++;
宣告angle來跑出angle程式碼
11.旋轉程式碼:
glutIdleFunc(display);


(1)   glutSolidTeapot(大小);
        glutSolidCube(大小)->正方體

        glutSolidCone(底r,高h,slice,stack);->角錐
                                              柳丁切 堆疊
              
        glutSclaef(0.5,0.5,0.5);
        glutSolidDodecahedron();->烏龜殼

        glutSolidIcosahedron();->8角體


(4)機器人