Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Simppeli 3D-formaatti

Heikki [22.12.2005 20:47:57]

#

Olen rakennellu jonkinlaista 3D-moottoria itselleni ja samalla opetellut 3D-ohjelmointia. Nyt olen sellaisessa tilanteessa, että nykyinen "3D-formaattini" ei oikein riitä. Nykyisessä formaatissani kirjoitan käsin tekstitiedostoon jokaisen kolmion koordinaatit, tekstuurin koordinaatit ja tekstuurin tunnistenumeron (lataan erikseen sitten tekstuurit koodista käsin), eli muodossa:

tekstuurin_x tekstuurin_y x y z tekstuuri

Tuollaisia rivejä on siis jokaiselle kolmion kärkipisteelle omansa eli yhteensä 3/kolmio. Näiden kirjoittelu käsin on jo suhteellisen ikävää puuhaa, etenkin kun nyt tarvitsisin hieman tarkempia malleja (vrt. nykyiset jättimäiset kolmioni).

Koska tämä oma formaattini ei enää oikein kelpaa, aloin miettimään jonkin "oikean" formaatin tuen kirjoittamista. Pieni googlettelu kuitenkin paljasti että ovat aika pirun monimutkaisia nuo oikeat formaatit. Nyt haluaisin joitain vinkkejä jostain helposti ladattavista formaateista, joihin pystyisi Blenderillä tallentamaan. Vaatimuksena olisi lähinnä vain nuo omassanikin formaatissani esiintyvät asiat (tekstuuri ja sijainti) ja että tallennus olisi kolmioina. Blenderin RAW-muotoa katselin, mutta siinä ei ole tekstuuritietoja.

Kielenä on C++ ja graffapuoli OpenGL+SDL (porttautuu!), vaikkei se tässä paljoakaan vaikuta.

Juice [22.12.2005 22:05:02]

#

En ole mikään 3d-guru (blenderillä jonkinnäköisen patsaan saan aikaan), eikä blender ole ulottuvillani juuri nyt, eli en voi tarkistaa, tukeeko blender tätä, mutta OBJ-muoto ei vaikuta ylivaikealta:
http://www.dcs.ed.ac.uk/home/mxr/gfx/3d/OBJ.spec

Metabolix [22.12.2005 22:07:19]

#

Samanlaisia ongelmia minullakin. Tähän mennessä en ole teksturointia käyttänyt, joten RAW on riittänyt. Mutkikkaampana muotona iskin silmäni Cal3D-formaattiin (Blenderistä löytyy). Valintaperusteina tekstimuotoisuus, skeletonien ja tekstuurien tuki sekä polygonien kolmionmuotoisuus. Pitää vain nuo quaternionit opetella, että saa skeletonit hyödynnettyä. Päädyin sellaiseen ideaan, että parsin nuo PHP-skriptillä. Jokin XML-parseri on varmasti kova sana. Ajatuksenani on siis käyttää varsinaisesti omaa formaattia, josta on turhat ominaisuudet karsittu, ja tehdä muille formaateille lähinnä konverttereita.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta