Kabelmesh erstellen
Übersicht

Freak123Betreff: Kabelmesh erstellen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kompliziert?
Du hast noch nicht meine Gleichung zum Zielen auf beschleunigte Ziele mit beschleunigten Geschossen gesehen! ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@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. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group