討論區快速選單
知識庫快速選單
討論區最近新進100則主題 開發App該選哪個平台? 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
glut 教學 - 使用 OBJ 立體模型
更改我的閱讀文章字型大小
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 02:50:29
在上一次教學, 我們利用 glut 內建的函式繪圖了一個 茶壺, 並為之打燈,

但是, 只有茶壺是不足夠吧. 我們需要更豐富的立體模型. 而 立體模型 的設計, 與編程的關係並不是十分大, 反而, 要設計 立體模型, 除了需要專業的 立體模型設計軟體 ( 例如 3D Max 或 Maya ), 更重要的, 是需要你的美工 ( 噢... 美工... ).

立體模型設計完畢後, 你會把它儲存成 立體模型 的檔案, 好像圖檔一般, 我們有很多很多已經成熟 立體模型 的檔案格式, 例如, WaveFront 的 OBJ 檔, DirectX 的 X 檔, VRML 的 WRI 檔, OpenGL 的 .c 檔 ... ... 我們只要能正確的應用其中一個就可以了.

而我最常用的, 就是 WaveFront 的 OBJ 檔, 因此, 我也就介紹它的應用吧.

好, 我們去秀 OBJ 檔 吧.
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 02:56:00
讀取 OBJ 檔, 其實是一件頗煩瑣 ( 注意, 是煩瑣, 並不是困難 ). 為了簡化這個煩瑣的工序, 我們應用別人已經寫好的函式吧.

在 http://www.xmission.com/~nate/smooth.html 之內, 有一個 link
http://www.xmission.com/~nate/smooth/smooth.zip

這個 zip 之內, 有兩個檔案, glm.h 和 glm.c, 把它解壓出來到你的專案資料夾, 然後把 glm.c 更名成 glm.cpp, 然後把 glm.h 和 glm.cpp 都加到你的專案.
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 03:00:33
/////////////////////////
// glutTest08.cpp
//
// Created by Gary Ho, ma_hty@hotmail.com, 2005
//


#include <stdio.h>
#include <math.h>

#include "glut.h"

#include "glm.h"

#define G_PI 3.14159265358979323846f

void prepare_lighting();
void display();
void keyboard(unsigned char key, int x, int y);

float theta, phi;

GLuint list_id;

void main()
{
  theta = G_PI/2;
  phi = -G_PI/2;

  glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGB );
  glutInitWindowSize( 640, 640 );
  glutCreateWindow( "glutTest08" );

  glutDisplayFunc(display);
  glutKeyboardFunc( keyboard );

  {
    GLMmodel *glm_model;
     glm_model= glmReadOBJ( "castle.obj" );
     glmUnitize( glm_model );
     glmScale( glm_model, .1 );
     glmFacetNormals( glm_model );
     glmVertexNormals( glm_model, 90 );

     list_id = glmList( glm_model, GLM_MATERIAL | GLM_SMOOTH );

     glmDelete( glm_model );
  }

  prepare_lighting();

  glutMainLoop();
}

void keyboard(unsigned char key, int x, int y)
{
  switch( key )
  {
    case 'w':
     theta -= .05;
     prepare_lighting();
     glutPostRedisplay();
    break;

    case 's':
     theta += .05;
     prepare_lighting();
     glutPostRedisplay();
    break;

    case 'a':
     phi -= .05;
     prepare_lighting();
     glutPostRedisplay();
    break;

    case 'd':
     phi += .05;
     prepare_lighting();
     glutPostRedisplay();
    break;
  };
}


void display()
{
  glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

    glMatrixMode(GL_PROJECTION);
     glLoadIdentity();
     gluPerspective( 20, 1, 0.1, 10 );

    glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
     gluLookAt(
     0,0,1,
     0,0,0,
     0,1,0 );

    glEnable( GL_LIGHTING );
    glEnable( GL_DEPTH_TEST );
    
    glCallList( list_id );

  glutSwapBuffers();
}

void prepare_lighting()
{
  theta = fmodf( theta, 2*G_PI );
  phi = fmodf( phi, 2*G_PI );

  float light_diffuse[4] = {1.0, 1.0, 1.0, 1.0};
  float mat_diffuse[4] = {1.0, 1.0, 1.0, 1.0};
  float light_position[4] = { sinf(theta) * cosf(phi), cosf(theta), -sinf(theta) * sinf(phi), 0 };

  //glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
  glLightfv(GL_LIGHT0, GL_POSITION, light_position);
  glEnable( GL_LIGHT0 );
}
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 03:02:18
glutTest08.cpp 其實跟上一次教學差不多是完全一樣的, 分別只是, 上一次我們畫 glut茶壺, 而這次, 我們先利用 glm.cpp 準備出一條 display list ( list_id ), 然後應用 glCallList( list_id ) 把它畫出來.
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 03:04:09
應用 glm.cpp 去準備 display list 的部份

  {
    GLMmodel *glm_model;
     glm_model= glmReadOBJ( "castle.obj" );
     glmUnitize( glm_model );
     glmScale( glm_model, .1 );
     glmFacetNormals( glm_model );
     glmVertexNormals( glm_model, 90 );

     list_id = glmList( glm_model, GLM_MATERIAL | GLM_SMOOTH );

     glmDelete( glm_model );
  }
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 03:05:11
繪畫 display list 的部份

void display()
{
    //...
    glCallList( list_id );
    //...
}
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 03:11:30
OBJ 檔的檔案格式, 我暫不詳細交代, 但是, 有一事必需提醒你的, 構成一個完整的 OBJ 立體模型, 除了 .obj 檔, 你還有可能需要一些 .mtl 檔 和 一些圖檔. 因此, 如果你想應用 .obj 檔, 你需要額外的注意會否忘記了這些附加的檔案.
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 03:14:53
上面的程式, 會在你的專案資料夾, 讀取一個叫 castle.obj 的 obj 檔, 你可以在上文說及的 smooth.zip 之內的 data 資料夾, 找到 castle.obj 和 castle.mtl.

請緊記, castle 這個 立體模型, 需要兩個檔案, 分別是 castle.obj 和 castle.mtl.
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/9 下午 03:20:01
就如先前的教學一般, 讀者們, 你, 辛苦的把教學看完之後, 到底得到什麼呢?
就是... 一份功課...

smooth.zip 的 data 資料夾內, 有很多 .obj 檔, 試試不要繪畫 castle.obj, 改為繪畫其他呀. 還有, .obj 檔, 其實是頗多人應用的立體模型檔案格式, 這也意味著你可以在網上找到好些 .obj 檔.

( 當然, 最實在的, 還是自己會用 3D Max 或 Maya 去畫立體模型 )
作者 : assam5035(小嫩嫩)
[ 貼文 46 | 人氣 7649 | 評價 10 | 評價/貼文 0.22 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/7 上午 02:32:00
請問一下
我compile之後0 erreo
可是build之後
就出現
Linking...
glutTest08.obj : error LNK2001: unresolved external symbol "void __cdecl glmDelete(struct _GLMmodel *)" (?glmDelete@@YAXPAU_GLMmodel@@@Z)
glutTest08.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl glmList(struct _GLMmodel *,unsigned int)" (?glmList@@YAIPAU_GLMmodel@@I@Z)
glutTest08.obj : error LNK2001: unresolved external symbol "void __cdecl glmVertexNormals(struct _GLMmodel *,float)" (?glmVertexNormals@@YAXPAU_GLMmodel@@M@Z)
glutTest08.obj : error LNK2001: unresolved external symbol "void __cdecl glmFacetNormals(struct _GLMmodel *)" (?glmFacetNormals@@YAXPAU_GLMmodel@@@Z)
glutTest08.obj : error LNK2001: unresolved external symbol "void __cdecl glmScale(struct _GLMmodel *,float)" (?glmScale@@YAXPAU_GLMmodel@@M@Z)
glutTest08.obj : error LNK2001: unresolved external symbol "float __cdecl glmUnitize(struct _GLMmodel *)" (?glmUnitize@@YAMPAU_GLMmodel@@@Z)
glutTest08.obj : error LNK2001: unresolved external symbol "struct _GLMmodel * __cdecl glmReadOBJ(char *)" (?glmReadOBJ@@YAPAU_GLMmodel@@PAD@Z)
Debug/glutTest08.exe : fatal error LNK1120: 7 unresolved externals
Error executing link.exe.
glutTest08.exe - 8 error(s), 0 warning(s)



我是新手 假如問的問題不夠水準
請多多包含!!
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/7 下午 06:06:59
在 http://www.xmission.com/~nate/smooth.html 之內, 有一個 link
http://www.xmission.com/~nate/smooth/smooth.zip

這個 zip 之內, 有兩個檔案, glm.h 和 glm.c, 把它解壓出來到你的專案資料夾, 然後把 glm.c 更名成 glm.cpp, 然後把 glm.h 和 glm.cpp 都加到你的專案.
作者 : assam5035(小嫩嫩)
[ 貼文 46 | 人氣 7649 | 評價 10 | 評價/貼文 0.22 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/7 下午 07:01:37
謝謝 你的回應
我已經試成功了!!
原來我問題出在那邊
真是謝謝了!!!

作者 : assam5035(小嫩嫩)
[ 貼文 46 | 人氣 7649 | 評價 10 | 評價/貼文 0.22 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/15 上午 01:18:59
請問一下
你使用的参數有哪些是從glm.cpp來的
因為我不太懂Display list的用法
可以的話請指導一下
謝謝
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/15 上午 03:48:45
所謂 display list, 實質上只是 OpenGL 順序的指令記錄而已, 這個沒什麼特別的, 但是對於簡化程式, 有很大的幫助的, 因為只要把 立體模型資料 錄制成 display list 後, 用一句 glCallList() 就可以把 立體模型 晝出來.

display list 只要錄制一次就可以了, 所以錄制 display list 一般會放在程式開頭完成.
作者 : assam5035(小嫩嫩)
[ 貼文 46 | 人氣 7649 | 評價 10 | 評價/貼文 0.22 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/18 下午 10:22:14
那再問一下
假如現在有2個OBJ檔
要如何才可以同時開啟
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/19 上午 04:43:56
先試試看吧, 試也沒有試過, 我甚麼解釋也是多餘的.
作者 : assam5035(小嫩嫩)
[ 貼文 46 | 人氣 7649 | 評價 10 | 評價/貼文 0.22 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/22 上午 10:20:48
請問
我如果要讀2個OBJ 是這樣寫嗎
因為執行之後還是只有一個圖@@!



void main()
{
  theta = G_PI/2;
  phi = -G_PI/2;

  glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGB );
  glutInitWindowSize( 640, 640 );
  glutCreateWindow( "glutTest08" );

  glutDisplayFunc(display);
  glutKeyboardFunc( keyboard );

  {
    
GLMmodel *glm_model[10];

for(int i = 0;i < 10;i++)
{
glm_model[i] = 0;
}

     glm_model[0]= glmReadOBJ( "m113_new_s.obj" );
     glmUnitize( glm_model[0] );
     glmScale( glm_model[0], .1 );
     glmFacetNormals( glm_model[0] );
     glmVertexNormals( glm_model[0], 90 );
     list_id = glmList( glm_model[0], GLM_MATERIAL | GLM_SMOOTH );
     glmDelete( glm_model[0] );


glm_model[1]= glmReadOBJ( "road2x2.obj" );
     glmUnitize( glm_model[1] );
     glmScale( glm_model[1],.1 );
     glmFacetNormals( glm_model[1] );
     glmVertexNormals( glm_model[1], 90 );
     list_id = glmList( glm_model[1], GLM_MATERIAL | GLM_SMOOTH );
     glmDelete( glm_model[1] );
  }

  prepare_lighting();

  glutMainLoop();
}
作者 : migilin(^0^)
[ 貼文 4 | 人氣 938 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/1/5 下午 10:52:59
讀obj檔,一定要加入glm.h和glm.cpp嗎,opengl有函式可以直接載入的嗎?
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/1/6 上午 10:28:46
OpenGL 的函式, 只對應 3D 繪圖所必需的, 這也是廣受歡迎的主要因素之一. 也就是說... 沒有讀取 個別立體模型檔案格式 的功能.
作者 : assam5035(小嫩嫩)
[ 貼文 46 | 人氣 7649 | 評價 10 | 評價/貼文 0.22 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/1/9 下午 12:51:28
請問站長
我照站長的作法 可以讓BMP圖檔移動
那OBJ檔也可以用按鍵控制移動嗎
因為OBJ檔內容是 點的格式 好像是固定的
不曉得行不行
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/1/9 下午 03:59:01
控制 立體模型 的整體活動, 比起平面圖像的移動變化要多很多, 立體模型 在三維空間 最基本可以作 平移 旋轉 和 扭曲, 還要加上 視點 和 視角 的考慮. 上述的 五項, 都可以獨立的控制.

但是, 我想你大概是想要 立體模型 的局部活動, 這個, 比起 整體活動 就更複雜了, 並不是三言兩語可以解釋清楚, 關於 立體模型 的局部活動, 我們都統稱做 Vertex Skinning. 在網上找找看吧, 你會找出很多相關的資料.

也許... 遲一點我會發表一點 Vertex Skinning 的範例的. ^^"
作者 : assam5035(小嫩嫩)
[ 貼文 46 | 人氣 7649 | 評價 10 | 評價/貼文 0.22 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/3/20 下午 02:49:11
那如果畫出兩個OBJ的圖之後
想要考慮到碰撞ㄟ
要怎麼處理
如果有例題教學更好了
先謝謝了
作者 : teufel(小咖)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/6/16 下午 06:51:28
請問一下,用3DS MAX 7輸出OBJ檔時要怎麼設定才能用GLM讀呢?

我讀範例的OBJ沒問題,讀Maya輸出的OBJ也可以,但讀3DS輸出的OBJ會出現錯誤說:

File: dbgheap.c
Line: 1138

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

不過只要把glmVertexNormals拿掉就可以執行,但還是畫不出任何東西.

謝謝.
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/6/16 下午 07:18:08
給我一個 你用 3DS MAX 7 輸出的 OBJ檔 吧. 我替你看一下.
作者 : teufel(小咖)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/6/16 下午 07:58:39
我剛到這裡不久,不知道怎麼寄信,所以就上傳到網路空間了...

http://140.116.5.200/~f6491126/obj.zip

裡面就是很簡單的一個球而已> <

謝謝你的幫忙~
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/6/16 下午 08:37:07
OBJ 檔, 是純文字檔, 你可以用任何可以看文字檔的軟件去看它, 例如 Nodepad 和 Wordpad.

你給我的 OBJ檔, 它的 face index 全都是負數, 並不合乎 OBJ 的檔案格式, 我想, 應該是你的電腦的 3DS 的問題了, 3DS 我也有用, 也經常匯出 OBJ 檔, 從來也沒發生過這樣的情況... ...
作者 : ppdog(批批狗)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/6/23 下午 09:49:35
不好意思,請問一下,
我的 3DMax7 匯出成 obj 檔的時候,
也會產生 f 是負數的問題耶,
因為不想要直接用現成的 obj 檔,
所以想要畫好再 export obj 出來使用,
沒想到有負數的問題>"<
以下只是畫一個 box 測試而已,

我的匯出是用基本設定如圖: <a href="http://ppdog.twbbs.org/ppdog/pic/box.PNG">box.png</a>
產生的 obj 檔為: <a href="http://ppdog.twbbs.org/ppdog/box.obj">box.obj</a>

希望有經驗的人能指點一下問題所在
感激不盡 m(_ _)m
作者 : ppdog(批批狗)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/6/23 下午 10:14:06
自問自答@@"
把最下面的 Relative vertex 取消就變成正數了,
來試試看 load 進去 OpenGL 裡面看看^^
作者 : east(東東)
[ 貼文 7 | 人氣 2742 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/3/25 下午 08:33:44
首先先感謝你分享這麼多OBJ
但粉多obj都少了material(mtl)
若有可補分享ㄇ^^"
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/5/16 下午 02:09:35
一個小修正,

glm.h 內的 #include <GL/glut.h> 要改成為 #include "glut.h"

不然就會出現 "No such file or directory" 的問題.
作者 : afck3200(vince) 人氣指數超過10000點
[ 貼文 66 | 人氣 11310 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/6/28 上午 11:02:04


>但是, 我想你大概是想要 立體模型 的局部活動, 這個, 比起 整體活動 就更複雜了, 並不是三言兩語可以解釋清楚, 關於 立體模型 的局部活動, 我們都統稱做 Vertex Skinning. 在網上找找看吧, 你會找出很多相關的資料.
>
>也許... 遲一點我會發表一點 Vertex Skinning 的範例的. ^^'

-> http://www.pushwap.com.cn/X-Space/
作者 : mgs0329(Enix)
[ 貼文 1 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/21 下午 04:51:37
請問一下
我將自己的模型做好用Max8.0做輸出
再放到開板大大的程式去跑時~我的模型跑出來都是白色
但是他輸出的擋也有包含mtl~為何還是白的呢??
可否請有經驗大大們幫忙解答呢@@?
感恩
作者 : hoyo(小生工作室)
[ 貼文 16 | 人氣 100 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/28 上午 09:49:19
請問, 我加入glm.h & glm.cpp到專案後, 出現這樣的問題
Compiling...
glm.cpp
d:\work\jsn測試區\測試\影像測試\glm.cpp(1899) : fatal error C1010: unexpected end of file while looking for precompiled header directive

請問哪裡需要再設定嗎?謝謝...
作者 : hoyo(小生工作室)
[ 貼文 16 | 人氣 100 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/28 下午 01:46:32
關於上面的問題,我把程式碼整理成物件來使用,編譯時就沒有出現問題了...
另外一個問題是,將OBJ模型畫出來後, 要繼續花上其他物體時,顏色都變成灰色了
設定 glColor3ub(200, 50, 30); & glDisable(GL_TEXTURE_2D); 也都沒有效果,
請問這是怎麼回事呢?謝謝..
作者 : hoyo(小生工作室)
[ 貼文 16 | 人氣 100 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/6/1 上午 11:08:29
抱歉!我自己回答好了
今天發現了答案
(GL_COLOR_MATERIAL)被關閉了
重新打開就好了
glEnable(GL_COLOR_MATERIAL);

作者 : p1006851(企鵝)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/4/12 下午 10:34:31
白老鼠大最近想試試使用obj模型使用vc2008時在將glm.h與glm.cpp加入後,他編譯時都會寫glm.cpp錯誤,然後寫找不到free識別項,請問有辦法解決嗎,好想學呀><
作者 : sam7635(蔡小新)
[ 貼文 7 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/4/20 下午 05:52:13
你好~我最近再使用讀取obj的程式發現一個問題,不曉得是否有人跟我一樣.
我用相同的程式碼分別run在"XP"以及"win 7" 的 "BCB"之中....(可以肯定的是 glut都有正常運作,因為其他openGL指令都可以跑)
很巧的是,在這2個地方都沒辦法顯示出正常的顏色...
然後我將程式碼 移到別的電腦之中"XP+BCB"就可以正常的顯示出顏色
不曉得有沒有大大和我的情況一樣可以給一點指點呢?
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2142 | 人氣 89850 | 評價 10050 | 評價/貼文 4.69 | 送出評價 78 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/4/21 上午 12:25:14
構成一個完整的 OBJ 立體模型, 除了 .obj 檔, 你還有可能需要一些 .mtl 檔 和 一些圖檔.

可能是 .mtl 檔 路徑出錯了.
作者 : satanupup(神秘生物-熊)
[ 貼文 12 | 人氣 334 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/11/23 下午 05:46:30
白老鼠大最近想試試使用obj模型使用vc2008時在將glm.h與glm.cpp加入後,他編譯時都會寫glm.cpp錯誤,然後寫找不到free識別項,請問有辦法解決嗎,好想學呀><

這個問題在於opengl
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl\glut.h
C:\Program Files\Microsoft Visual Studio 10.0\VC\FreeGlut\include\GL\glut.h
兩個是不一樣的
把檔案比較大的glut覆蓋到另一個比較小的去吧
作者 : satanupup(神秘生物-熊)
[ 貼文 12 | 人氣 334 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/11/23 下午 05:46:34
白老鼠大最近想試試使用obj模型使用vc2008時在將glm.h與glm.cpp加入後,他編譯時都會寫glm.cpp錯誤,然後寫找不到free識別項,請問有辦法解決嗎,好想學呀><

這個問題在於opengl
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl\glut.h
C:\Program Files\Microsoft Visual Studio 10.0\VC\FreeGlut\include\GL\glut.h
兩個是不一樣的
把檔案比較大的glut覆蓋到另一個比較小的去吧
作者 : theoneoneonly(Leon)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/6/6 下午 09:23:10
你好,我是在Mac上去跑這程式

利用gcc compile過後出現以下敘述:

Undefined symbols:
  "_glmVertexNormals", referenced from:
     _main in ccg7Ye4P.o
  "_glmList", referenced from:
     _main in ccg7Ye4P.o
  "_glmScale", referenced from:
     _main in ccg7Ye4P.o
  "_glmUnitize", referenced from:
     _main in ccg7Ye4P.o
  "_glmFacetNormals", referenced from:
     _main in ccg7Ye4P.o
  "_glmDelete", referenced from:
     _main in ccg7Ye4P.o
  "_glmReadOBJ", referenced from:
     _main in ccg7Ye4P.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

可以請問大大是少設定了什麼嗎?謝謝
作者 : theoneoneonly(Leon)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/6/6 下午 09:23:37
你好,我是在Mac上去跑這程式

利用gcc compile過後出現以下敘述:

Undefined symbols:
  "_glmVertexNormals", referenced from:
     _main in ccg7Ye4P.o
  "_glmList", referenced from:
     _main in ccg7Ye4P.o
  "_glmScale", referenced from:
     _main in ccg7Ye4P.o
  "_glmUnitize", referenced from:
     _main in ccg7Ye4P.o
  "_glmFacetNormals", referenced from:
     _main in ccg7Ye4P.o
  "_glmDelete", referenced from:
     _main in ccg7Ye4P.o
  "_glmReadOBJ", referenced from:
     _main in ccg7Ye4P.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

可以請問大大是少設定了什麼嗎?謝謝
作者 : silenceplumes(幻翼星羽)
[ 貼文 11 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/5/1 下午 08:36:14
請問有辦法載入多個OBJ檔嗎?
可以煩請白老鼠大大幫忙舉個例子嗎
作者 : bjk(Up2u) 貼文超過1000則人氣指數超過50000點
[ 貼文 1047 | 人氣 64249 | 評價 730 | 評價/貼文 0.7 | 送出評價 196 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2016/2/4 下午 01:33:45
我把這個範例包裝成VC放在網路上
希望對後面的人有幫助

https://mega.nz/#!h1lDHbIC!CqWzmPL9ixwj7uQ4fZ3niJbFr3mbUrScP_cJXFNtbBI
作者 : bjk(Up2u) 貼文超過1000則人氣指數超過50000點
[ 貼文 1047 | 人氣 64249 | 評價 730 | 評價/貼文 0.7 | 送出評價 196 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2016/2/4 下午 03:58:15
更新

https://mega.nz/#!lwFwDIZK!tnYJhfC0-eDAWY8cIcCpG1vtmqKs-mN89s6SEwAj6cI
 板主 : 白老鼠(Gary)
 > OpenGL - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - OpenGL - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
OpenGL
1 白老鼠(Gary) 2710 
2 CROMAYEN2000 1530 
3 aming 500 
4 東昇 380 
5 PLAYER 120 
6 富伯 110 
7 qq 100 
8 NDark 80 
9 ozzy 60 
10 simula 60 
OpenGL
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.265625