2019年4月12日 星期五

alanhc/張牧之 電腦圖學-week08


  1. 貼圖概念 / Concept
  2. 貼圖的手把手教學 / Step by step Turtorial









1.Concepts:



glTexCoord2f()





















 >小提示:打錯面會顯示不出來


小歷史:

SGI > 早期做圖形的電腦,現在已被其他公司收購
OpenCV  > intel 發起的 圖像處理、電腦視覺、圖形辨識函式庫
ipl (intel performance library)

GL_POLYGON為何會壞掉?

>黃色區域被填滿

2. 貼圖的step by step教學

(1) 下載opencv
(2) 寫helloworld!!!
(3) 綜合OpenCV與OpenGL
(4) 開始貼圖






(1) 下載 [opencv]

(2) 寫Helloworld!!!

新增貝殼(console)專案











但在開始之前...我們必須先了解

使用外部函式庫三步驟

1. include .h file
2. link       .lib檔
3. 執行     bin dll檔
因此我們要先設定一些東西


1. search include 
> opencv<版本>\include
search link
> opencv\lib
2.link cv210.lib、cxcore210.lib、highgui210.lib
3.執行dll
將要的照片丟入freeglut/bin裡
丟入程式[HelloWorld 程式碼],並且執行
大功告成~~~慶祝~~~

(3) 綜合OpenCV與OpenGL

(1)匯入OpenCV(請參考前面段落2的Helloworld)
(2)10行GLUT程式,並加入OpenCV的Helloworld裡的程式[HelloWorld 程式碼]
(3)執行小慶祝~

(4) 開始貼圖

Quick start > 改寫 [ 小葉程式碼 ]
1.改myInit()裡的
id = myTexture("image.png");
裡面 image.png 改成你在freeglut\bin裡面放的圖片位置
> 裡面的myTexture()函式,是在處理貼圖的程式
參數:檔案的名子
IplImage的ipl就是前面提到的 Intel Performance Library
程式碼就改寫自小葉程式碼 11~17行 及 貼圖檔名
glPushMatrix();///利用matrix可以轉
//glRotatef(0, 1,0,0);
glRotatef(angle, 0,1,0);///自動轉很帥
///gluQuadricTexture(quad, 1);
glutSolidTeapot( 0.5 );
///gluSphere(quad, 1, 30, 30);///glutSolidTeapot(0.3);
glPopMatrix();///

地球會轉,很帥XDDD。茶壺會轉,也很帥XDDD
glm (OpenGL Mathematics),其實就是一個數學的函式庫



沒有留言:

張貼留言