Onkos kukaan jaksanut rakennella 3d-moottoria ja jos on niin voisikos sitä jaella tännepäin...
(Wolfenstein 3d tyylistä).
Vaikka kyllä itsekin osaisin jos vain jaksaisin... (ehkä)...
Minulla on jo pitkän aikaa ollut tekeillä The Linkku3d-moottori. Linkku-nimi johtuu siitä, että se toimii luullakseni muuten oikein, mutta vääristää, jos kääntää kameraa ylös tai alas.
3D:n ohjelmoimien on mutkikasta puuhaa. Tietysti joitain pyöriteltäviä 3d-kuutioita on helppo tehdä. Tuskin kukaan sinulle valmista moottoria lähettää. Kannattaa yrittää itse. Minäkin olen tehnyt kaiken itse alusta alkaen. Mutta voipi tulla aika äkkiä ongelmat vastaan.
Perusperiaatehan on kai laskea kulmat kameran ja kappaleen välillä. Kulman saa helposti arkustangentilla.
x = ABS(Kamerax - EsineX)
y = ABS(kameray - EsineY)
kulma = ATN(x / y)
Tai ainakin tuo on Linkkuni periaate. Sitä en viitsi lähettää, kun se kuitenkaan ei ole mitään huippuluokan 3d:tä ja siitä voi saada vääriä vaikutteita, kun en ole 3d:tä ihmeemmin opiskellut.
En tunne tuota Wolfensteinia, kun en pahemmin 3d-räiskintöjä pelaa (jos se nyt on sellainen), mutta mitään tekstuuri-moottoria on ilmeisesti turha ruveta vääntämään QB:llä. Rautalanka riittää minulle toistaiseksi.
Ei pidä tavoitella liikaa kerralla.
Kokeile ensin itse, mutta kysy toki neuvoa, jos et jotain osaa. Minä en kuitenkaan välttämättä ole paras apu, vaikka olenkin eräänlaisen 3d-moottorin rakentanut. Sillä kuten sanoin, se on nimensä väärti.
Nyt on pakko laitta offtopic:
lainaus:
En tunne tuota Wolfensteinia, kun en pahemmin 3d-räiskintöjä pelaa (jos se nyt on sellainen),
Senhän pitäisi tuntea kaikki ):\ Wolfenstein eli wolf3d oli alku aikojen 3d räiskintä (on siitä nyt jo uudempiakin).
Kuten sanoin, en pelaa 3d-räiskintöjä. Tuntisin kai jo pelaisin. 3d:ssä minua kiehtoo ainoastaan grafiikan hienous, eikä se että veri lentää. :)
Rupesin vähän kelaamaan, mistä oma moottorini lähti liikkeelle ja keräsin tässä vähän osoitteita:
Aloittamaani keskustelua aiheesta.
https://www.ohjelmointiputka.net/keskustelu/3175-kamera-3d-engine
https://www.ohjelmointiputka.net/keskustelu/3649-kulmat-kahden-3d-pisteen-välillä
Tuossa puhutaan tekstuurimoottorista, mutta en usko, että se oli QB:llä tehty.
https://www.ohjelmointiputka.net/keskustelu/2241-3d
Tuossa tekemäni koodivinkki, joka toimii esimerkkinä kappaleen pyörityksestä.
Tällaisia löytyy putkasta useampiakin.
https://www.ohjelmointiputka.net/koodivinkit/
wolfenstein 3d:han käyttää RayCastingia
siitä löytyy kyllä miljoonia esimerkkejä
-> googlettamaan!
En usko, että Wolfenstein tai RayCasting on QB:llä tehty.
3D moottori on suhteellisen helppo tehdä. ainut vaikeus siinä lienee se että mistä suhteesta se otetaan, eli kuvakulma jne. itse aloittelin sitä vain yhdestä kuvakulmasta ja onnistuikin, mutta kaikkista paras MORROWIND tyylinen grafiikka on vaikeaa!
päähenkilön voisi tehdä niin että jos on tämän esimerkki-yhdestä suunnasta, voisi tehdä littanan päähenkilön, joka aina painettaessa nappia vaihtaa kuvakulmaa.
naurettavan yksinkertaista, mutta totta ja...sillei kannattaa aloitella (kai)
Juuri tuo on Linkussanikin ollut ideana. Lähinnä ongelmani johtuvat kaiketi siitä, ettei yläasteen matematiikka ole vielä kovin korkealuokkaista. Pitänee odotella lukion trigonometria/vektori-kursseja. Josko sitten asiat selviäisivät.
jeps. kannattaa tutustua MUXiin
QB-raycasteri.
http://www.hulla-balloo.com/vplanet
games -> arcade -> MUX
Linkkuni on muuten nyt valmis, jos joku ei ole vielä uusimmista koodivinkeistä nähnyt.
Aihe on jo aika vanha, joten et voi enää vastata siihen.