c ++ - Hvordan kan jeg få kameraet til at flyve gennem objekter i OpenGL ved hjælp af Glut?

Indlæg af Hanne Mølgaard Plasc

Problem



For det første kan hele min kode findes her, den er i 3 filer.


flythrough.cpp, support.cpp, support.h [3] [4] [5]


Okay ... så hvis du løber det, ser det ud til at arbejde, men et par ting er virkelig bugging mig!


Kameraet starter på et underligt sted, jeg forsøger at ændre alle slags variabler, men det synes ikke at have effekt.


Det største problem lige nu er at flytte kameraet. På dette tidspunkt vil kameraet flytte til venstre og højre, men IKKE frem eller tilbage. Når jeg forsøger at bevæge mig frem, er det som pixlerne gør det rigtige, vil objektet til sidst forsvinde, når jeg bevæger mig fremad, som jeg har flyttet forbi den, men selve objektet 'ikke synes større', som jeg får tættere. Samme for at bevæge sig baglæns.


Lad mig vide, om du kan komme med noget.


Jeg vil gerne tilføje, at et flertal af denne kode kommer fra min lærebog. Med ændringer fra mig selv.


Tak!

Bedste reference


Dens et ortografisk kamera, derfor kan du ikke bevæge sig langs Z-aksen. Du skal ændre din kameratype for at gøre, hvad du forsøger at gøre.


Ref: Linje 33, flythrough.cpp


glOrtho(-2.0 * 64 / 48.0, 2.0 * 64 / 48.0, -2.0, 2.0, 100, 100.0);


Typisk, bare uncomment denne linje, og skriv derefter følgende:


gluPerspective(60.0, 640.0 / 480.0, 0.1, 1000.0);


Dette vil formere en perspektivmatrix ved den aktuelt indlæste identitetsmatrix (LoadIdentity ()).


Ref: http://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml[6]

Andre referencer 1


Uden at forsøge at udarbejde din akse, har du forsøgt at flytte kameraet frem og tilbage langs Z-aksen i stedet for Y. Måske er din dybdeakse indstillet til at være Z ikke Y.