Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Noch ein Hinweis für NVidia-Nutzer (wollte das eigentlich vorher posten, habs vergessen, aber Noeska hat mich darauf hingewiesen) :
Aufgrund der Tatsache das man für korrekte Selbstschattierung glPolygonOffset nutzen muss, kanns auf NVidia-Karten zu Darstellungsproblemen bei Schatten kommen. Eigenartigerweise funzt der Polygonoffset für Stencilschatten auf ATI-Karten tadellos (factor = 0 / bias = 100), aber auf ner GeForce zerstören diese Wert die komplette Darstellung. Von daher musste ich den factor bzw. bias auf sehr kleine Werte (0.001) stellen, um zumindest teilweise funzende Selbtschattierung zu bekommen, was aber nicht reicht. Warum das auf NVidia so ist weiß ich momentan ehrlich gesagt nicht, denn im Normalfall was bisher eher so dass ATI Probleme macht, und nicht NV.
Was mir bei Newton (ebenso wie ursprünglich bei ODE) abgeht, ist die Möglichkeit, die entsprechende Datei dynamisch laden zu können (eine entsprechende Unit ist aber nicht allzuschwer zu erstellen). Ein Traum wäre allerdings eine .obj Datei, die man mit einer entsprechenden Unit statisch in ein Delphiprogramm linken kann, denkst du, dass eine Chance besteht, dieses Feature zu realisieren?
Man kann DLL's in (statisch gelinkte) Delphi units konvertieren. Der Benjamin Rosseaux hatte bei seinem Musikprogramm mal so etwas gemacht. Eventuell kannst du dich mal mit ihm in Verbindung setzen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Da OBJ-Dateien ja sprachenübergreifend sind (von MS, und der Macher von Newton nutzt AFAIK VC++) und es bereits .lib-Dateien gibt, kann ich mal anfragen ob das möglich wäre. Werds mal an den Macher richten und hier dann antwort geben.
@Sascha
Dachte ich auch - und habe in Visual Studio von ODE mal ganz normale COFF Object Dateien erstellt. Leider musste ich dann feststellen, dass Delphi eben dieses Format nicht verwendet, sondern offenbar eine Erweiterung des älteren OMF Formates. Delphi selbst inkludiert ein Konvertierprogramm (COFF2OMF oder so ähnlich), das aber bei mir kläglich versagte - und mit dem C++ Builder (den es als Kommandozeilenversion ja gratis zum Download gibt) war ich nicht in der Lage ODE zu kompilieren.
Wenn der Macher dies tatsächlich inkludieren würde, wäre dies für Delphiprogramme IMHO eine erhebliche Verbesserung, im Prinzip müsste der Newton Source ja nur mit dem C++ Builder kompiliert werden - den entsprechenden Kompiler könnte er völlig legal (und kommerziell uneingeschränkt) von Borland selbst runterladen.
@Lars
Ich habe im grad eine Mail geschrieben, bin gespannt auf die Antwort. Wenn es wirklich möglich wäre beliebige DLLs unter Delphi statisch zu linken, fände ich dies großartig. (Bei BGP Programmen werden diese ja zuerst entpackt und dann ganz normal dynamisch geladen).
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
@Mars:
Wahrscheinlich kennst Du diese Seite schon, aber unter http://www.digitalmars.com/ctg/coff2omf.html wird beschrieben, wie man VC++ 6.0 Lib's in ein äteres COFF - Format umwandelt, um diese dann mit COFF2OMF in das OMF - Format zu konvertiern.
Die Digital Mars Seiten kenne ich schon, dass man den Microsoft Linker dazu verwenden kann, Object Dateien in ein älteres Format umzuwandeln, das dann wiederum von coff2omf verstanden wird, wusste ich allerdings nicht.
Ehrlich gesagt wollte ich aber auch nicht allzuviel Zeit investieren, quasi "von hinten mit der Faust durchs Auge" unbedingt ein statisches Object File zu generieren, da es mit DLLs prinzipiell genauso klappt, und ich nicht jedes DLL Release neu konvertieren muss. Immerhin ist es gut zu wissen, dass man mit coff2omf nicht unbedingt am Ende der Fahnenstange ist - ich werds bei Gelegenheit nochmal mit ODE versuchen und für den Newton Delphi Port könnte es ebenfalls interessant sein.
Interessant ist auch die Methode von Benjamin Rosseaux, der die DLL als Daten direkt in den Source einfügt, und den PE Header selbst interpretiert - coole Sache.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Da dass Newton-SDK momentan recht große Schritte mache, und ich anderswo bereits angerissen habe was ich grade so werkle bzw. was demnächst von NGD zu erwarten ist gibts hier mal als "Teaser" zwei aktuelle Shots aus meinen momentanen Demos :
Meine Fahrzeugdemo, die spätestens kurz nach dem Release des nächsen NGD-SDK n aufgebohrter und korrigierter Version erscheinen wird. Dem ein oder anderen werden evtl. oben links die diversen Debug-Werte auffallen. Die sind momentan deshalb da, weil ich versuche ne Gangschaltung zu implementieren. Wer sich mit dieser Thematik auskennt, wird wissen dass das eine sehr schwierige aufgabe ist.
Das ist "NewtonPlayGround" (NewtonSandkasten), eine Demo in der man alle von Newton angebotenen Primitiventypen austesten kann. Man kann diese entweder zufällig spawnen lassen (siehe rechte Buttons) oder über das Editor-Interface (linke Buttons) mit einem eigenen Dialog (im Shot nicht sichtbar) spawnen. Ausserdem kann man Szenen nach XML exportieren bzw. wieder aus XML laden. So kann man vorgefertigte Szenarien erstellen und dann quasi "abspielen". Spaß machen tut auch die Möglichkeit jegliche Körper mittels Maus irgendwo anpacken und dann wild durch die Gegend schleudern zu können.
Rennfahrzeug mit verschiedenen Antriebstypen und ner Gangschaltung
Über 120 dynamische Objekte
Looping und Sprungchance
Ne große Rennstrecke
Verschiedene Materialien
Dynamische Schatten
Kleiner Nachtrag zum Timing der Demo : Ich nutze inzwischen akkumulatives Time-Slicing, die Demo dürfte also unter allen Konstellationen mit gleicher Geschwindigkeit ablaufen, was aber natürlich nicht bedeutet dass es in hoher Auflösung und mit aktiven Schatten nicht trotzdem ruckelig wird. Wer mit Schatten spielen will, der sollte schon nen schnelle Graka und nen dicken Prozessor haben. Bei mir läufts in 1024x768 mit aktiven Schatten recht annehmbar, ohne Schatten dann auch in 1600x1200.
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
Darf ich hier gleich n kleines Feedback geben?
Funktioniert toll. Hab natürlich - da bei der ersten Demo die fps derbst runtergingen - Schatten ausgelassen. Dachte mir "jetzt crashst du mal das system", drückte S und siehe da - nichts passiert .
Muss wohl an deinen akumulativen Kuchenstücken liegen.
Ansonsten: Hatte grad Stromausfall, konnte noch nicht ganz durchfahren, aber ansonsten: geil. Wie lange hast du für das spiel an sich gebraucht(ohne die 3d-szene)?
EDIT: Gibt es eine geheime Taste, um die Bodenhaftung der Reifen zu erhöhen? Wäre echt gut!!
Looping und Sprungschanze - das hatte ich mir immer erhofft!!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
luketheduke hat geschrieben:
Ansonsten: Hatte grad Stromausfall, konnte noch nicht ganz durchfahren, aber ansonsten: geil. Wie lange hast du für das spiel an sich gebraucht(ohne die 3d-szene)?
Kann ich nicht genau sagen. Ich habe dem Macher von NGD (da meine Demo sehr komplex ist) recht stark bei der Fehlersuche helfen können, dafür ging jede Menge Zeit drauf. Aber vom Quellcode her ists recht locker, das Basteln der 3D-Szene hat länger gedauert.
luketheduke hat geschrieben:
EDIT: Gibt es eine geheime Taste, um die Bodenhaftung der Reifen zu erhöhen? Wäre echt gut!! Looping und Sprungschanze - das hatte ich mir immer erhofft!!
Vor dem Looping steht ein Schild. Da steht auch drauf wie man durch den Looping kommt. Entweder auf 4WD oder Hinterrad schalten, mit gedrückter rechter Shift-Taste Anlauf holen und durch den Looping, das funzt.
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
durch den looping bin ich schon gekommen, hab auch das schild gesehen. aber dass die bodenhaftung selbst bei 4wd so schlecht ist, das meine ich als kritikpunkt.(man könnte doch winterreifen aufziehen, vor allem für die eisfläche)
Was ich aber viel wichtiger brauchen würde: Ein paar einfache Beisiele, wie man joints zum laufen bringt. da warte ich gespannt auf deinen Sandkasten!!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
@Demo :
Dass das Fahrzeug mit 4WD so schlittert hat nix mit der Haftung an sich zu tun, sondern eher der Tatsache dass dort dann ein sehr sehr hohes Drehmoment auf die Räder wirkt (besonders wenn man noch den Turbo aktiviert). Da ich aber ja auch andere Antriebsarten drin habe, kann ich da nicht einfach die Haftung der Materialien unendlich hochschrauben.
@Joints :
In der nächsten Demo werden wohl keine Joints drin sein (ausser in Form von Ragdolls), da es schon von der Art des Demos her schwer wäre Joints unterzubringen. Schliesslich kann der Nutzer alle möglichen Sachen spawnen, und ich müsste dann wohl ein eigenes Interface für Joints basteln, was zu viel Arbeit wäre. Aber auf der Newtonseite gibts ja diverse Demos in denen man Joints in Aktion sieht, und beim SDK ist doch auch ein Demo (+Source) dabei in dem Joints gezeigt werden.
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
dann muss mein innerer schweinehund wohl doch die hoffnung auf ein delphiprogramm, wo mit ausführlichen kommentaren steht, wie man joints macht, aufgeben.... werd ich mich wohl bei gelegenheit durch das sdk durchlesen(da steht doch nur c++ code drin,oder?).
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ja, aber wie so oft : Wer eine Programmiersprache kann, kann auch alle anderen. So viel anders ist die C++-Syntax ja auch nicht, und ob da jetzt ein @ oder ein & steht spielt keine Rolle, die Befehle (wie bei OpenGL) sind ja die gleichen. Und ausserdem habe ich weder vor die Quellen vom Fahrzeugdemo, noch die Quellen vom "Sandkasten" zu veröffentlichen. Im SDK gibts zu den Demos übrigens auch schriftliche Tutorials.
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
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.