Archief - Jogl zwaartekracht

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

stienoo

Legacy Member
Ik ben begonnen met JOGL (java OpenGL) en begin het wat onder de knie te krijgen (textures, licht...) maar snap niet goed hoe je zwaartekracht kunt creëren (en meerbepaald gewoon kijken wanneer items elkaar overlappen) opzig niet zo moeilijk maar ik maak gebruik van gl.glRotatef() en weet dus niet net de co van elk object...

Hopelijk een (makkelijke) oplossing?

Cycloon

Legacy Member
stienoo zei:
Ik ben begonnen met JOGL (java OpenGL) en begin het wat onder de knie te krijgen (textures, licht...) maar snap niet goed hoe je zwaartekracht kunt creëren (en meerbepaald gewoon kijken wanneer items elkaar overlappen) opzig niet zo moeilijk maar ik maak gebruik van gl.glRotatef() en weet dus niet net de co van elk object...

Hopelijk een (makkelijke) oplossing?

Ik vermoed dat je het over collision detection en/of ray tracing hebt? Die dingen moet je zelf programmeren want OpenGL biedt daar geen ondersteuning over. Er is veel lectuur over te vinden dus ik zou wat google'n.

Gurdt

Legacy Member
zwaartekracht kunt ge creëren me enkele variabelen die je iedere frame of interval of wat dan ook gaat toepassen:

ySnelheid (member vn uw object) en xSnelheid + yVersnelling en eventueel een xVersnelling (als ge met wind speelt ofzo)

ge gaat iedere frame/loop/interval/... die snelheden optellen bij uw x/y-positie en daarnaast gaat ge die snelheid aanpassen adhv uw versnelling (optellen of vermenigvuldigen, beetje gelijk ge et wilt)

stienoo

Legacy Member
Hoe ik een 'echt-lijkende' beweging maakt weet ik, maar niet hoe ge controleert wanneer 2 objecten elkaar overlappen omdat ik met rotaties werk (en dus niet de exacte x en y van ieder object weet). Ik zal morgen een keer proberen om zonder rotaties te werken...

Litheon

Legacy Member
Bereken simpelweg de rotaties zelf, en dus geen glrotatef gebruiken.
Dit kan je gemakkelijk doen via rotatie Matrixes.

Gurdt

Legacy Member
Litheon zei:
Bereken simpelweg de rotaties zelf, en dus geen glrotatef gebruiken.
Dit kan je gemakkelijk doen via rotatie Matrixes.
in 3D zien die matrices er trouwens zo uit:
draaihoek = O (afspraakje)
rond x-as:
Code:
1       0       0       0
0       cosO    -sinO   0
0       sinO    cosO    0
0       0       0       1
rond y-as:
Code:
cosO    0       sinO    0
0       1       0       0
-sinO   0       cosO    0
0       0       0       1
rond z-as:
Code:
cosO    0       -sinO   0
sinO    0       cosO    0
0       0       1       0
0       0       0       1
--
reken maar uit (matrixvermenigvuldigingen), combinaties kunt ge zelf maken natuurlijk;)

opmerking, ge moet wel altijd eerst een negatieve translatie doen tot de oorsprong en dan trug transleren, anders klopt uw rotatie nie (of ge pakt nen andere matrix, ma das ingewikkelder!)

stienoo

Legacy Member
Ok, ik ga zometeen zeker wat proberen, ik heb wel nog een paar vragen (eigenlijk oftopic maar nogal klein voor een nieuwe trade)

-Kan je .obj bestanden inladen?
-kan je op 1 vlak een texture meerdere keren herhalen?

Bedankt...

Gurdt

Legacy Member
da van da obj denk ik nie, en da vn die textures is zoiets:
Code:
glBegin( GL_QUADS );
glTexCoord2d(0,0); glVertex2d(0,0);
glTexCoord2d(2,0); glVertex2d(100,0);
glTexCoord2d(2,2); glVertex2d(100,100);
glTexCoord2d(0,2); glVertex2d(0,100);
glEnd();
voor 1 texture 4 keer te laten zien op een vlak van 100 op 100

stienoo

Legacy Member
Als ik dit hierboven gebruik geeft hij 1 goed weer (links onder), bij 2 geeft hij strepen en bij de 3de (rechts boven) 1 kleur...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan