Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Apr 18, 2024 17:32

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: NewtonPlayGround
BeitragVerfasst: Sa Feb 11, 2006 12:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Einleitung :
Nachdem es hier ja bereits nen Meinungsthread dazu gibt und ich auch in den News etwas darüber gepostet habe, wollte ich den NewtonPlayGround auch hier in der Projektsektion etwas genauer vorstellen. Warum ich damit bis heute gewartet habe hat einen driftigen Grund : Der PlayGround ist sehr komplex und ich wollte ihn erst richtig publik machen wenn ich ne fehlerbereinigte Version online habe. Und nun ist Version 1.51 online (schon seit gestern, aber ich wollte noch ein wenig warten um wirklich sicher zu gehen dass die gröbsten Fehler auch wirklich weg sind) weshalb ich jetzt (langsam) anfange die Werbetrommel zu rühren.

Beschreibung :
Der NewtonPlayGround war ursprünglich als kleine Demonstrationsanwendung für die Features der Newton Game Dynamics Engine (einer Physikengine für Echtzeitanwendungen, v.a. Spiele) gedacht, hat sich aber seit seiner Grundsteinlegung irgendwann im dritten Quartal 2004 zu einem mächtigen Tool entwickelt dass man (eingeschränkt) sogar dazu nutzen kann um physikalische Szenen für seine Spiele oder Anwendungen zu erstellen. Im Prinzip lassen sich mit ihm alle Features der NGD nutzen (natürlich kann man, wenn man selbst programmiert noch viel interessantere Sachen damit machen), angefangen von einfachen Primitiven (Boxen, Kugeln, etc.) über konvexe Hüllen für 3D-Objekte (die entweder aus .3DS oder .X-Dateien geladen werden können, dazu hab ich eigens nen einfachen .X-Loader für OpenGL geschrieben), hin zu zusammengesetzten Kollisionsobjekten (aka. "Compound Collisions"), mit denen komplexe Objekte angenähert werden können und natürlich auch Fahrzeuge (über Newtons Fahrzeugkontainer).
Die Objekte können dann durch den Nutzer beeinflusst werden, der kann sie z.B. durch die Gegend werfen oder im Character-Controller Modus mit sich rumtragen (ähnlich der Gravity-Gun aus HL²).
Ausserdem kann man erstellte Objekte auf verschiedene Arten miteinander verbinden. Am häufigsten geschieht dass wohl über Joints (zu Deutsch : Verbindung), von denen der PlayGround insgesamt 9 Stück anbietet die fast ausschliesslich über Newtons Interface für benutzerdefinierte Joints implementiert wurden, welches einem die Möglichkeit gibt eigene Joints zu erfinden. Neu in v1.51 ist übrigens die Möglichkeit für Slider und Hinges Dämpfer zu aktivieren, damit lassen sich dann u.a. komplexe Aufhängungen erstellen. Zusätzlich zu den Joints gibts übrigens auch noch Federn, allerding momentan nur sehr grundlegend ohne z.B. Distanzbeschränkungen. Zu guter Letzt kann man seine einfachen Primitiven (Boxen, Zylinder, Kugeln, etc.) auch nachträglich zu einem Compound verbinden. So kann man schnell auch ohne 3D-Modeller (wie das z.B. bei den "echten" Compounds bzw. konvexen Hüllen der Fall wäre) etwas komplexere Objekte zusammenstellen.

Der Coder-Teil :
Hier will ich ein wenig über die code-technischen Hintergründe des PlayGrounds palavern. Wenn ich nicht total irre (progge ja schon seit ~17 Jahren) ist der NewtonPlayGround mein bisher größtes Projekt. Begonnen hab ich damit irgendwann im 3.Quartal 2004, und bis zur aktuellen Version (1.51) ist der PlayGround einen sehr weiten Weg gegangen. Anfangs nur als kleines Demotool gedacht ist er jetzt eine sehr komplexe Anwendung, deren Möglichkeiten eigentlich nur durch die Vorstellungskraft des Nutzers eingeschränkt werden.

Der "Kern" des NewtonPlayGrounds besteht momentan aus 27 einzelnen Units und ist höchst modal gehalten. So kann ich z.B. den Primitivenmanager (oder Jointmanager oder Materialmanager, etc.) unmodifiziert in andere Anwendungen und Demos übernehmen, was im Endeffekt also quasi einen sehr umfangreichen OOP-Wrapper für NGD ausmacht.

