zur Zeit arbeite ich weiter am Problemkreis "Kollisionen" und beschäftige mich mit Dingen wie ray-triangle intersection. Spannende Sache, aber wenn ich an die Umsetzung denke, holen mich meine mangelhaften OpenGL-Kenntnisse wieder ein.
Beispiel: Ich habe ein Objekt, etwa einen Baum mit 30 oder 40 dreieckigen Polygonen (sowas wie Blätterdächer). Diesen Baum will aber mehrfach in die Landschaft pflanzen, und damit er nicht immer gleich aussieht, jedesmal anders skalieren bzw. rotieren. Die Translation lasse ich mal außen vor. Skalierung/Rotation kann man natürlich schön einfach mit glRotate und glScale machen. Aber das ist ja noch die Kollision. Dafür gebrauche ich ja außerhalb von OpenGL die Vertices der rotierten und skalierten Polygone.
Ich vermute, dass man die nicht ohne weiteres aus OpenGL herauskitzeln kann. Das würde aber bedeuten, dass ich außerhalb von OpenGL rotieren und skalieren muss. Sehe ich das richtig, und wenn ja: wie bewerkstelligt man das am besten (=einfachsten)?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Also als ersten ansatz würde ich die ModelView-Matrix (oder welche auch immer du dafür verwendest) aus OpenGL laden (glGet(GL_MODELVIEW_MATRIX)) und den Vertex dann damit multiplizieren.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Hab' schon halb vermutet, dass an einer Rotationsmatrix kein Weg vorbei geht. Die Normalen zu rotieren, hätte ich glatt vergessen. Somit könnte folgendes Verfahren angewandt werden:
1. glRotate und glScale aufrufen und OpenGL die Dinger zeichnen lassen
2. dann die Matrix von OpenGL abkupfern, alle Vertices durch die Matrix kurbeln und
3. in Arrays mit beachtlichem Umfang speichern
Was die Bäume anbetrifft, so denke ich durchaus an einen kleinen Wald. 2000 Pflanzen sollten es schon sein.
Na denn, packen wir's an. Mir schwebt da so ein Vampir oder eine Hexe mit Besenstiel vor, die durch die Baumkronen flattern. Irgenwo hinter einem Baumstamm versteckt sich natürlich 'ne Jungfrau ...
Such mal nach 'prozedurale Bäume'. Damit kannst Du 1000e von Bäumen machen, die sich nicht gleichen. Geht auch relativ schnell und kann ins Mapgenerieren eingebaut werden.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.