View previous topic :: View next topic |
Author |
Message |
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Sun Feb 17, 2008 6:05 pm Post subject: 3D Modeļu ieladēšana |
|
Sveiki, tātad man ir dots jauns uzdevums .
Man vajag uztaisīt 3D modeļu apskatītāju (3D Model Viewer) , ar OpenGL scēnu jau visus darbus esmu padarījis, tikai man bija aizmirsies kā ielādēt modeļus uz scēnas. Metiet, lūdzu, visus iespējamos linkus, kur ir aprakstīt kā iemest 3D modeli uz scēnas (visus iespējamos formātos)
Vienkārši mums rādija kā ielādēt MD3 un DFX modeļu tipus, bet aizmirsu to progu iemest sev uz e-pastu.
Ā, un vēl formātu saraksts kurš man interesētu
.MD3
.MD2
.MD5
.OBJ
.MDL
.3DS
Un protams ja atradīsiet vairāk būšu par 1 cepumu parādā :)
P.s - Vēlams Delphi valodā ! ! ! |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Feb 17, 2008 6:14 pm Post subject: |
|
Valoda jau principā nav svarīga - visās normālās valodās var gan nolasīt datus no faila (floatus/intus/...), gan arī veidot masīvus, kas ir parasti vajadzīgs. Vajag tikai izlasīt kādā formātā modelis tiek glabāts failā un uzrakstīt nedaudz koda, as ielādēs šo modeli tā, kā vien tavams engīnam vai aplikācijai ir vajadzīgs.
Atliek vienīgi atvērt http://www.google.com/ un ierakstīt atbilstošos kverijus, lai atrastu modeļu formātu aprakstu:
md3 format
md2 format
md5 format
obj format
mdl format
3ds format
Tas nepavisam nav grūti - atvērt gūgli. Tici man.
Ja gribi jau gatavu delphi kodu, tad raksti apmēram šādus kverijus: "md3 model load delphi" |
|
Back to top |
|
|
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Mon Feb 25, 2008 7:02 pm Post subject: |
|
Ok, es vēlējos uztaisīt SpeedButtonus, lai varētu ielādēt katru modeli atsevišķi, tātad pieliku Dialogus un pārveidoju nedaudz to kodu
Code: |
Model:=T3DModel.Create; // Instance of T3DModel
Model.LoadFromFile(3DSDialog.Filename); // Load the 3DS file
|
Viss Unit1.pas nokompilējas, bet Units3DS (tas units kur aprakstīts ka ielādēt 3DS failu) notika savāda klūda
Code: |
glBindTexture(GL_TEXTURE_2D, FGenTexture);
glDeleteTextures(1, FMaterial.FGenTexture);
|
Nu šīs rindiņas protams nav kopā (viena pēc otras) ierakstīta.
Un kļūda kapēc nekompilējas Units3DS ir
[Pascal Error] Unit3DS.pas(638): E2003 Undeclared identifier: 'glBindTextures'
[Pascal Error] Unit3DS.pas(675): E2003 Undeclared identifier: 'glDeleteTextures'
Kāda velna pēc vinš nesaprot parastās gl komandas? OpenGL pie uses ir pierakstītas pārbaudīju 3 reizes... jau 4 uz laimi :D
Help plzzz, kā vienmēs 1 cepums |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Feb 25, 2008 8:14 pm Post subject: |
|
Iespējams es dabūjis līku OpenGL failu, kurā nav attiecīgās fjas, vai arī tās ir nosauktas savādāk (bez gl prefiksa). Cita hipotēze - nepareizā vietā to uses esi uzrakstījis. |
|
Back to top |
|
|
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Mon Feb 25, 2008 9:08 pm Post subject: |
|
EDIT:
Atradu vecu (85-96 gada) GL.pas failu vismaz tajā bija glBindTexture un glDeleteTexture
Tagad kļūda izmainījās
Code: |
glDeleteTextures(1, FMaterial.FGenTexture);
|
[Pascal Error] Unit3DS.pas(675): E2010 Incompatible types: 'PGLuint' and 'Cardinal' |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Feb 25, 2008 10:09 pm Post subject: |
|
Atrodi lūdzams, kādu OpenGL tutoriāli priekš Delphiem, nevis katru sintaktisko kļūdu tagad te postēsi.
Tev tur problēma tāda, ka glDeleteTextures otrajā parametrā sagaida adresi uz mainīgo, nevis paša mainīgā vērtību. Lieto adreses operatoru @ lai dabūtu mainīgā adresi.
Cik atceros no senajiem laikiem, kad vēl Delphi programmēju, tad labākie OpenGL headeri bija šie:
http://www.delphi3d.net/dot/index.htm
vai http://www.delphigl.com/download.php?cat=5
Nezinu gan tik vai tagad varbūt ir kāds labāks uzradies.. |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Tue Feb 26, 2008 8:38 am Post subject: Re: 3D Modeļu ieladēšana |
|
^suny^ wrote: | Sveiki, tātad man ir dots jauns uzdevums .
|
Ja nav nosleepums, kas tev to uzdevumu uzdod? O_o _________________ Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552 |
|
Back to top |
|
|
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Tue Feb 26, 2008 5:03 pm Post subject: |
|
Storm:
Es staigāju uz OpenGL kursiem un man skolotājs uzdeva uztaisīt #D modeļu vieweru, es jau visas scēnas un UI uztaisīju vajag tikai ielādēt modeļus.. UN visu laiku parādas aizvien jaunākas kļūdas un fascinējošas tagad man vinsh nesaprot ko nozīme Panel2.Width un pie uses nesaprot vārdu Controls...
Tad nu es un nezinu ko darīt, jo TIK jautri man vēl nebija klājies |
|
Back to top |
|
|
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Tue Feb 26, 2008 7:38 pm Post subject: |
|
bubu wrote: | Iespējams es dabūjis līku OpenGL failu, kurā nav attiecīgās fjas, vai arī tās ir nosauktas savādāk (bez gl prefiksa). |
bubu:
Atsūti lūdzu man savu OpenGL.pas failu, jo es paskatījos iekšā tajā faila un man tur nebija to divi man vajadzīgo komponentu, ja liek vecās opengl bibliotēkas tad tipi nesakrīt GLenum un PCardinal ... meklēju jau pašu ajunāko, bet atrast nevaru un tie linki kurus tu man devi arī nepalīdzēja |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Tue Feb 26, 2008 9:06 pm Post subject: |
|
Man nav nekāda OpenGL.pas faila :D Es Delphi sen jau neprogrammēju (gadus 4-5).
Tajos linkos, kurus devu ir 100% strādājoši OpenGL headeri. |
|
Back to top |
|
|
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Wed Feb 27, 2008 7:16 pm Post subject: |
|
OK, biju atradis to Undeclared cēloni, jau izlaboju
Viss nokompilējas, bet pēkšņi atveras logs "Debugger Notification" un tur klūda Read access 0000000 read access 00000000 un kaut kas tur vēl un ja es savā progā kaut ko nospiežu (kaut vai uz formas) man proga izslēdzas.
Kādi varētu būt cēloņi?
P.s saprotu ka jau esmu apnicis, bet... |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Wed Feb 27, 2008 7:30 pm Post subject: |
|
Cēlonis ir tikai viens - līks kods. Laid programmu debugerī un skaties, kurā rindiņā debugeris saka, ka kods krašo. |
|
Back to top |
|
|
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Wed Feb 27, 2008 8:42 pm Post subject: |
|
Rādija uz
Tagad rāda kļūdu
[Pascal Fatal Error] F2039 Could not create output file 'C:\Documents and Settings\Edgars\My Documents\md3view\MD3App.exe' |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Wed Feb 27, 2008 9:28 pm Post subject: |
|
Vai tik nepaskatījies uz call-steka augšējo galu, kurā Application.Run atroda. Vajadzēja uz otru galu skatīties - pašu apakšu.
Par to kļūdu - visdrīzāk jau tas MD3App.exe fails ir palaists, tāpēc tam virsū nevar uzrakstīt jaunu. Paskaties task managerī un nokillo esošo, ja nav vajadzīgs. |
|
Back to top |
|
|
^suny^
Joined: 30 Nov 2007 Posts: 57
|
Posted: Wed Feb 27, 2008 9:56 pm Post subject: |
|
Jā, tik tiešām Task Manadžerī bija MD3App.exe kuru es arī nokiloju, bet problēma aizvien paliek.
Rāda to pašu Access violation of adress 00000000.Read of adress 00000000.
Debuggers neko nerāda. |
|
Back to top |
|
|
|