Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Grafiikka C++ lla

Sivun loppuun

Jyri [05.11.2004 22:04:50]

#

Eli miten saisin luotua grafiikkaa C++ lla?
Kannattaako alkaa tehdä DirctX, OpenGL vai SDL llä?
Mistä löytäisi oppaita johonkin näistä?

Metabolix [05.11.2004 22:12:07]

#

SDL-asennusopas löytyy tuosta Opassivulta. Lisäksi siitä on runsaasti koodivinkkejä. Googlella löytyy kaikille ohjeita. DirectX:ään MSDN on riittänyt hyvin ainakin minulle. DirectX on hyvä ja tehokas, mutta voi olla aloittelijalle hankala, tai niin olen kuullut. Ei se minulle ongelmia tuottanut. OpenGL on sikäli parempi, että silla tehdyt ohjelmat voi portata muillekin kuin Windowsille, eikä se taida DirectX:lle hävitä juurikaan. SDL:ää väitetään hyväksi ja nopeaksi (en tiedo, en ole kokeillut) ja 2D-grafiikkaan se ainakin kelpaa mainiosti. Se on helppo ja yksinkertainen, ja sikäli kuin täällä Putkassa näkemäni koodit pitävät paikkansa, se opettaa huonoja ohjelmointitottumuksia ainakin siltä kannalta, että surfaceita ei tarvitse tuhota. Normaalistihan tästä seuraisi suuri muistivuoto.

Tiivistelmä: Käytä mitä haluat, mutta minä suosittelen DirectX:ää tai OpenGL:ää.

Deewiant [05.11.2004 22:39:27]

#

Itse käytän GLFW-frameworkia, joka on siis kätevä API jolla voi käyttää OpenGL:ää vähän helpommin.

http://glfw.sourceforge.net/

Edit: ainiin, ja fontteja varten FTGL:ää.

http://homepages.paradise.net.nz/henryj/code/

Edit 2: veljeni kompiloi kompiloimisyrityksistämme ohjeet, jos tarvitsee.

http://darkmark.zapto.org/~ftp/ftglinwin.html

stWasm1.0 [06.11.2004 14:22:58]

#

Jyri kirjoitti:

Eli miten saisin luotua grafiikkaa C++ lla?
Kannattaako alkaa tehdä DirctX, OpenGL vai SDL llä?
Mistä löytäisi oppaita johonkin näistä?

Riippuu siitä mihin takoitukseen haluat tehdä grafiikkaa.
Jos haluat tehdä pelejä, kannattaa opiskella DirectX'n.

Suosittelen seuraavaa kirjaa:
Andre LaMothe, INSIDE Peliohjelmointi, IT Press,
ISBN 951-826-193-8

firebug [06.11.2004 15:04:49]

#

stWasm1.0 kirjoitti:

Riippuu siitä mihin takoitukseen haluat tehdä grafiikkaa. Jos haluat tehdä pelejä, kannattaa opiskella DirectX'n.

Voisit kyllä vähän perustella väitettäsi. DirectX ja OpenGl sopivat molemmat pelinkehitykseen, vaikkakin DirectX sisältää paljon muuta verrattuna OpenGL:ään mm. musiikki- ja nettisysteemit.

Näiden kahden eroista on keskusteltu aiemminkin, joten en ala niitä tässä tarkemmin selvittelemään. Haulla löytyy lisää.

Edit: https://www.ohjelmointiputka.net/keskustelu/5752-directx-vai-opengl

Gwaur [06.11.2004 16:10:40]

#

DirectX:stä en tiedä, mutta omasta mielestäni OpenGL vaikuttaa helpommalta sikäli kun olen jonkinverran myös DirectX-ohjelmia tutkinut. Ja varsinkin kun OpenGL:llä pystyy piirtämään myös SDL:llä tehtyyn ikkunaan niin OpenGL-ohjelmista voi SDL:n kanssa saada portattavia ja koodista tulee paljon yksinkertaisempaa kun yli puolet ei ole ikkunan tekemistä ;)
(korjasin typon)

Lisäys: OpenGL:ssä ei ole mitään netti- tai musiikkitoimintoja tai muita ehkäpä siksi että se "GL" on lyhenne sanoista "Graphics Library" :P Eli se onkin juuri yksinomaan grafiikanpiirtoon suunniteltu.

Metabolix [06.11.2004 18:16:36]

#

OpenGL:n pariksi sopii varmaan hyvin OpenAL ääniä varten.
Kyllä se DirectX:kin on ihan helppoa, ja jos ei käytä SDL:ää, niin yhtä paljon sitä ikkunan luomista OpenGL:llekin tulee. Eikä sitä edes kovin hirveästi ole, se mahtuu tarvittaessa kolmelle riville. (1)täytetään WNDCLASS(EX)-struktuuri, (2)lähetetään se RegisterClass(Ex):lle ja (3)kutsutaan CreateWindow(Ex)-funktiota.

Deewiant [06.11.2004 20:19:34]

#

Metabolix kirjoitti:

...yhtä paljon sitä ikkunan luomista OpenGL:llekin tulee. Eikä sitä edes kovin hirveästi ole, se mahtuu tarvittaessa kolmelle riville. (1)täytetään WNDCLASS(EX)-struktuuri, (2)lähetetään se RegisterClass(Ex):lle ja (3)kutsutaan CreateWindow(Ex)-funktiota.

Mutta toimii vain Windowsissa. SDL:ssä, GLFW:ssä ja monessa muussa tällaisessa (ja OpenGL:ssä) on juuri se etu, että ne toimivat usealla alustalla.

Metabolix [06.11.2004 22:19:05]

#

Kumpi on taitavampi, se joka osaa tehdä ohjelman, joka toimii millä tahansa järjestelmällä vai se, joka osaa tehdä sen monella tavalla? Se, että kaiken voi tehdä SDL:llä, ei tarkoita, etteikö kannattaisi opetella muitakin. Tietysti jos on tyytyväinen osaamiseensa vaikka tietää, että voisi osata enemmänkin, niin saahan sitä olla.

Jos ei käytä SDL:ää (tai vaikka käyttäisikin), voi olla hyvä käyttää Compiler Directivejä (mitä lie suomeksi):

#ifdef _WINDOWS
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, char *ParamString, int)
#else
int main(int ParamCount, char **ParamString)
#endif

Markus [07.11.2004 10:28:20]

#

> Mistä löytäisi oppaita johonkin näistä?

Käytänpä tilaisuutta hävyttömästi hyväkseni ja mainostan omia tutoriaalejani:

http://www.suomipelit.com/nayta_artikkelit.php?tyyppi=1
Vieritä ihan sivun alalaitaan ja sieltä löytyy OpenGL tutoriaalit 1-4.

Jyri [09.11.2004 14:14:58]

#

THX nyt alko taas edistys täs kieles :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta