Thread View: be.comp.programming
4 messages
4 total messages
Started by Whizzo
Sun, 15 Dec 2002 15:33
projectie / transformatie
Author: Whizzo
Date: Sun, 15 Dec 2002 15:33
Date: Sun, 15 Dec 2002 15:33
15 lines
1277 bytes
1277 bytes
Ken hier iemand iets van transformaties ? 3D -> 2D ? Zit met vervelend foutje ! mvg, -- Whizzo ( http://www.deeplove.be ) ( http://users.pandora.be/whizzo/engine/ ) Dead seems to be fatal in 99.9% of the cases. Tested on labratory rats.
Re: projectie / transformatie
Author: KLinZ
Date: Sun, 15 Dec 2002 22:16
Date: Sun, 15 Dec 2002 22:16
13 lines
1337 bytes
1337 bytes
Whizzo wrote: > Ken hier iemand iets van transformaties ? > > 3D -> 2D ? > > Zit met vervelend foutje ! > Stel je vraag maar gelijk. Dat is handiger. -- www.zenobits.com
Re: projectie / transformatie
Author: Slaets F
Date: Mon, 16 Dec 2002 00:37
Date: Mon, 16 Dec 2002 00:37
56 lines
2601 bytes
2601 bytes
zit met probleempje bij men 3D engine ik moet van een 2D scherm (muis) naar 3D wereld gaan (isometric perspective) dus als ik klik met men muis moet ik men coordinaten op men wereld hebben... Dit kan je doen in OpenGL (waar ik in bezig ben) door een ray in je scherm te schieten onder je kijkhoek en die te transformeren naar je vlak van je landschap en dan een intersection te zoeken .... Nu aangezien dit van geen kanten lukt doe ik het andersom met een hardware fctie van OpenGL gluProject(worldX, worldY, worldY, modelviewmatrix, projectionmatrix, viewport, eyeX, eyeY, eyeZ); eyeX Y en Z worden teruggegeven in je functie.... en dan weet je met de X en Y waar je cursor moet staan van je muis ... is boven het punt van je wereld. Dus ik koppel men muis aan men 3D wereld en projecteer men muis naar men scherm.... probleem is nu als ik mijn muis verschuif dan loopt men muis weg van men 3D wereldpositie.... Weet iemand hoe dit komt, het verloopt precies vrij lineair? is dit omdat gluproject mogelijk geen rekening houd met camerarotaties ? of weet iemand hoe did komt??? Please help me mvg, Filip "KLinZ" <klinz@NOSPAMzenobitsSPAMNO.com> wrote in message news:na7L9.2033$3G4.8513@amstwist00... > Whizzo wrote: > > Ken hier iemand iets van transformaties ? > > > > 3D -> 2D ? > > > > Zit met vervelend foutje ! > > > > > Stel je vraag maar gelijk. Dat is handiger. > > -- > www.zenobits.com > >
Re: projectie / transformatie
Author: Bart.Vanhauwaert
Date: Tue, 17 Dec 2002 11:56
Date: Tue, 17 Dec 2002 11:56
53 lines
2687 bytes
2687 bytes
Slaets F <whizzo@pandora.be> wrote: > ik moet van een 2D scherm (muis) naar 3D wereld gaan (isometric perspective) > dus als ik klik met men muis moet ik men coordinaten op men wereld hebben... Je weet dat 1 2D coordinaat overeenkomt met een oneindig aantal 3D coordinaten. Ik neem aan dat je de coordinaat wil van het punt uit je tafereel (de 'projectieplaat'). Dat hangt natuurlijk af van welke parameters je hebt van je projectie. Ik veronderstel dat je hebt (in 3D) oog (o), kijkrichting (k) en bovenrichting (b) dit laatste is normaal op de horizon in de richting van de 'bovenkant'. Daarnaast heb je ook nog nodig : afstand tafereel en oog (d) en de afmetingen van een pixel, meestal onder de vorm van een zogenaamde 'field of view' hoek (fx en fy). Eerst zoeken we het punt uit je tafereel dat overeenkomt met het midden van je schermcoordinaten. Dat is simpel (k en b genormaliseerd): m = o + d*k de y-as van je tafereel komt overeen met de bovenrichting y = b de x-as van je tafereel staat loodrecht op de y-as en op de kijkrichting dus x = o^y (^ staat voor vectorproduct) voor de breedte van je tafereel (tx) weten we dat tan(fx/2) = (tx/2)/d De pixelbreedte (px) (in 3D) is uiteraard de tafereelbreedte gedeeld door het aantal pixels in x. Idem dito voor de tafereel- en pixelhoogte. En dus t = m + (x2-mx2)*px*x + (y2-my2)*py*y x2,y2 zijn de coordinaten in 2D, mx2 en en my2 zijn de halve breedte en hoogte in 2D. Indien de oorsprong van de 2D coordinatenstelsel linksboven van het scherm is, moet je wel de y-component van teken veranderen. Hopelijk was het dit wat je zocht, en hopelijk heb ik geen fouten gemaakt. cu bart -- http://www.irule.be/bvh/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads