Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 20, 2025 00:37

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 29 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 00:49 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich hatte sowas auch mal vor zu schreiben...Sollte aber hauptsächlich Handel im Weltraum sein, und mehr aus der Ich-Perspektive gespielt werden. So mit Wurmlöchern ala DeepSpace9 und dem Aufbau eigener Raumflotten... wurde aber nie wirklich begonnen..


Vielleicht noch interessant: Sascha Willems (aka SonOfSatan) hat mal ein SciFi Strategiespiel angefangen, aber leider nie beendet. Hab gerade geguckt, der Projekte Thread mit dem äußerst ansprechenden Screenshoot hat Sascha wohl gelöscht... Schade... Das Spiel hätt ich gerne mal gezockt.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 10:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Flash hat geschrieben:
Vielleicht noch interessant: Sascha Willems (aka SonOfSatan) hat mal ein SciFi Strategiespiel angefangen, aber leider nie beendet. Hab gerade geguckt, der Projekte Thread mit dem äußerst ansprechenden Screenshoot hat Sascha wohl gelöscht... Schade... Das Spiel hätt ich gerne mal gezockt.


Ne, dazu gabs nie nen Projektthread, da es zu dem Zeitpunkt das Forum für Projekte noch nicht gab ;) Deshalb hab ich das damals noch im Off-Topic gepostet (siehe hier). Die Screenshots und Infos sind mittlerweile aber umgezogen und man kann sie hier betrachten. Hauptgrund für die Einstellung des Projektes war übrigens u.a. eine gravierende Fehlentscheidung im Gameplay. Das sollte ja Echtzeit werden, aber das war für den menschlichen Spieler einfach zu hektisch und hat den ganzen Spielspaß genommne. Übrigens würde ich evtl. an einem solchen Projekt mitarbeiten bzw. sowas wieder aufziehen, allerdings nicht wie bei ucGL nur mit mir alleine, dafür hab ich absolut nicht mehr die Zeit.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 10:43 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Das interesse an so einem Projekt scheint hier ja echt groß zu sein! Wie wärs mit einem Communityprojekt? :mrgreen:

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 11:23 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Speedmaster hat geschrieben:
Das interesse an so einem Projekt scheint hier ja echt groß zu sein! Wie wärs mit einem Communityprojekt? :mrgreen:


Naja, Sascha's Projekt sieht eigentlich mehr nach Echtzeitstrategie, statt nach "Simulation mit Wirtschaftsteil" aus. Wenn das kein Hindernis und sich wirklich noch ein paar Interessenten finden, dann wäre auch das von Flash empfohlene Team vorhanden, was dem ganzen Projekt sicher noch einen gehörigen Schwung verpassen würde.
Ach, ich wünschte ich könnte so schnell die Tutorials anwenden und umsetzen, wie hier Ideen entstehen. :)
Gestern bin ich in drei Stunden Bastelei immer noch bei der Bewegung des Spielers durch die Welt hängen geblieben. Aber ich bin optimistisch, dass ich heute erfolgreicher bin.

DNA

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 11:56 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also...wenn das Projekt in 1-2Monaten anfängt, vielleicht könnte ich da das Team316 bewegen auch mit zu machen (oder Jungs?) ... Ich hoffe bis dahin haben wir unser aktuelles Spiel fertig....

Interesse an einem Spiel in der Art von "Imperio Galactica"

http://www.digitalreality.hu/index.php?fomenuid=3&almenuid=14&cikk=69v
http://www.digitalreality.hu/_test/nagykep.php?id=157

hätte ich schon.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 12:41 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Die Hegemonia Macher? ... na, wenn wir da mal keine Modell-Not bekommen. Wenn das ganze in die Richtung von Master Of Orion 2 geht, habe ich sogar schon jemand, der 100€ dafür auf den Tisch legen würde. Wenn ich nun ein erstes "Wir werden reich höre", erkläre ich Euch für bekloppt, ehrlich... ;) Aber wie gesagt, wenn es in die Richtung MO2, Ascencary, Hegemonia gehen soll, würde ich auch helfen und mitwirken.... habe zwar keine Ahnung wie man das zeitlich schaffen soll oder wie WIR eine gemeinsame Basis finden wollen, aber...

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 12:48 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Hier mal was das was früher IG 3 war: http://nexusthegame.com/

Finde ich eigentlich recht gut!

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 13:00 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nun wenn da auch von Seiten DNAs interesse besteht, könnte man da ja ein Communityprojekt draus machen. Ich hoffe in 1-2 Monaten haben wir auch Erfahrungen durch das Quake3Delphi Projekt im organisatorischen Bereich von solchen Projekten, und dann muss konkret das Spiel besprochen werden und welche Teile der Code enthält, um die dann aufzusplitten. Vorallem der Softwaredesignteil wird kompliziert, weil die einzelnen Teile des Spiels getestet werden müssen...und da simulationsumgebungen zu schreiben kann mitunter kompliziert werden. Also einfach isses net, aber wir haben ja mindestens 2 praktisch erfahrene Informatiker die eigentlich Teamarbeit kennen müssten. Von da her ist das sicherlich ein vielversprechendes Projekt...

@Phobeus: Mit den Lizenesen verdienen wir dann eh Millionen, is eh klar.... :mrgreen:

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 23:20 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Holla,


Flash hat geschrieben:
Nun wenn da auch von Seiten DNAs interesse besteht, könnte man da ja ein Communityprojekt draus machen.


hmm. Naja, wir sollten nochmal abklären, was das Projekt eigentlich darstellen soll. Ich ziele mit meinem Projekt eigentlich in die Richtung "Weltraumsimulation mit Wirtschaftsteil", während im Forum auch von einem Echtzeitstrategietitel gesprochen wird. Ich bin zwar auch ein Fan von Echtzeitstrategie, aber beides ist nicht in einem Projekt vereinbar. Wir sollten da noch einmal zusammenfassen wer eigentlich was als nächstes sehen will.
(Wobei ich nach dem heutigen Abend ohne Fortschritte eher in Richtung Echtzeitstrategieprojekt äuge, da man dort keine Kamera durch die Szene multipliziren muss) *jammer*

Denn mir sind scheinbar noch diverse grundlegende Sachen nicht klar (achja, wäre der Thread eventuell in "Anfängerfragen" besser aufgehoben?)

Flash hat geschrieben:
1: Es gibt 2 Tutorials die sich mit Kamerabewegung befassen. (Unter Mathematisches)


Das erste habe ich durch. Leider ist die im Tutorial zu rendernde Szene leer, so sieht man nicht, ob was passiert. Nachdem ich eine Sphere ins Spiel gebracht habe, sehe ich zwar was, auch bewege ich mich auf die Kugel zu und wieder weg. Wenn ich die Szene um die Y-Achse drehen will, dann bewegt sich die Kugel auf einer kleinen Kreisbahn. Das selbe bei Rotation um meine X-Achse. Ich vermute, dass da mit dem Sichtvektor etwas nicht stimmt, oder ich mache bei der Translation etwas falsch. Verstehen tue ich es jedenfalls noch nicht.

Daher wollte ich nochmal auf Dein angeratenes Vorgehen zurückkommen, denn ich vermute dass ich hier noch anders denke als OGL funktioniert. :)

Flash hat geschrieben:
- Was immer du Zeichnest wird am aktuellen Koordinatenursprung gezeichnet


Hier geht es eigentlich schon los. In meiner Welt (also Weltkoordinaten) bin ich meinetwegen bei (10,10,10). Eine Kugel ist bei (5,5,5). Mit meiner aktuellen Position und einem Sichtvektor (-1,-1,-1) sehe ich die Murmel genau vor mir. Was ist der von Dir genannte "aktuelle Koordinatenursprung"? Wenn ich OGL richtig verstanden habe, dann ist das der Punkt, von ich die ganze Szene sehe und zwar von meinem Standpunkt aus in Richtung meines Sichtvektors. Richtig? das ist das (0,0,0) vom ... tja ..., wie heißen dann dieses Koordinatensystem? Modellkoordinatensystem? (Mit dem Modellkoord.System müßte ich ja herzlich wenig zu tun haben, oder? Auch wenn OGL nur damit arbeitet, denn meine Welt bewegt sich in den Weltkkordinaten, und solange ich das Modellkoordinatensystem durch Drehung und Verschiebung meiner Position und Sichtrichtung folgen lasse, wird alles korrekt dargestellt)

Flash hat geschrieben:
- mit glRotate änderst du die Ausrichtung der Achsen des Koordinatensystems
- mit glTranslate verschiebst du den Koordinatenursprung bezüglich der aktuellen Achsausrichtung
- glTranslate und glRotate kannst du wieder rückgängigmachen indem du entgegen rotierst/verschiebst. Oder du nutzt glPushMatrix/PopMatrix um wie das Koordinatensystem "von vorher" wiederherzustellen.

Das sind Feinheiten dessen, was ich grade eben hoffentlich richtig erklärt, oder aber total verpeilt habe.

Ich habe mal die beiden Prozeduren angehängt, in denen ich entweder etwas falsch mache, oder was falsches erwarte:

Hier frage ich alle erlaubten Eingaben ab, passe den Sichtvektor an, und aktualisiere ggf. meine aktuelle Position (Zumindest will ich das)
Code:
  1. procedure UpdateMovement;
  2. const
  3.   RotXAxis  : TVector3f = (1, 0, 0);
  4.   RotYAxis  : TVector3f = (0, 1, 0);
  5.   RotZAxis  : TVector3f = (0, 0, 1);
  6. var
  7.   Direction : single;
  8. begin
  9.  
  10.   //  Tasten für Rotationen abfragen  //
  11.   if Keys[VK_LEFT] then RotateY := RotateY + 2.8 else
  12.      if Keys[VK_RIGHT] then RotateY := RotateY - 2.8 else
  13.         if Keys[VK_PRIOR] then RotateX := RotateX + 2.8 else
  14.            if Keys[VK_NEXT] then RotateX := RotateX - 2.8;
  15.  
  16.   //  Rotationswerte zwischen 0 und 360 halten  //
  17.   if RotateX < 0 then RotateX:=RotateX+360;
  18.   if RotateX > 360 then RotateX:=RotateX-360;
  19.   if RotateY < 0 then RotateY:=RotateY+360;
  20.   if RotateY > 360 then RotateY:=RotateY-360;
  21.  
  22.   //  Tasten für Bewegung abfragen  //
  23.   if Keys[VK_UP] then Direction := 1 else
  24.      if Keys[VK_DOWN] then Direction := -1 else
  25.         Direction:=0;
  26.  
  27.   //  Den Look-Vektor zuerst um die Achsen drehen  //
  28.   if (abs(rotateX)+abs(rotateY)+abs(rotateZ)) > 0 then
  29.   begin
  30.     RotateVector(LookVec, RotZAxis, -DegToRad(RotateZ));
  31.     RotateVector(LookVec, RotYAxis, -DegToRad(RotateY));
  32.     RotateVector(LookVec, RotXAxis, -DegToRad(RotateX));
  33.   end;
  34.  
  35.   //  In Richtung Sichtvektor bewegen, falls vorwärts oder rückwärts  //
  36.   if direction <> 0 then
  37.   begin
  38.     PosVect[0] := PosVect[0] + (LookVec[0] * (Direction * 0.1));
  39.     PosVect[1] := PosVect[1] + (LookVec[1] * (Direction * 0.1));
  40.     PosVect[2] := PosVect[2] + (LookVec[2] * (Direction * 0.1));
  41.   end;
  42. end;
  43.  


Und hier wird das ganze gezeichnet
Code:
  1.  
  2. procedure glDraw;
  3. begin
  4.  
  5.   UpdateMovement;
  6.  
  7.   glClearColor(0,0,0,1);
  8.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  9.  
  10.   glLoadIdentity;
  11.   glRotate(lookVec[0], 1, 0, 0);
  12.   glRotate(lookVec[1], 0, 1, 0);
  13.   glRotate(lookVec[2], 0, 0, 1);
  14.  
  15.   glTranslatef(PosVect[0],PosVect[1],PosVect[2]);
  16.  
  17.   glColor3f(1.0,1.0,0.0);               // Set our current rendering colour to red
  18.   gluSphere(SphereQuadratic, 1,7, 20); // Render the sphere to the scene
  19.   glFlush();
  20. end;


Apropos: Wie sage ich \"gluSphere\", an welcher Stelle ich die Kugel sehen will? Bei \"normalen Sachen wie
Code:
  1. glBegin(GL_TRIANGLES);
  2. glVertex3f(-1,-1, 0);

kann ich das doch auch?

Oder muss ich michvorher mit "glTranslatef" an dessen Position stellen das Ding erzeugen und dann wieder "zurückspringen"?


Ich hoffe mein Fehler war nich zu dusselig. :) Es wäre auf alle Fälle nett, wenn mir jemand auf die Sprünge helfen könnte.

Grüße, DNA

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 23:25 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Am einfachsten ist es bei der Kamera wenn man diese ganzen Rotationen und Translationen aus acht läßt und mit gluLookAt einstellt, wo die Kamera ist, und wo man hinschauen möchte.
Manchmal ist es auch einfacher die Matrix selber zusammenzustellen und mit glLoadMatrix dann direkt zu laden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 00:20 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Okok...eins nach dem anderen...

Kamera:
Für den Anfang und überhaupt sehr wirkungsvoll ist gluLookAt. Wie Lars schon gesagt hat, kann man mit diesem Befehl angeben wo die Kamera steht und wo sie hinguckt. (Wichtig: gluLookAt muss in der Modelviewmatrix aufgerufen werden. Es funktioniert zwar auch mit der Perspektivmatrix, aber einige GL sachen wie LOCAL_VIEWER beachten nur die Modelviewmatrix... das kann bei Beleuchtungssachen wichtig werden ;) )

Und da sind wir auch schon bei den Matrizen und den gluSphere:
Ja gluSphere muss man per Translate positionieren. Und wenn du deine Kugel sich um irgendwas drehen siehst, was in einem trudeln der Kugel resultiert, dann heißt das, dass der KOU nicht im Zentrum der Kugel liegt, wenn du glRotate aufrufst. (d.h. es wurde glTranslate danach aufgerufen)

Der aktuelle KOU ist dort wo du dich per glTranslate/glRotate "hinbewegt" hast. Die "Kamera" bewegt sich in der Hinsicht nicht...die is quasi fest, und du bewegst die ganze Welt um die Kamera. Da sich das manche aber schwehr vorstellen können nimm einfach folgendes Bild:
Angenommen wir haben nur 2 Dimensionen ... in Y-Richtung arbeiten wir einfach net. Dann stell dir vor, du hast ein kleines Zielkreuz welches du per Translate entlang der Achsen des Kreuzes bewegen und per rotate um die "hochachse (die y-Achse) bewegen...

Weißt du was... Guck dir mal das hier an http://wiki.delphigl.com/index.php/Matrix. Ich werde mich mal hinsetzen und das glRotate/Translate und scale Zeugs in Bildform aufarbeiten und ins Wiki setzen. Ich wollte dazu mal ein Tutorial schreiben habs dann aber sein gelassen...eventuell sollte man das nochmal aufgreifen...

Ach und zu der Diskussion um das Spiel was vielleicht mal ein Communityprojekt werden könnte (wenn du das willst. Schließlich soll dir hier niemand die Idee kapern ;) ) sollte mal ein Mod die entsprechenden Beiträge rauslösen und einen eigenen Thread unter Comunityprojekte aufmachen... (Ich bin da rechtlich beschnitten... *autsch* ;) )

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 07:07 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Flash hat geschrieben:
Ja gluSphere muss man per Translate positionieren. Und wenn du deine Kugel sich um irgendwas drehen siehst, was in einem trudeln der Kugel resultiert, dann heißt das, dass der KOU nicht im Zentrum der Kugel liegt, wenn du glRotate aufrufst. (d.h. es wurde glTranslate danach aufgerufen)


Eigentlich müßte sich der KOU ja auf meiner Position (PosVect) befinden. Schliesslich drehe ich mich um meine Z-Achse und die Kugel soll sich ja um mich drehen. Oder sehe ich das falsch?

Grüße, DNA

edit: <Aussage klarer formuliert>

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 19:52 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
kommt ganz darauf an was du mit deiner Projektionsmatrix gemacht hast. Wenn du dort glTranslate aufrufst, siehst du die kugel obwohl sie an deiner Position aufgerufen wurde...

ich hab gerade das neue Tutorial fertig...ich werds heute den anderen Mods vorlegen...wenn dies durchegehn lassen, hast du morgen neue Lektüre ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 20:13 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Hi Flash,

das wäre ja spitze, dann könnte man am langen Wochenende schön basteln.
Für heute habe ich erstmal 'nen Gang zurückgeschalten. Will heißen:

- erstmal verstehen wie da Postitionieren läuft. Da scheint mir das explizite Setzen mit "glTranslatef(0,0,-10)" und "gluSphere" und wieder "glTranslatef(0,0,10)" ganz brauchbar.
- Wenn das dann geht, dann nehme ich ein paar mehr Kugeln,
- dann drehen wir die Kugeln,
- und dann drehe ich mich selbst,
- und dann kommen wir zu den Bewegungen der Kugel
- und letztlich bewege ich mich selbst.

Ich danke schonmal im Voraus,
DNA

P.S. Wenn's nich klappt, dann dreh ich halt durch. Oder ich dreh ab. Irgendwas dreht sich heute schon noch. :)

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 29 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]