2024年4月1日 星期一

阿奕學圖學

 #下載上課範例

jsyeh.org/3dcg10   

下載soure data win32

研究data目錄

1.用Notepad++研究 soccerball.odj soccerball.mtl

2.解壓縮 windows.zip=>下載\windows\Transformation.exe

3.解壓縮data.zip=>下載\windows\data\一堆模型檔

4.啟動 Transformation.exe右上角 可切換3D模型


##研究/分析今天的檔案

OBJ裡,有3個重要的英文單字縮寫

-V代表Vertex頂點

-vn代表vertex normal和打光相關的頂點法向量

-f代表 面 face(會有人拚成 facet比較小的面)

-解釋:3dxMax 習慣叫 taiangles 三角形 執行時 快又有效率

-在 Maya等動畫軟體裡 習慣用face(有三角形 四邊形 五邊形

-#井號代表註解 是給人看得 不是給電腦看的

-其他:usemtl xxx使用materail xxx

-其他 :g xxx代表group xxx分群組用


##week07-0_sample

0.安裝 


##week07-1_obj_gundam

0.把source.zip 的glm.h 和glm.c解壓縮 再glm.c改glm.cpp

1.開啟檔案 把剛剛的檔案放進專案資料夾裡

2.把專案右鍵 Add把glm.cpp加入

3.把11行GLUT程式碼放入

4.把glm使用時 需要的3段程式碼

#include <opencv/highgui.h> ///使用 OpenCV 2.1 比較簡單, 只要用 High GUI 即可
#include <opencv/cv.h>
#include <GL/glut.h>
int myTexture(char * filename)
{
IplImage * img = cvLoadImage(filename); ///OpenCV讀圖
cvCvtColor(img,img, CV_BGR2RGB); ///OpenCV轉色彩 (需要cv.h)
glEnable(GL_TEXTURE_2D); ///1. 開啟貼圖功能
GLuint id; ///準備一個 unsigned int 整數, 叫 貼圖ID
glGenTextures(1, &id); /// 產生Generate 貼圖ID
glBindTexture(GL_TEXTURE_2D, id); ///綁定bind 貼圖ID
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); /// 貼圖參數, 超過包裝的範圖T, 就重覆貼圖
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); /// 貼圖參數, 超過包裝的範圖S, 就重覆貼圖
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); /// 貼圖參數, 放大時的內插, 用最近點
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); /// 貼圖參數, 縮小時的內插, 用最近點
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, img->imageData);


}

我放棄根本跟不上阿 ㄚㄚㄚㄚ ㄚㄚㄚ

沒有留言:

張貼留言