Blender GameEngine Entwicklung [2.64+]

Unterstützung für Spiele und Interaktion.

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Bobbycar » 22.06.2011, 12:13

Ich glaube dass Benoit nichts in release logs schreiben wird, oder?
http://lists.blender.org/pipermail/bf-c ... 32337.html
Man. ich bin aber hungrig auf recast..Ich will das so sehr! So viele probleme fallen dann ab!!
Bobbycar
 
Registriert:
01.06.2011, 19:39

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 22.06.2011, 13:01

Ich würde ja sagen: kompiliere es dir doch einfach :) Der Recast Branch auf snv.blender.org scheint aber noch nicht aktuell zu sein, zumindest gibt es beim kompilieren unter Linux noch Fehler (die sich aber relativ einfach beheben lasse)

mfg, der moern
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Bobbycar » 22.06.2011, 13:16

Ich würde das machen. Aber du hast selbst schon gesagt. Ist nicht aktuell. Außerdem hat Benoit geschrieben, dass es (bei ihm) stabil läuft. Also er ist viel weiter mit allem gegangen. Man könnte ihn vielleicht bitten eigenes build zu machen und auf graphicall zu legen. Weiß nicht.
Bobbycar
 
Registriert:
01.06.2011, 19:39

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 22.06.2011, 14:20

Kommando zurück. Es ist doch alles auf dem aktuellen Stand. Das es unter Linux zu Fehlern beim kompilieren kommt, liegt vermutlich am Compiler. Der GCC hat wohl etwas gegen unbedingte Sprunganweisungen (GOTO) in Verbindung mit C++ Style Variablen Deklaration warum auch immer. Unter Windows sollte es ganz normal und ohne Probleme übersetzen, unter Linux muss man etwas im Source rumfrickeln. Es wird zb auch die Funktion qsort_s verwendent, unter Linux muss man aber qsort_r benutzen, dh an der Stelle (source/blender/editor/utils/navmesh_conversion.cpp) muss noch ein Präprozessor Macro hin. Seltsam das Benoit und Nicks noch nicht danach gesehen haben, die scheinen wohl kein Linux zu verwenden. Es gibt wohl noch ein paar Fehler im GUI, bzw das scheint noch nicht an die Änderungen der API angepasst worden zu sein, ansonsten läuft es aber nach wie vor.

mfg, der moerdn
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Bobbycar » 22.06.2011, 15:42

Oh. Das ist aber schön, was du schreibst. Dann versuche ich morgen zu kompilieren.
MfG.
Bobbycar
 
Registriert:
01.06.2011, 19:39

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon HG1 » 23.06.2011, 21:14

Habe mir gerade den offizielle Blender Version 2.58 runter geladen. Leider sind deine Änderungen nicht drinnen.
HG1
 
Registriert:
16.08.2010, 10:43

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 24.06.2011, 07:55

Ja, das war aber klar. Habe das zu kurz vor dem 2.8er release gepostet. Es gab auch noch keine Code review und bis jetzt auch nur eine 1+ von Alex Fraser. Da müssen schon andere Leute dafür sein. Da jetzt die aber alle 2 Monate ein Release kommen wird, lässt sich vielleicht eher was mache.

Es müssen auch noch ein paar weitere Dinge überprüft/implementiert werden. Die Constraints sollten auch mit LibLoad erhalten bleiben und Gruppen sollten auch dynamisch nachgeladen werden können. Ich bleibe auf jeden Fall dran.

mfg, der moerdn
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Bobbycar » 25.06.2011, 12:12

Irgenwie klappt es nicht bei mir mit soc-2010-nicks brunch. Viele warnings und fehler beim Kompilieren. In der Art: "double" in "float" bla bla..
Weiß nicht überhaupt vonran das liegen könnte. Vielleicht am Compiler?. (VS 2010)
Bobbycar
 
Registriert:
01.06.2011, 19:39

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 25.06.2011, 12:37

Windows ist einfach schrecklich ^^ Du musst VS Version 9 - 2008 verwenden um Blender kompilieren zu können. Mit der 10er funktioniert es nicht.

mfg, der moerdn
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Bobbycar » 01.07.2011, 08:37

Sowohl mit VS 2008 als auch mit 2010 gibts ein Haufen typkonvertierungs- und adressierungwarnings. Und noch ein kleines Häufchen dazu..Vielleicht habe ich falshes brunch geholt..
Egal. Mit dem ganzen Kramm will ich mich nicht weiter beschäftigen, nur um Recast zu kriegen. hab Benoit gebeten, ein Build zu machen.
Bobbycar
 
Registriert:
01.06.2011, 19:39

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 18.07.2011, 08:59

Mal wieder ein paar Neuigkeiten aus der Blender Dev Ecke. Mogurijin arbeitet gerade an Speedups des Animationssystems. Es gibt einen neuen Profiler Eintrag 'Animations' der angibt wie viel Zeit für das Animieren benötigt wird. Darunter fällt aber nicht die Deformation des Meshes. Evtl wird Hardware Skinning einen weiteren Zuwachs an Performance bieten.

Quelle: https://mogurijin.wordpress.com/

Die Geschwindkeitsverbesserung ist aber jetzt schon beachtlich:
Trunk: 19.8 fps
Animation Branch: 47.28 fps
Man beachte auch wie die Logik Berechnung stark entlastet wird.

Die Testdatei mit Sinbad gibt es auf Moguris Blog zum Downloaden.

mfg, der moerdn
Dateianhänge
Alt.png
Neu.png
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Monster » 20.07.2011, 06:16

Das hört sich doch super an :)
Benutzeravatar
Monster
 
Registriert:
20.07.2006, 12:55

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Doc Holiday » 20.07.2011, 23:55

Jau! Sehr gut! :thumbup:
Auch der Rasterizer hat weniger zu ackern. Oder hat das damit nichts zu tun?
Benutzeravatar
Doc Holiday
3 Tutorien
3 Tutorien
 
Registriert:
22.02.2003, 01:16

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 21.07.2011, 06:02

Das der Rasterizer weniger zu tun hat liegt auch mit an der Reduzierung der Animationsaufrufe von 60/s auf 30/s. (hier könnte man evtl. nochmal sparen in dem man auf 25/s runter geht.)

mfg, der moerdn
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon SaphireS » 23.07.2011, 10:52

Ich verfolge diesen branch auch gespannt, einige tolle Sachen sind bereits drin.
Das GE-Nodes die Midterm Evaluation nicht ueberstanden hat ist schade, aber laut Plan sollte am Ende dieses Projektes sowieso erstmal nur ein Prototyp vorhanden sein, also haette es so oder so noch laenger gedauert bis wir das in Blender haben...
Mein Blog, inkl. Portfolio & Tutorials: http://www.saphirestudio.at
Livestream Blenderprojekte: http://www.twitch.tv/saphirestudio
Benutzeravatar
SaphireS
 
Registriert:
04.09.2006, 12:02

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 02.08.2011, 16:54

Es wurden weitere Animationsspeedups erreicht, habe ich aber noch nicht ausprobiert. Multi UV Layers (bis zu 8 ) werden nun auch unterstützt.

Generelle GameEngine Optimierung

Ich möchte aber hier nun eine Idee zur Steigerung der Rasterizer Performance diskutieren um den LOD Thread nicht weiter mit allgemeineren Dingen zu belasten. Test haben gezeigt, dass die Performance der GE vor allem beim Rendern von einer größeren Anzahl von Objekten einbricht. Auch dann, wenn die Objekte extrem Low-Poly sind.

Die BGE fasst Objekte mit gleichem Material in sogenannten 'Buckets' also Sammelbehältern zusammen um diese dann hintereinander rendern zu können. Dadurch hat man viel weniger Render State switches. Allerdings ist es weiterhin von Vorteil, viele dieser Objekte in einem Bestimmtem Radius zu einem einzigen Mesh Objekt zusammenfassen zu können.

Habe mal ein paar Tests laufen lassen, die zeigen, welches Potential die GameEngine im Moment einfach so verschenkt, weil bestimmte Optimierungen nicht (fertig) implementiert worden sind.

Bild

Der Plot zeigt ein paar Messwerte im direkten Vergleich.
Blau: Blender 2.58.1 aktueller Build aus dem Trunk
Grün: angepasste Blenderversion 2.58.1 mit Mesh Join Optimierung

Die Testszene besteht aus ganz simplen Cubes:

Bild

Gerade wenn es um die Darstellung großer Außenlandschaften geht, bei der im Hintergrund Tausende Attrappen wie Bäume etc aufgestellt werden sollen, ist diese Technik einfach extrem wichtig. Mit dem Gruppieren könnte man dann gleich noch eine Art 'Pageing' implementieren um solche Gruppen dynamisch nachladen und entfernen zu können.

Wenn man dann zehntausend Objekte gleichzeitig im Viewport darstellen kann, lässt sich dann auch eher über die Frage der Polygonreduktion nachdenken.

mfg, der moerdn
Dateianhänge
01-Slow.jpg
Ohne Mesh Join
01-Fast.jpg
Mit automatischer Mesh Optimierung
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon ecto111 » 02.08.2011, 17:19

Ziemlich beeindruckend, was für eine Mühe du dir machst.
Aber eine Frage hätte ich: Wenn es gut ist, dass die Objekte zusammengefasst werden, wäre es dann ein Vorteil, wenn man einfach alle Static-Objekte einer fertigen Scene zu einem einzigen Objekt "joined"?

Oder würde das keinen Vorteil bringen, weil die Objekte unterschiedliche Materialien haben?

Grüße,
ecto
Zum reinschauen:
Bild Bild
Benutzeravatar
ecto111
 
Registriert:
28.02.2009, 13:46

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 02.08.2011, 17:33

Das Joinen von Hand war in Tat der erste Test den ich durchgeführt hatte ;) Klar das klappt wunderbar, bringt aber auch jede Menge Nachteile mit.

Du musst das Joinen dann von Hand machen, ein großer gejointer Block kann womöglich nicht mehr durch Frustum Culling vom Rendering ausgeschlossen werden und man hat als statische Geometrie in der Regel Gruppeninstanzen, diese könnten dann nur von der BGE automatisch optimiert werden.

Wie gesagt, das ist nicht auf meinem Mist gewachsen, der Code ist prinzipiell vorhanden, muss eben nur zum funktionieren gebracht werden. Im Moment ist das Joinen extrem langsam und funktioniert bei link duplicates nicht (und bestimmt bei anderen Sonderfällen auch nicht) Die Transformationsmatizen werden auch nicht immer korrekt gesetzt etc.

Ich habe noch einen weiteren Test mit 6000 Billboarding Bäumen gemacht und siehe da, der BGE geht nicht mehr die Puste aus. 3ms vs. 18ms sind doch ein recht deutliches Ergebnis.

EDIT: Die grüne Linie für das Rendern bei meiner Blender Test Version verwendet momentan einen abgeänderten, unoptimierten Rendering Aufruf mit mehreren if Abfragen und Iteration über alle Objekte in dem Bucket. Ich bin mir relativ sicher, dass man hier die Renderdauer auf unter eine Millisekunde bekommt, auch wenn hunderttausend Objekte gleichzeitig dargestellt werden müssen.

mfg, der moerdn
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 05.08.2011, 19:59

Performance Vergleich zu meinen Rasterizer Speedup Versuchen:

Objektanzahl: 13000 Cubes. Alle gleichzeitig sichtbar im Viewport.

offizielle Blender 2.58.1 Version:
- 73 Millisekunden Rasterizer
- 8 ms Szenegraph
- 12 fps

mit aktivierter Rasterizer Optimierung
- 10 ms Rasterizer
- 8 ms Szenegraph
- 53 fps

Habe nun die C++ KD-Tree Bibliothek in Blender integriert und die wesentlichen Funktionen zur optimieren neu geschrieben.

mfg, der moerdn
Benutzeravatar
moerdn
 
Registriert:
05.11.2007, 08:52

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon easy-bios » 05.08.2011, 20:52

Moerden du bist mein Held! ^^
Sobald dein nächster Build mit Group-Instances un dieser neuen Verbesserung da ist steige ich auf V 2.58.moerden um. ;)
Eigentlich gehörst du ins offizielle BlenderGE Entwicklungsteam...

mfG, Richy
Benutzeravatar
easy-bios
 
Registriert:
05.02.2011, 23:56

VorherigeNächste

Zurück zu Game Engine


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast