Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Obige Prozedur ist für einen Ball, der durch ein Drehmoment nach vorne bewegt wird, was bei einem Charakter ja nicht gemacht wird (du rollst ja nicht durch die Gegend, oder)?
Und wenn du die Position deines Spielers neu setzen willst (von Hand) musst du die neue Matrix natürlich auch an Newton mit NewtonBodySetMatrix (oder so) übergeben, damit Newton weiß wo du deinen Charakter haben willst.
Joa, habs mal per Hand gemacht... Aber dann geht die Collision net oder?
Oder woran kanns liegen das die colli net geht?
Ich meine, ich falle auf meinen Boden und kann darauf nun laufen.
Aber hab mir mal ne Wand gemacht. laufe einfach durch diese hindurch.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Was meinst du "von Hand"? Die Matrizen musst du doch so oder so von Hand erstellen und dann nur an Newton (wie oben gesagt) übergeben. Aber wenn die Kollision mit dem Terrain (damit meinst du doch den Boden, oder?) geht, dann sollte das mit der Mauer doch auch gehen. Schau dir mal NewtonBodyForEachPolygonDo bzw. NewtonWorldForEachBodyDo an, mit denen man für Debuggingzwecke z.B. die Kollisionsergebnisse visualisieren kann, damit kann man schnell Fehlerquellen ermitteln.
Ne, boden und Wand, beides in einer *.3ds Datei, deshalb verstehe ichs net.
Denn der Baum muss ja erstellt werden. Wenn ich ne Schräge hochlaufe, dauerts bis ich ganz oben bin, auch wenn sich am x und z wert nichts mehr ändert.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Also deine Kollision mit dem Boden funzt zu 100%, nur mit der Mauer nicht? Dann benutz doch mal die Funktionen die ich oben gepostet habe, mit denen kann man Kollisionen visualisieren. Dann siehst du ob überhaupt ein Kollisionsversuch mit dem Polygonen der Mauer stattfindet.
Wobei QE und QS die PerformanceCounter Zeiten sind, und tf die Frequenz ist. Allerdings gibt es 1. bei unterschiedlichen FPS trotzdem unterschiedliche Geschwindigkeiten und 2. scheint es egal zu sein, ob ich da *100 oder *100000 eingebe, weils letztendlich trotzdem die gleiche Geschwindigkeit beir mir ist!
Die minimale Framerate ist 60 (standard), es bringt aber soweit ich das gesehen hab nichts, die umzuändern: Wenn ich sie runterstelle, so auf 10, ändert sich logischerweise nichts, aber wenn ich sie auf ~200 Stelle, geht die Performance sehr weit runter, noch mehr, als bei 60, wenn viele Kollisionen sind. außerdem fliegt dann meine Kugel anders, also nicht nur langsamer, sondern auch nicht so weit, wie sie bei 60 fliegen würde.
Was meinst du mit Zwischenschritten?
Übrigens ists bei mir bei deiner Ragdoll Demo genauso, bei vielen fps fallen die ragdolls schnell, bei wenigen langsamer. Ich würd ja meinen, das ist logisch, aber wenn das in Newton schon Zeitbasiert ist...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zwischenschritte bedeutet NewtonUpdate mehrmals innerhalb eines Frames aufzurufen (mit dem passenden Zeitabstand), das dürfte helfen. Das mache ich in meinen bisherigen Demos nicht, deshalb auch deine Beobachtung bzgl. des Ragdolldemos.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Was ich ganz vergessen hab (war ein wenig im Stress) : Am besten machst du es eh mit einem Thread, so mache ich es in meiner aktuellen Demo auch, und das scheint wunderbar zu funzen. Vorher (wie HPC) machte es merklichen Unterschied ob ich mit Schatten (=FPS niedriger) oder ohne rendert, das Fahrzeug bewegte sich jeweils mit unterschiedlichen Geschwindigkeiten. Hab dann NewtonUpdate in einen eigenen Thread (mit fester Auflösung) gepackt, und siehe da : es funzt jetzt unabhängig.
So, ich hoffe mir kann noch jemand anderes Helfen. (Außer SOS, der hat Stress )
Habe mal die Dateien hochgeladen (ca. 800kb) ist ja auch nicht viel, und auch SEHR übersichtlich.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Warum hast du denn in der Hauptunit einfach die Lizenzbestimmungen rausgelöscht? Und warum hast du die Create3DSCollisionTree-Funktion in deinen Quellcode kopiert ohne die Lizenzbestimmungen zu beachten (da sind ja sogar noch meine original Kommentare drinne)? Das finde ich ehrlich gesagt reichlich unschön.
Ansonsten werde ich mir den Source mal ansehen, aber warum hast du denn nicht die zu cullende Seite einfach umgestellt (auf GL_FRONT), damit die 3DS-Datei korrekt angezeigt wird? Ist nur eine Zeile Code, 3DS hat nämlich eine andere Vertex-Drehrichtung als OGL.
1. Die Lizensen sind gerade nur draussen, so wie andere komentare, weil das schon genug zum downloaden ist oder? zu groß.
2. Ja, sagte ich doch, deine funktion ist solang drinne bis es funktioniert, dann kann ich mir ne eigene schreiben.
Aber bevor ich es nicht nutzen kann, mache ich das auch net :-/
3. Dachte das geht per glCullfacing(GL_CCW); und GL_CW, werde es auch GL_FRONT umstellen, danke.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
~->GEF<-~ Adler hat geschrieben:
1. Die Lizensen sind gerade nur draussen, so wie andere komentare, weil das schon genug zum downloaden ist oder? zu groß..
Guter Witz...die Lizenzen am Anfang der Datei machen wenns hoch kommt 1-2 KByte aus. Und ausserdem steht das unter einer Lizenz, an die man sich zu halten hat, ich schreibe ja nicht umsonst das meine Quellen unter der GPL stehen. Und wenn da steht "GPL", dann hat sich jeder auch daran zu halten, das ist nämlich das Mindeste was ich als Gegenleistung für meine Arbeit will : Das ihr (wenn meine Sachen genutzt werden) diese auch unter die GPL stellt (Source zugänglich), und das die original Lizenzbestimmungen in der Datei erhalten bleiben. Solche Aktionen gefallen mir absolut nicht, und bei meiner nächsten Newtondemo werde ich mir zweimal überlegen ob ich einfach so den Source veröffentliche, hält sich ja anscheinend doch kaum jemand an die Lizenz.
Das ist doch keine Demo von dir!
Höchstens ist da ne Lizens von dem Template DGLOpenGL weg.
Ausser der procedure ist da nix von deiner demo drinne ODER?
wennn doch belehre mich eines besseren, will auf keinen Fall irgend ne Lizens brechen, das wäre ja gegens gesetz :-/
habe lediglich diese eine Procedure ERSTMAL rauskopiert.
Mitglieder in diesem Forum: Bing [Bot] und 7 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.