![]() |
Mesh zur Laufzeit erstellen in OpenGL
Hallo zusammen;
Ich habe eine recht einfache Frage, deren Antwort vllt. genauso einfach ist, mir aber momentan noch unbekannt ist. Ich möchte während das Programm läuft Meshes erstellen*. Geht das? (Müsste eigentlich) Die Frage ist: WIE? Danke für Eure Tipps und Hinweise ! *) Konkretes Beispiel, ich möchte in einem Edit die Anzahl an Objekten eingeben, und diese sollen dann erstellt werden. |
Re: Mesh zur Laufzeit erstellen in OpenGL
Zwischenfrage :mrgreen:
Mit / in was OpenGL-API oder GLScene? |
Re: Mesh zur Laufzeit erstellen in OpenGL
GLScene... sorry das ich das vergessen hatte :wink:
|
Re: Mesh zur Laufzeit erstellen in OpenGL
Es gibt zB. TGLMesh mit dessen Hilfe kannst du dir ein Mesh zur Laufzeit bauen.
Delphi-Quellcode:
uses VectorGeometry, Vectortypes;
function Vector3f(x,y,z: single): TVector3f; begin Vector3f[0] := x; Vector3f[1] := y; Vector3f[2] := z; end; function Vector4f(x,y,z,d: single): TVector4f; begin Vector4f[0] := x; Vector4f[1] := y; Vector4f[2] := z; Vector4f[3] := d; end; procedure foo; var v: TVertexData; begin GLMesh1.mode := mmPolygon; v.coord := Vector3f(1,1,1); v.textCoord := XTexPoint; v.color := Vector4f(1,0,0,0); GLMesh1.Vertices.AddVertex(v); //... v.coord := Vector3f(0,1,0); v.textCoord := XYTexPoint; v.color := Vector4f(1,0,1,0); GLMesh1.Vertices.AddVertex(v); end; |
Re: Mesh zur Laufzeit erstellen in OpenGL
Ich hatte eigentlich weniger vor mir ein Mesh zu bauen, als mehr einfach ne BasicGeometry hinzuzufügen... geht das auch , und evtl etwas einfacher :gruebel: ???
|
Re: Mesh zur Laufzeit erstellen in OpenGL
Die Frage ist, was du überhaupt willst. Ein Mesh kannst du in OpenGL ganz einfach über eine Liste (glBeginList, glEndList) bauen, oder jedes Mal die Vertices, Indices, Texturkoordinaten, etc. von neuem zur Grafikkarte übertragen. Oder du legst einen Vertexpuffer (Indexpuffer, Texturkoordinatenpuffer, etc.) an.
Wenn du ein Objekt dagegen ganz einfach nur mehrmals anzeigen willst, musst du es einfach mehrmals rendern. :) |
Re: Mesh zur Laufzeit erstellen in OpenGL
Ich möchte z.b. 2 Kugeln haben, sobald diese sich Treffen, soll eine dritte Kugel "entstehen"... ich hoffe es ist halbwegs verständlich... (Das mit dem Treffen und dem CollisionsManager ist nicht das Problem...)
|
Re: Mesh zur Laufzeit erstellen in OpenGL
In der Regel wirst du nur ein einziges Mesh einer Kugel haben. Wieso auch mehrmals die selben Daten im Speicher haben? Diese Kugel kannst du dann so oft du willst rendern. Dann sieht es so aus, als würde es mehrere Kugeln geben.
|
Re: Mesh zur Laufzeit erstellen in OpenGL
@Oxmyx, hi :hi:
Er arbeitet mit GLscene. In GLScene gibt es auch einfache Basic Objecte, die kannst du entweder statisch erstellen oder dynamisch. Ein GlScene Objekt kannst du auch im GlSceneeditor auf Visible = FALSE stellen. |
Re: Mesh zur Laufzeit erstellen in OpenGL
Ja nur leider kommt das für mich in diesem Fall nicht in Frage, also jetzt wo gesagt wurde, das ich BasicObjects dynamisch ertsellen kann frage ich nochmal: wie??? :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz