Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Wie progge ich einen Mapeditor wie z.B. Worldcraft ( jetzt Hammer Editor... warum auch immer .. naja .. ) ? Ich habe bei schönes Grid zeichnen lassen und allen schnittpunkte nen Namen mit dem NameStack gegeben... Der is aber nur 64 Namen groß nich wirklich genug... wie soll ichs machen ? HILFE !!
gz und thx schon ma
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zitat:
Der is aber nur 64 Namen groß nich wirklich genug...
Das ist falsch (keine Angst, dies hab ich am Anfang meiner GL-Karriere auch vermutet).Der Namestack ist rein theoretisch unendlich groß.Die 64 bezieht sich nur auf die Anzahl der gleichzeitigen Treffer die in einem Puffer zurückgeliefert werden, und die Wahrscheinlichkeit das 64 Namen auf einem und dem selben Bildschirmpunkt liegen ist quasi unmöglich, weshalb dieses Limit kaum stören sollte. Die Anzahl der Namen die du auf den Namestack legen kannst ist (fast) ungebrenzt.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ganz am Anfang der Tutorialsektion steht : "Um die folgenden Programme zum Laufen zu bringen wird die <a href='http://www.delphigl.de/files/opengl12.zip' target='_blank'>OpenGL1.2-Interface Unit</a> benötigt.". Dort ist auch der von dir gesuchte Vektortyp deklariert.
Ich selber habe den Selection - Krams auch mit der normalen Unit zusammengebastelt.... Statt "vector4i" reicht auch ein
Code:
viewport : array [0..3] of gluint;
bei der Standartunit oder ein
Code:
viewport : array [0..3] of tglint;
Mit na ganz normalen opengl12.pas (weiß auch net, welche ich habe... auf jeden schwirren mehrere rum... meine zumeist verwedete unterscheidet sich nämlich schon allein durch die fehlende Definition von glvector4i von der, die SoS verwendet hat......)
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Versuch mal folgendes. <!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>GLSceneViewer.Buffer.PickObjects(...)</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3--> Damit bekommst du alle die sich an diesem Punkt befinden, Oder was einfacheres <!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>GLSceneViewer.Buffer.GetPickedObject(x, y)</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3--> Damit bekommst du das was man auch tatsächlich angeclickt hat. Sprich das Vorderste.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zitat:
er sollte so werden wie Worldcraft oder Radiant oder sonst ein Mapeditor...
Da hast du aber noch ne riesige Menge Arbeit vor dir.An deiner Stelle würde ich mir erstmal überlegen ob du wirklich nen Mapeditor brauchst, und obs nicht reichen würde wenn du deine Maps in Worldcraft oder im GTKRadiant machst und dann in dein Spiel (oder Awendung) importierst. Ein MapEditor vom Schalge eines Worldcraft ist nämlich wirklich ein sehr umfangreiches Unterfangen und kann dich (wenn du kaum Grundlagenwissen hast) locker über ein Jahr bis zur Fertigstellung kosten. Bevor du sowas beginnst, solltest du dir erstmal Gedanken machen wie deine Welt überhaupt aufgebaut ist und wie du deine Geometrie sortierst oder unterteilst.Du musst von Anfang an wissen, ob du deine Raumunterteilung z.B. über einen BSP-Baum oder über Octrees machst, ob du Objekte in einer leeren Umgebung erstellst (Radiant) oder aus einem großen Würfel herausschneidest (UnrealED).
Zitat:
Wie generiere ich die Vierecke ?
Also weder Worldcraft noch Radiant noch sonst irgendein Editor arbeitet auf Basis von Vierecken (du meinst sowieso wohl eher Rechtecke), sondern auf Dreiecksbasis und bieten halt ganz einfach Tools um geometrische Objekte wie Würfel, Pyramiden oder Kugeln zu erstellen (nicht ganz dem Prinzip von z.B. 3DStudioMAX unähnlich).Das Erstellen solcher Objekte ist dann doch eher was mathematisches und reicht von sehr einfach (Quader) bis komplex (komplette Treppen, Torusknoten, etc...). Wie du hier vorgehen musst, hängt wieder davon ab wie deine Umgebung strukturiert ist.Da gibts auch wieder jede Menge Möglichkeiten, wie z.B. die Eckpunkte per Objekt speicher, oder ne Vertexliste pro Objekt erstellen und dann per Face-Indizes drauf zugreifen, etc.
Wie du also siehst ist das Programmieren eines Editors á la Worldcraft ein wirklich umfangreiches Unterfangen (da ich sowas schonmal gemacht hab, weiss ich auch wovon ich rede ).Wenn du das ernsthaft machen willst, dann mach dich zuerst mal mit den Grundprinzipen von OpenGL, verschiedenen Raumunterteilungsprinzipien und dem mathematischen Erstellen von dreidimensionalen Primitiven vertraut.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Gast_NiGhTmArE hat geschrieben:
und weiter ? jetzt häng ich wieder ein stück weiter.... was gibt die funktion zurück?
Ja mussu mal schauen. :blink: Steht doch da.
GetPickedObject gibt ein direktes GLSceneObject zurück allerdings als ein Basisklasse ein TypeCast auf TCube oder ähnliches ermöglicht es dir es als das zu benutzen als was du es angelegt hast.
PickObjects bekommt eine Liste von Basisobjekten die gefüllt wird mit denen die gefunden wurden.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Gast_NiGhTmArE hat geschrieben:
Aber wie bekäme ich denn das Format .map oder .bsp oder sonstwas in mein Format umgewandelt oder einfach erst ma in meinen Array rein ? ( wenn da drin is kann ich den Parser ja "rückwärts" laufen lassen zum speichern.. das is nichh so das Problem...
Such mal mit <a href='http://www.google.de' target='_blank'>google</a>.Da dürftest du auch ein paar .bsp-Importlibs für Delphi finden.Wenn nicht, dann sag bescheid und ich lad eine hoch die ich mal vor längerer Zeit irgendwo im Netz gefunden hab und die noch auf irgendeiner meiner Backup-CDs rumgammeln dürfte. Die Daten aus ner .bsp-Datei in dein eigenes Format zu bringen ist dann nicht mehr sonderlich schwer, da das Q3-BSP-Format für Carmack typisch einfach zu verarbeiten und zugleich flexible ist.
Edit : Auf <a href='http://www.sulaco.co.za' target='_blank'>http://www.sulaco.co.za</a> gibts ne grundlegende Q3-BSP-Importlib für Delphi.Sachen wie Lightmaps oder PVS importiert diese allerdings noch nicht. Unter folgendem Link : <a href='http://graphics.stanford.edu/~kekoa/q3/' target='_blank'>http://graphics.stanford.edu/~kekoa/q3/</a> gibts ein unoffizielles Dokument zum Q3-BSP Dateiformat, für den Fall das du die Daten selbst einlesen und verarbeiten willst, statt ne bereits vorhandene Unit zu verändern.
Mitglieder in diesem Forum: Bing [Bot] 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.