Kabelmesh erstellen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Freak123

Betreff: Kabelmesh erstellen

BeitragMi, Sep 01, 2010 11:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mir die Aufgabe gestellt, ein Kabelmesh zu erstellen dessen Anfangs-, Endpunkt und Länge ich kenne. Leider komme ich einfach nicht weiter.

Ich habe als Ansatz die "Cloth Simulation" von Noobody benutzt. Das Kabel soll am anfangs und Endpunkt fixiert sein und der Rest des Kabels wenn möglich durchhängen, außer es liegt auf z.b. Quadern auf.
Die Endlage soll das Mesh darstellen.

Ich erhoffe mir durch das erstellen eines mesh mehr Geschwindigkeit, da das Kabel nur einmal berechnet werden muss.

mesh=CreateCable(start_x,start_y,start_z,ende_x,ende_y,ende_z,laenge)


Ich hoffe mir kann jemand helfen.

Hakkai

BeitragMi, Sep 01, 2010 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde der Funktion anstatt der Länge, eher die Breite mit übergeben. Die Länge ergibt sich ja von selbst wenn du anfang und ende kennst. Wenn das Kabel irgendwo aufliegen soll muss das ja sicher mit kollisionen gemacht werden, womit du der Funktion wohl auch das Objekt, mit dem es kollidieren soll, übergeben.

Wie das aber dann genau von statten gehen soll, weis ich auch nicht. Bin auf eine Lösung gespannt.
 

Freak123

BeitragMi, Sep 01, 2010 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit der Breite ist sinnvoll.
Die länge benötige ich da ich kein straff gespanntes Kabel möchte.
Bei der Kollision habe ich an LinePick gedacht. => da muss ich das kollidierende Objekt nicht kennen, nur vorher per EntityPickMode aktivieren.

Vertex

BeitragMi, Sep 01, 2010 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Siehe Katenoide (Kettenfunktion)
Edit: Sehe gerade, Blitz hat keine cosh-Funktion (Cosinus Hyperbolicus). Aber man kann es über exp berechnen: siehe http://de.wikipedia.org/wiki/K...Definition
vertex.dreamfall.at | GitHub
 

Freak123

BeitragDo, Sep 02, 2010 8:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs mir angeschaut. => Schaut kompliziert aus

Vielleicht mach ich das ganze über die Verletphysik(geniales Tutorial von Noobody), da ist die Kollision mit anderen Objekten auch leichter.

mfg

mpmxyz

BeitragDo, Sep 02, 2010 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Kompliziert?
Du hast noch nicht meine Gleichung zum Zielen auf beschleunigte Ziele mit beschleunigten Geschossen gesehen! Wink
Du brauchst nur eine der oberen Funktionen, um den Verlauf der Kette zu bestimmen. (eine Information, die du gebrauchen kannst: cosh(x)=(exp(x)+exp(-1))/2 )
Der Rest ist nur eine Erklärung dazu.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Noobody

BeitragDo, Sep 02, 2010 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ganze mathematisch per Kettenkurve zu berechnen, würde normalerweise Sinn machen, um nicht für zighundert für den Spielverlauf eher unwichtige Stromleitungen noch eine Physikengine laufenzulassen, aber da die Kabel hier noch auf Objekten aufliegen können, wird es ein wenig schwieriger.

Simple Verletintegration würde für den Anwendungszweck wohl gut reichen. Zwar würde ich es nicht während dem ganzen Spiel laufen lassen, aber du könntest ja zum Beispiel im Editor nach dem Platzieren der Kabel 10 Sekunden lang (oder bis sich nichts mehr bewegt) die Simulation laufen lassen und die Punkte dann speichern.

Für die Simulation selbst würde ich einfach eine handvoll per Verlet simulierte Punkte aneinanderhängen (dass die Seile noch eine Dicke besitzen, ist für die Physik eigentlich nicht besonders wichtig - Kollision untereinander wirst du ja nicht einbauen wollen, oder?) und mit LinePick auf Kollision mit der Umgebung prüfen. Die Cloth-Simulation, die du schon erwähnt hast, macht es auch so; man muss ein wenig tricksen, damit die Punkte dann nicht an der Kollisionsfläche kleben, sondern rutschen können, aber im Prinzip kannst du dich auch von der Kollisionsfunktion in dem Code inspirieren lassen.

Dass du mein Tutorial verwendest, ehrt mich natürlich, obwohl ich eher die überarbeitete Version empfehlen würde, falls du des Englischen und C++ mächtig bist. Einige Erklärungen kommen mir in der deutschen Version ein wenig schwammig vor, zumal ja auch die Skizzen ziemlich müllig sind Razz
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

Freak123

BeitragFr, Sep 03, 2010 8:23
Antworten mit Zitat
Benutzer-Profile anzeigen
@mpmxyz: natürlich nicht, ist eben höhere Mathematik

@Noobody: Ich verwende die Verletphysik(mit 3.Dimension). Es wird das Endprodukt in ein Mesh gespeichert.

ICh weiß noch nicht ob ich LinePick oder Collisions verwenden soll.
LinePick ist glaube ich ein wenig komplizierter.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group