OpenGL-technisch steckt im PlayGround übrigens mehr als man mit blossen Auge sieht, denn einige der Features die ich implementiert habe kann man momentan aufgrund bestimmter Umstände nicht aktivieren. Für Schatten werden momentan z.B. Stencil-Schattenvolumen genutzt, aber auch Shadowmaps hab ich implementiert (siehe mein Blog), die aber weniger geeignet waren und deshalb nur im Code "schlummern". Bei meiner Debug-version kann ich allerdings mittels Knopfdruck zwischen Schattenvolumen und Shadowmaps umschalten. Ausserdem sind sogar Shader mit an Bord (wer sich durch die Verzeichnisse gewühlt hat, wirds vllt. gesehen haben) um Cel-Shading zu ermöglichen (hatte ich auch mal was zu im Blog gepostet). Allerdings ist Cel-Shading stark von korrekten Normalen abhängig und das macht die ganze Sache zusammen mit 3DS-Dateien unansehnlich, weshalb die Shader zwar da sind, man Cel-Shading aber (noch) nicht aktivieren kann. Ansonsten gibts im Renderbereich nicht wirklich viel Interessantes, hier gehts ja auch eher um die Demonstration der Physik.

Extra für dieses Projekt hab ich auch nen Loader für DirectX-3D Dateien (.X) geschrieben, der momentan allerdings nur das ASCII-.X Format liest und auch dort nur grundlegende Eigenschaften. Wer mit dem 3DS-Format arbeitet und dessen Einschränkungen (so wie ich) satt hat, wird nachvollziehen können warum ich nach einem anderen Format Ausschau gehalten hab. Und obwohl .X von der "Konkurrenz" kommt, muss man MS eingestehen ein durchaus intelligentes Formatdesign in die Welt entlassen zu haben, das weitaus mehr kann als 3DS und auch weit verbreitet ist.

Ein weiteres Kernelement ist übrigens der XML-Ex bzw. Import. Damit kann man seine erstellten Szenen in eine auch von Menschen lesbares Format exportieren und auch aus diesem heraus laden. Das klingt im ersten Moment wenig aufbrausend, aber das Format ist so gehalten dass man es auch leicht in eigene Anwendungen importieren kann. So kann man seine Szenen nicht nur an andere weitergeben, sondern auch in eigene Anwendungen importieren.

Screenshots :
Ohne Eye-Candy gehts nicht, daher hier die offiziellen Shots (noch aus 1.5) :
Bild Bild Bild Bild
Bild Bild Bild Bild
Bild Bild Bild Bild
Bild Bild Bild Bild

Und hier noch ein Shot (nicht-klickbar) der zeigt wie man mit den neuen Dämpfern aus 1.51 komplexe Aufhängungen erstellen kann :
Bild

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Zuletzt geändert von Sascha Willems am So Okt 22, 2006 16:36, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 28, 2006 18:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Auf Anfragen hin hab ich ein kurzes Promo-Video (1:40 Min) zur aktuellen NewtonPlayGround Version erstellt und hochgeladen. Der Download befindet sich hier :
http://newton.delphigl.de/newtonplayground/newtonplayground_151_promo.wmv (12 MByte, WMV-Format)

Wer also den NewtonPlayGround nicht installieren bzw. nicht benutzen kann, kann sich jetzt also via Video ansehen was es damit auf sich hat.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 01, 2006 20:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
In meinem Blog hab ich die Tage ja drauf hingewiesen dass ich evtl. wieder ein Spiel entwickeln will und dort auch nen Screen von nem alten Prototyp (mit recht interessantem Gameplay gepostet), und heute habe ich mal angefangen ne zweite Spielidee (auch mit Fahrzeugen, aber mehr "old-school") zu prototypisieren, und zwar im NewtonPlayGround. Also anstatt ne eigene Anwendung mit allem Drum-und-Dran schreiben zu müssen (Physik, OpenGL, etc.) hab ich einfach ne Strecke und ein Vehikel modelliert und dann im NewtonPlayGround geladen. Hier ein paar Shots (klicken für größer) :

Bild Bild Bild

Bin mal gespannt ob jemand erraten kann welches ältere Spiel (kein Klassiker, schon 3D!) mich hier inspiriert hat. Momentan habe ich keine konkreten Pläne, da mich die andere Spielidee (Protoyp 1 den ich oben erwähnt habe) auch reizt. Aber wenn ich mich für eins der Designs entscheide, würde ich evtl. mal was in nem Team machen um v.a. in Sachen Content etwas umfangreicheres (evtl. sogar als Shareware) auf die Beine zu stellen, der technische Unterbau ist ja gegeben.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 08, 2006 00:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie auf meinem Blog angesprochen habe ich mein aktuelles Projekt (PjW) kurzzeitig pausiert um das längst übefällige Update des NewtonPlayGrounds fertigzustellen. Das habe ich bereits mehrere Male angekündigt, aber meist kam etwas dazwischen, diesmal ists jedoch anders. Die letzten Tage habe ich die einzige wirklich große Neuerung implementiert, nämlich Skinned Ragdolls, inklusive Stencilschatten und der Möglichkeit sie mit Materialien, Federn und Joints zu versehen.

Momentan bastle ich an ein paar Beispielszenen für das neue Release, darunter auch eine in der man eine Zombie-Ragdoll einen "Tunnel der Qualen" herunterfallen sieht (evtl. kennt der ein oder andere das aus der UT2k4-Map "DM_Gael"). Zu dieser Szene habe ich ein Video hochgeladen, und da kein Fall dem anderen gleicht (da kommen manchmal interessante "Biegungen" zustande) sieht man im Video zwei Sturzflüge der Ragdoll. Das Video kann hier heruntergeladen werden, es ist diesmal aufgrund besserer Qualität und längerer Laufzeit knapp 10 MByte groß und liegt im WMV-Format vor.

Hier noch ein Screenshot :
Bild

Release von NPG setzte ich mal für Mitte/Ende nächster Woche an. Wie gesagt fehlen nur noch ein paar Beispielszenen für das neue Feature, getestet und geprüft wurde das Feature bereits und dabei sind mir keine Probleme mehr begegnet. Ansonsten gibts dann halt noch das Update auf die aktuellste Newtonversion, ein paar Bugfixes und eine Verbesserung der Federn im NPG, so dass man diese nun auch z.B. zwischen Ragdoll und Fahrzeug spannen kann.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 10, 2006 01:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Irgendwie bekomm ich meist spät in der Nacht sowas wie "Heisshunger", allerdings nicht auf Nahrung (wie der restliche Teil der Bevölkerung) sondern auf "neue Features". Dann so circa vor ner halben Stunde hab ich ein Feature implementiert dass ich sehr lange vor mir hergeschoben habe : mangetische Kräfte.
Momentan ists noch mehr ein "Hack", die Werte sind also hardcoded und die Kräfte wirken momentan auch nur zwischen normalen Primitiven (also keine Ragdolls oder Vehikel), aber dafür hab ich dann ja morgen noch Zeit. Die Implementierung war sehr einfach (~15 Minuten), zumal sich das nicht wirklich stark von den bereits eingebauten Funktionen und Berechnungen für die Federn unterscheided.

Auch diesmal gibts dann wieder ein Video, welches man hier runterladen kann. 5 MByte groß, WMV-enkodiert.

Screenie :
Bild

Und obwohls im Video nur ein paar Boxen und eine schwarze Kugel zu sehen gibt schaffen die Mangetkräfte doch eine recht ansehnliche "Koreographie", also wieder ein Feature dass den NPG durchaus bereichern dürfte.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: NewtonPlayGround 1.53
BeitragVerfasst: So Okt 22, 2006 16:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie angekündigt habe ich endlich Version 1.53 fertiggestellt und veröffentlicht. Den Download und Changelog gibts auf http://newton.delphigl.de/newtonplayground.html.

Wie bereits angesprochen sind die zwei wichtigsten Neuerungen skinned Ragdolls sowie magnetische Objekte. Neue Beispielszenen um diese Features zu zeigen sind im Download auch enthalten. Ansonsten gibts Bugfixes und ein paar Änderungen an der GUI, u.a. graphische Buttons fürs Objektkontextmenü, statt wie bisher einfache Textbuttons.

Screenshots :
Bild Bild Bild Bild

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 27, 2007 22:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Lange gabs keine neue Version mehr der Newton Game Dynamics Engine, doch langsam kommt wieder Bewegung in die Sache. Für interne SDK-Entwickler wurde bereits eine Alpha von Version 2.00 veröffentlicht, und ein Highlight ist, dass der Solver nun auch mehrere Kerne unterstützt, also über mehrere Threads läuft. Die Zahl ist frei festlegbar, und gegenüber der Einzelkernvariante bringt das sehr viel mehr an Geschwindigkeit.

Ich hab bei der Gelegenheit auch mal schnell meinen NewtonPlayGround mit dieser Alpha getestet und obwohl eineiges nicht 100% funktioniert (es ist ja noch eine Alpha) machts schonmal eine sehr gute Figure. Vor allem in stressigen Szenen läuft die Sache viel schneller und beide Kerne meiner CPU werden ausgelastet.

Ich häng hier auch gleich mal zwei Bilder an, auf dem linken Version 1.53 (Physik nur auf einem Kern), rechts 2.00 (Physik auf beiden Kernen) :
Bild Bild

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 38 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.277s | 17 Queries | GZIP : On ]