線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2036
推到 Plurk!
推到 Facebook!

obj檔案無法讀取顯示

缺席
5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-24 21:00:32 IP:140.134.xxx.xxx 訂閱
我把將要讀取的obj檔案資料寫入程式裡
並用opengl顯示出來
但是很奇怪的是無法一開啟時就指定讀取所要的檔案
希望各位能幫我查查哪邊出問題了!!

[code cpp]
void __fastcall TForm1::GLPanel1Setup(TObject *Sender)
{
ListBox1->ItemIndex=1;
GLMmodel *glm_model;
filename = ListBox1->Items->Strings[ListBox1->ItemIndex];
filename = "data/" filename ".obj";
glm_model= glmReadOBJ( filename.c_str() );
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 );
GLfloat light_position0[]={0,0,3, 1.0};
GLfloat light_position1[]={0,3,0, 1.0};
GLfloat light_position2[]={3,0,0, 1.0};
GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 1.0};
GLfloat mat_diffuse[] = {1.0, 1.0, 1.0, 1.0};
glLightfv(GL_LIGHT0, GL_POSITION, light_position0);
glLightfv(GL_LIGHT1, GL_POSITION, light_position1);
glLightfv(GL_LIGHT2, GL_POSITION, light_position2);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT2, GL_DIFFUSE, light_diffuse);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_AUTO_NORMAL);
glShadeModel(GL_SMOOTH);
glClearDepth(1.0f); // Depth Buffer Setup
glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculations
glClearColor(0.0, 0.0, 0.0, 0.0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
GLPanel1->Repaint();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GLPanel1Render(TObject *Sender)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0,1.0,0.1,10000.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0 GL1_Look_Dist*cos(GL1_Look_angle1)*sin(GL1_Look_angle2),
0-1.0*GL1_Look_Dist*cos(GL1_Look_angle1)*cos(GL1_Look_angle2),
0 GL1_Look_Dist*sin(GL1_Look_angle1),
0,0,0,
0.0, 0.0, 1.0);
if( ObjChange )
Load_Obj();
glCallList( list_id );
GLPanel1->SwapBuffers();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void Load_Obj()
{
GLMmodel *glm_model;
filename = Form1->ListBox1->Items->Strings[Form1->ListBox1->ItemIndex];
filename = "data/" filename ".obj";
glm_model= glmReadOBJ( filename.c_str() );
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 );
ObjChange = false;
}
//---------------------------------------------------------------------------
[/code]
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-25 09:54:11 IP:118.169.xxx.xxx 訂閱
可先用FileExists判斷檔案是否存在
5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-25 10:26:49 IP:140.134.xxx.xxx 訂閱
檔案是存在的~
但是一定要放置其他相同的檔案才可以執行
而且如果可以執行~~也只會跑出白白的一片!!但仔細看他還是3D的圖案
並出現無效的浮點運算
編輯記錄
5515531 重新編輯於 2009-02-25 10:38:24, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-25 11:25:10 IP:118.169.xxx.xxx 訂閱
還記得之前的問題嗎?
http://delphi.ktop.com.tw/board.php?cid=168&fid=914&tid=97158
路徑應該用雙反斜線表示\\

filename = "data/" filename ".obj";

所以說用
if (FileExists(file)){
//
}
來檢查


5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-02-25 11:49:03 IP:140.134.xxx.xxx 訂閱
恩恩~~我剛剛嘗試了一下~~
檔案是存在的~~
但還是會跑出無效的浮點數運算的視窗
然後就跑出白色的立體圖出來~~
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-02-25 11:50:54 IP:118.169.xxx.xxx 訂閱
會下斷點除錯嗎?
到哪一行出錯?
5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-02-25 12:57:52 IP:140.134.xxx.xxx 訂閱
不會下段點除錯~~
也沒有發生甚麼錯誤~~
但就是沒有辦法出現所需要的圖
只會彈出視窗顯示~無效的浮點數運算
系統時間:2024-04-16 14:09:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!