Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Miten renderöintikoodi kannattaa jakaa luokkiin?

R4gg4rs [16.09.2014 20:20:58]

#

Kaipaisin hiukan apua Opengl pelin arkkitehtuurin kanssa. Mitenkäs muut on käytännössä toteuttanut OpenGl pelejä.
Yleensä olen hoitanut renderöinnin seuraavalla tavalla.
Objektilla on osoitin Modeliin joka sisältää useamman meshin. mesh sisältää kulmapisteiden(Verteksien) tiedot ja luo Vertex Objectin. Kahva verteksi objektiin on meshissä. Jotenkin tuntuu että oikea oppisesti tuo Verteksi bufferi kuuluisi erottaa meshistä? mesh sisältää myös osoittimen käytettävään varjostimineen ja hoitaa sen liittämisen (bind) samaten se sisältää osoittimen käytettävään tekstuurin.
Scene sisältää piirrettävät objektit ja kutsuu niiden render funktiota joka kutsuu modelin render funktiota välittäen sille view matriisin projektion matriisin ja objectin model matriisin. Model taas kutsuu meshin render funktiota välittäen kyseiset matriisit.
Tuo renderöinti tapa ei vaikuta oikein järkevältä ja olen ymmärtänyt että olisi järkevää luoda renderer luokka joka hoitaa renderöinnin. En ole vaan mistään onnistunut löytämään selitystä miten se sitten tuolla tavalla kuuluisi tapahtua.

User137 [22.09.2014 00:19:51]

#

Renderöintiluokka kuulostaa kyllä järkevämmältä. Eihän siinä muuta ole kun varjostimet jne on sillä luokalla vaikka taulukossa/vektorissa josta sitten kytkee halutun niistä päälle. Meshillä voi olla tieto siitä mitä varjostinta kuuluu käyttää, mutta se kutsuu sitä luokkaa.

Tässä vaiheessa voisi melkeinpä ohjata uudet pelintekijät suoraan Unityyn. Sama projekti toimii kaikilla käyttiksillä, myös Androidilla, Applen tableteilla ja pelikonsoleilla. Eikä tarvitse ostaa Unity pro:ta ellet tienaa pelilläsi jotain 100k euroa. Itsekin alkanu tekemään testipelejä 3D-kiihdytyksellä omalle Androidille, eikä tarvitse kun siirtää Dropboxiin ja asentaa kännyllä :D

Vastaus

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

Tietoa sivustosta