Toon posts:

[openg/c++] Hoe een hele scene in 1x te roteren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met boter kaas en eieren in 3d in OpenGL.
Heb al netjes mijn kubus gebouwd enz. Maar als ik die wil gaan roteren dan roteert elk klein kubusje om zijn eigen as.

Hoe kan ik maken dat de hele cubus om zijn eigen as rotert?

Iets met je matrix ofzo denk ik maar ik heb nog geen antwoord gevonden.

BvD.

offtopic:
Ben hier nieuw dus zal me nog ff snel voorstellen.
Ben al tijden met computers bezig en heb voorheen al wat geprogrammeert in VB maar ben nu sinds een halfjaar met C++ en OpenGL bezig. De tut's van nehe doorgewerkt en veel geoefend. Ben nog student(4 vwo) dus heb alle tijd :D

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Alweer tijdje geleden, maar bij mij is het nooit helemaal goed gegaan :)
ik zou even gaan zoeken op camera's in OpenGL en misschien proberen ergens Camera classes vandaan te plukken.
Simpele rotatie is namelijk nog wel te doen door voordat je alles rendert de matrix te veranderen, maar bij door de scene bewegen en draaien kom je al snel in de problemen met gewone glRotatef's (Euler angles).

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Boter, Kaas en Eieren in 3D? Geinig. Maar het lijkt me handig als je je speelveld als 1 object definieert en niet elk veld (kubusje dus) apart. Je kan elke cel (speelveld) een waarde geven: 0 = leeg, 1 = rondje, 2 = kruisje. Die info zet je in een matrix (geen rotatiematrix ofzo, gewoon een info-matrix :))

't Is maar een idee.

btw: dit is dus geen kwestie van goed aan de gang gaan met 3D (imho), maar meer een kwesite van het goed opzetten van je structuur.

[ specs ] [ Tweaker gallery ]


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

ehmm huh? gewoon je modelview matrix aanpassen. Hier moet je echt een goed boek over lezen... dit zal je zo vaak tegen komen, en je kan op zo veel manieren transformeren. Het ligt er namelijk altijd aan van waaruit je de scene bekijkt. In principe ga je altijd van model naar world naar camera naar screen coordinaten. Dus in jou geval roteren in world space...lastig uit te leggen.

Verwijderd

NAdat je in je code de camera goed hebt gezet, push je de modelview matrix, roept glRotatef aan voor elke as, daarna teken je de kubus, doet weer glPopMatrix() en daarna is je modelview matrix weer hetzelfde als pal na de camera setup.

Iets om zn eigen as draaien is pure fake. Je modificeert de projectie matrices voor de vertices op zo'n wijze dat het lijkt alsof hij om zn as draait.

Zie voor een goed OpenGL boek:
http://fly.srk.fer.hr/~unreal/theredbook/

Lees vooral het hoofdstuk over viewing door. Dan snap je wat het verschil is tussen eerst moven (translate) en dan roteren (rotatef) of andersom. Het is _ERG_ belangrijk dat je doorhebt wat er gebeurt, anders loop je elke keer weer tegen die muur aan "moet ik nu eerst mn camera positioneren of eerst de geometrie? en moet ik eerst translatef doen of eerst rotatef?".

Oh, en nadat je die troep van Nehe hebt weggeflikkerd ga je natuurlijk wel DemoGL gebruiken om je OpenGL powered effectclasses mee te runnen he! :D (http://www.demogl.com)

Verwijderd

Topicstarter
He bedankt :D

Had die pushmatrix opdracht al wel is zien staan maar nooit begrepen waarvoor het was. Ga het zo is testen.

Leuk forum trouwens, binnen zo'n korte tijd al goeie reacties :D

Het is bij dit spel ook niet echt het grafische gedeelte maar meer het logisch proggen.

En over die boeken :'( Ik ben altijd chronisch blut maar ben van plan om voor de OpenGLSuberbible te gaan sparen en daarna het red en blue book.

Verwijderd

Topicstarter
Nog ff over dat DemoGL

Is dat nou een speciale tool voor geluid bij je programma's? En is het moeilijk om te gebruiken?

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Op zaterdag 29 september 2001 15:09 schreef Otis het volgende:
Iets om zn eigen as draaien is pure fake. Je modificeert de projectie matrices voor de vertices op zo'n wijze dat het lijkt alsof hij om zn as draait.
Dat is niet helemaal waar hehe (8>, zeker niet als je een matrix als basis opvat (kolomen van de matrix spannen de ruimte op), en een transformatie als verandering van basis. In principe definieer je vertices namelijk ten op zichte van een (lokale) basis, daar laat je transformaties op los, en dan ga je over naar een worldspace basis waar je eventueel weer kan transformeren. En dan projecteer je (projectie matrix in ogl)

Verwijderd

Zoijar: ja ok, maar als je bedenkt dat je geen camera hebt in OpenGL, dan komt alles op hetzelfde neer: je hebt 1 matrix en daar transformeer je alles mee, dus je propt eerst de cameratroep er op, en alles wat je transformeert neemt automatisch die camera transformaties mee. :)

Maar op de kaart gebeurt het in principe in stapjes dat klopt. :)

Verwijderd

Op zaterdag 29 september 2001 15:53 schreef Scheermesje het volgende:
Nog ff over dat DemoGL

Is dat nou een speciale tool voor geluid bij je programma's? En is het moeilijk om te gebruiken?
DemoGL is een execution platform. Als je nu een OpenGL effectje wilt maken, moet je window openen, pixelformat selecteren, rendercontext maken, zelf textures laden, etc etc. DemoGL regelt dat allemaal voor je. Je maakt effectclasses, dus je stopt je opengl code in een class en die draait dan in een layer. Je kunt dus meerdere effects achter elkaar plakken, op verschillende layers. Die layers en die effects controlleer je met een script. Zie de Tweakers.net screensaver: die heb ik met 3 layers gemaakt: 1 layer die de buffers cleart, 1 die die tweakeroids rendert en 1 die het logo van de site ervoor rendert. DemoGL heeft verder een soundsystem, dus je kunt met 2 regels in je script een mp3, of een modje of wav playen. ook kun je vanuit je code mp3's modjes of samples playen, zelfs in 3D.

Verwijderd

Topicstarter
Tsja, alleen dan ben je weer zo afhankelijk van een programma. Alles zelf schrijven is volgens mij toch wel leuker ookal kost het dan wel meer tijd maar zal der zeker is naar kijken

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

kan misschien beter gewoon GLUT (gl utilities) gebruiken

Verwijderd

Op zaterdag 29 september 2001 schreef Scheermesje het letters...
Heeej!! naam jatter! Ikke was lekker eerder :P

Verwijderd

Topicstarter
SOrry :D

Ik was al tijden op andere fora en ook op icq als Razorblade. Maar die was al bezet dus heb het toen maar is op ze nederlands gedaan. Vrienden?:D
Pagina: 1