JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=f1de7c1796409cb9c311daddd1a1d564Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Splines

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
foreach
ehem. hanse



Anmeldedatum: 08.05.2004
Beiträge: 183

Medaillen: Keine

BeitragVerfasst am: 25.03.2006, 17:17    Titel: Splines Antworten mit Zitat

Für ein Projekt soll ein Raumschiff verschiedene Punkte abfliegen. Da das Raumschiff keine scharfen Ecken fliegen soll kommt lineare Interpolation nicht in frage. B-Splines gehen auch nicht da das Schiff die Punkte berühren muss.
Also hab ich mich für natürliche Splines entschieden. Da ich die nicht selber implementieren will (wird vermutlich zu langsam und würde zu lange dauern) suche ich eine fertige Implementation.
Hat jemand so eine herum liegen? Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Chriss
Senior JLI'ler



Anmeldedatum: 18.08.2004
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 25.03.2006, 22:16    Titel: Antworten mit Zitat

Ist nicht ganz das was du suchst aber es enthällt was du brauchst

http://www.jliforum.de/board/viewtopic.php?t=4161
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
foreach
ehem. hanse



Anmeldedatum: 08.05.2004
Beiträge: 183

Medaillen: Keine

BeitragVerfasst am: 26.03.2006, 11:57    Titel: Antworten mit Zitat

Naja es sind Bezierpatches. Bei Bezierpatches werden zusätzliche Kontrollpunkte verwendet die von der Kurve (Fläche nicht berührt werdN). Cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 26.03.2006, 14:42    Titel: Antworten mit Zitat

Ich finde das diese Splines sich sehr interessant anhören. Würde ein schönes Thema für einen Wettbewerb abgeben...
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 26.03.2006, 14:51    Titel: Antworten mit Zitat

Mach es Dynamisch:
Das Raumschiff hat zu jeder Zeit im Flug einen Vektor Position und eine Quanternion Richtung. (Die Quanternion enthält also neben dem RichtungsVektor noch eine Information, wie das Raumschiff um die eigene Flugachse gedreht ist)
Und Du hast eine Zielposition, wo das Raumschiff hinfliegen soll. Du kannst doch nun berechnen, in welche Richtung das Raumschiff gelenkt werden muss, damit es dem Ziel näher kommt. Das hat 2 Vorteile gegenüber einer Fest vorher definierten Flugbahn:
Die Zielposition kann dynamisch sein - sprich sie kann sich ändern und das Raumschiff findet trotzdem hin, und Du musst weder Splines, Nurms, Patches oder Beziers berechnen - die Flugbahnkrümmung kommt ganz von alleine.
Wenn du das ganze statt 3D nur in 2D benötigst, sind die Schritte analog - nur sind die Berechnungen um ein vielfaches simpler...
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 26.03.2006, 15:10    Titel: Antworten mit Zitat

genau, so wies AFE gesagt hat, würde es am besten gehen. Damit keine zu großen "Richtungsschwenker" vorkommen, könntest du bei einer Drehung die Endrichtung speichern, bei jedem Frame wenn gedreht wird um eine vorbestimme Zahl drehen, und das solange bis die Endrichtung erreciht ist, in Pseudo ca. so:

Code:

if( Drehend )
{
     Aktuelle_Drehung += Drehungsgeschwindigkeit;

     if( Aktuelle_Drehung == Gesuchte_Drehung )
          Drehend = false;
}


Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
foreach
ehem. hanse



Anmeldedatum: 08.05.2004
Beiträge: 183

Medaillen: Keine

BeitragVerfasst am: 26.03.2006, 17:47    Titel: Antworten mit Zitat

das Problem ist das das ganze Multiplayer mäßig werden soll und ich die Steuerung eben so machen wollte um Traffic zu sparen.

Das wollte ich eigendlich nicht verraten *gg*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 26.03.2006, 19:52    Titel: Antworten mit Zitat

Was schließt sich bei Multiplayer und der vorgestellten Lösung aus? Bzw. wie genau willst du welche Steuerung machen?

Ich finde die Lösung mit Vektoren eigentlich auch die beste. Es wirkt dann auch realistischer, wenn das Raumschiff nicht immer in Richtung der Linie gedreht ist, sondern immer nur in die Beschleunigungsrichtung. Wenn du eine Unterscheidung zwischen Geschwindigkeitsvektor und Beschleunigungsvektor hast, dann brauchst du solche zeitlichen Verzögerungen wie sie in der Realität vorkommen, nicht mehr umständlich einbauen, weil sie in dem ganzen schon integriert sind. Wenn du bei einem Schiff nach rechts lenkt, wird es erst noch eine Weile geradeaus fahren, bis die Beschleunigung die gesamte Masse des Schiffs nach rechts umgelenkt hat Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 27.03.2006, 15:01    Titel: Antworten mit Zitat

The Lord of Programming: Man kann das Raumschiff auch einen Spline abfliegen lassen und trotzdem in eine andere Richtung schauen lassen. Ich nehme mal an seine Flieger sind KI gesteuert also wird das sicher eh irgendwie gescriptet sein. Und eine normale Steuerung mit Beschleunigung etc zu scripten ist wirklich verdammt umständlich.

@hanse: Ich habe auf CD irgendwo eine Facharbeit darüber rumfliegen... kann ich dir gerne schicken damit du es selber probieren kannst wenn du keine Implementierung findest. Ansonsten schau ich mal auf GarageGames.com. Da hat einer eine Spline-Klasse für Weltraumspiele gebastelt.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flow
Junior JLI'ler


Alter: 42
Anmeldedatum: 13.09.2005
Beiträge: 57

Medaillen: Keine

BeitragVerfasst am: 27.03.2006, 15:37    Titel: Antworten mit Zitat

@hazel
wenn Du die Facharbeit auf deiner CD dazu gefunden hast, wäre ich auch sehr daran interessiert Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 27.03.2006, 16:50    Titel: Antworten mit Zitat

Flow hat Folgendes geschrieben:
@hazel
wenn Du die Facharbeit auf deiner CD dazu gefunden hast, wäre ich auch sehr daran interessiert Very Happy

er kann sie ja uploaden, auf sowas als opensource bin ich imer scharf Mr. Green
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 27.03.2006, 16:52    Titel: Antworten mit Zitat

Hazel hat Folgendes geschrieben:
The Lord of Programming: Man kann das Raumschiff auch einen Spline abfliegen lassen und trotzdem in eine andere Richtung schauen lassen.

Klar, hab ich ja auch nicht bestritten Wink
Ich denke nur, dass es so komplizierter ist, weil man es zusätzlich noch einbauen muss.

Hazel hat Folgendes geschrieben:
Ich nehme mal an seine Flieger sind KI gesteuert also wird das sicher eh irgendwie gescriptet sein. Und eine normale Steuerung mit Beschleunigung etc zu scripten ist wirklich verdammt umständlich.

Ich kenne mich zwar nicht so besonders mit gescripteter KI aus, aber was hat die KI mit der Physik der Welt zu tun?
Das Script bzw. die ("Wegfindungs-")KI muss ja eigentlich nur das Ziel selbst bestimmen bzw. ein paar Eckpunkte, die es vorher noch abfahren muss. Die Physik würde ich direkt ins Programm integrieren. Kann sein, dass ich das unterschätze, aber ich kann mir wirklich nicht vorstellen, was an dieser Methode so schwer/umständlich sein soll.
Den Beschleunigungsvektor bestimmt man mit den Werten der KI, den Geschwindigkeitsvektor hat man noch aus den vorherigen Frames und muss dann ganz einfach mit Vektoraddition arbeiten.

Aber hanse, kannst du vielleicht erläutern, was genau an der vektorbasierten Lösung nicht zu deinem Projekt passt? Das hat mich jetzt neugierig gemacht Smile
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 27.03.2006, 18:12    Titel: Antworten mit Zitat

The Lord of Programming hat Folgendes geschrieben:

Ich kenne mich zwar nicht so besonders mit gescripteter KI aus, aber was hat die KI mit der Physik der Welt zu tun?
Das Script bzw. die ("Wegfindungs-")KI muss ja eigentlich nur das Ziel selbst bestimmen bzw. ein paar Eckpunkte, die es vorher noch abfahren muss. Die Physik würde ich direkt ins Programm integrieren. Kann sein, dass ich das unterschätze, aber ich kann mir wirklich nicht vorstellen, was an dieser Methode so schwer/umständlich sein soll.
Den Beschleunigungsvektor bestimmt man mit den Werten der KI, den Geschwindigkeitsvektor hat man noch aus den vorherigen Frames und muss dann ganz einfach mit Vektoraddition arbeiten.

Aber hanse, kannst du vielleicht erläutern, was genau an der vektorbasierten Lösung nicht zu deinem Projekt passt? Das hat mich jetzt neugierig gemacht :)


Naja es ist auf alle Fälle schwerer als Splines, welche recht simpel sind. Wenn man die Physikengine dazu benutzen würde müsste man Integrieren um herauszubekommen wieviel Gas das Schiff geben muss um genau auf dem Punkt zur Ruhe zu kommen. Das gleiche gilt für die Rotationsbeschleunigung. Wenn man das Schiff ne weiche Spline abfliegen lässt und ein bisschen per Script oder KI die Rotation faket dann ist es auf alle Fälle einfacher so hinzukriegen das es cool/intellelligent aussieht als nur mit der Physik. :)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum