Blender GameEngine Entwicklung [2.64+]

Unterstützung für Spiele und Interaktion.

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Doc Holiday » 06.08.2011, 01:27

Klasse moerdn, kanns kaum erwarten bis das geht. Bin guter Dinge das Du das hinbekommst. Schon vorab ein herzliches Danke. :D
Benutzeravatar
Doc Holiday
3 Tutorien
3 Tutorien
 
Registriert:
22.02.2003, 01:16

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 06.08.2011, 11:21

:)

Ich versuche es zumindest soweit zu treiben, das die BGE Devs sich den Spaß mal ansehen. Wäre gut Feedback zu bekommen von den Leuten die da richtig drin stecken. Es gibt im Moment noch viele ungelöste Probleme und auch Fragen, wie man es am besten angehen sollte.

Ich konnte es jetzt nochmal weiter optimieren und die Rendering Aufrufe auf die optimierten Batches beschränken. Dadurch kann ich locker 20000 Objekte in einer geringerer Zeit darstellen (8ms bei 20000 vs 10ms bei 13000 Objekten).
http://www.youtube.com/watch?v=FomMea9_xvA

Allerdings ist dabei das Frustum Culling für die optimierten Meshes kaputt gegangen, was mich zu der Überlegung bringt ob das Bauen der optimierten Strukturen im Rasterizer der richtige Platz dafür ist.

Weiterhin dauert das Optimieren je nach 'Join Radius' mehr oder weniger lange, bzw umso mehr unabhängige Gruppen vorhanden sind, umso länger dauert das Optimieren. An der Stelle müsste man dann über Multithreading nachdenken (Optimierung findet permanent im Hintergrund statt) und die Welt in Pages aufteilen, dynamisch nachladen und freigeben etc.

Billboards funktionieren auch noch nicht so wie ich das gerne hätte. Und natürlich wäre es dann gleich noch ratsam das LOD für an der Stelle zu implementieren und auch dementsprechendes User Interface zur Verfügung zu stellen.

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Doc Holiday » 06.08.2011, 23:42

Nach meiner Logic müßte dann erst mal Frustum, Occluder, LOD usw. abgeschlossen sein. Dann kann man was übrig ist optimieren.

Ich weiß vor Bullet (2.3x) war das schon mal so. Aber das lag dann an der alten Physik Engine. Man konnte die ganze Scene duplizieren. Hat man alle Kopien zu einem Mesh zusammengefügt, und alle anderen einzelnen Meshes auf "no Collision" gesetzt, konnte man dennoch die FPS steigern.

Eigentlich dachte ich das wäre jetzt nimmer so. Weil Bullet damit gut zurecht kommt. Mit vielen Objekten funktionieren auch Frustum, Occluder, OpenGL DisplayLists exakter.

Wie machen das denn andere Engines?
Benutzeravatar
Doc Holiday
3 Tutorien
3 Tutorien
 
Registriert:
22.02.2003, 01:16

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 07.08.2011, 16:24

Das Joinen der Meshes 'von Hand' funktioniert jetzt auch noch, man hat dabei aber keine Möglichkeit mehr vernünftiges Frustum Culling durchzuführen da sich die Bounding Box ja über das gesamte gejointe Mesh erstreckt.

Umso weiter weg sich die Objekte befinden umso größer müsste der Join Radius werden. Für den nahen Bereich wäre dann einfaches Frustum Culling + LOD ausreichend. Problematisch ist der Szenegraph, der auch nicht auf eine große Anzahl an Objekten ausgelegt ist. Ich überlege ob es machbar wäre, Knoten zu gruppieren um damit die Iterationen zu reduzieren und schon frühzeitig entscheiden zu können, welche Bereiche optimiert werden müssen.

In Ogre3D werden verschiedene Szenegraphen angeboten, die für spezielle Einsatzgebiete (Indoor, Outdoor, Generic) optimiert sind.

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 08.08.2011, 19:59

Wollte hier auch mal die frohe Botschaft übermitteln: Ein direkt in Blender integriertes LOD System: http://www.youtube.com/watch?v=MZivkFLUT2k

Hier der original Thread dazu:
http://blenderartists.org/forum/showthr ... cussion%29

Mal schauen was Moguri dann sagt. Der Code ist momentan noch seeehr Hacky.

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon HG1 » 09.08.2011, 13:01

@Moerden
Ich beschäftige mich nun auch schon seit einem Tag mit dem Blender Sourcecode, Ich verwende Visual Studio C++ 2008 zum kompilieren. Aber für Blender ist Visual Studio eher ungeeignet da man nicht debuggen und direkt kompilieren kann.

Daher habe ich ein paar Fragen an dich.
1. Auf welchen Betriebssystem entwickelst du?
2. Gibt es ein Beschreibung für den Sourcecode (wo was zu finden ist), oder muss man alles selber raus finden?
3. Verwendest du eine IDE zum programmieren?
4. Hast du schon mal versucht mit Code::Blocks Blender zu kompilieren? Denn mich würde es interessieren ob sich Blender damit direkt kompilieren lässt.
HG1
 
Registriert:
16.08.2010, 10:43

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Aurelio Kessler » 09.08.2011, 16:07

HG1. Mit VS C++ 2k8 kannst du mit mehr oder weniger Aufwand Kompilieren der schnellste weg geht über scons (siehe Link: Für das Kompilieren). Der längere weg geht über cmake selber link.

Ich bin auf Win mit VS C++ 2k8 express und Win SDK unterwegs. Win SDK ist dafür da das man 64bit Kompilieren kann.

Wünsche dir viel vergnügen mit den folgenden Links:

Das ist die wichtigste Anlaufstelle für Blender Entwickler:
http://www.blender.org/development/

Für das Kompilieren:
http://wiki.blender.org/index.php/Dev:D ... ng_Blender

Und hier noch mal nen link:
http://wiki.blender.org/index.php/Dev:Contents

Ich hoffe dir hilft das weiter.


Grezz MarcAurelio
You want to see my Work? Look into my YouTube Channel!
djHexSwiss Channel/Kanal
Benutzeravatar
Aurelio Kessler
 
Registriert:
09.05.2011, 16:59

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 09.08.2011, 21:42

Hallo HG1, ich entwickele unter Linux mit der Entwicklungsumgebung Emacs und verwende Scons zum bauen von Blender. Für das Debuggen verwende ich GDB. Eines der wichtigsten Tools um mit dem Source Code klar zu kommen ist grep. Damit suchst du nach Zeichenketten in Dateien.

Wenn du bestimmte Sachen im Code suchst, kannst du auch hier fragen. Evtl bin ich schon mal drüber gestolpert. Der GE Source Code ist relativ überschaubar. Printf Debugging ist auch oft sehr nützlich!

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon HG1 » 10.08.2011, 14:54

Danke euch Beiden. Ich werde mir das mal die Tools ansehen.
HG1
 
Registriert:
16.08.2010, 10:43

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon HG1 » 11.08.2011, 15:31

Ich habe mir Emacs, GDB, grep mal angesehen. Mir ist das aber das kompliziert. Ohne eine anständige Schritt für Schritt Anleitung oder jemanden der mir zeigt wies geht brauche ich Tage bis ich da was zustande bekomme.

Deswegen habe ich es mit CodeBlocks, Eclipse und Visual Studio ausprobiert.
CodeBlocks kompiliert alle Files (.obj) bricht aber beim Linken ab.
Das gleiche gilt für Eclipse.
Visual Studio habe ich es dann geschafft von Blender 2.59.0 den Release zu kompilieren.
HG1
 
Registriert:
16.08.2010, 10:43

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon Sebi » 12.08.2011, 13:43

@Moerden: Ich findet echt geil das du die Engine weiterentwickelt. :wink:

Ich arbeite sehr gerne mit der Engine von Blender.
Ich hasse es von Blender nach Unity3D zu importen mal sein Texturen nicht kommen ich geil mit Blender ein gut Game zu erstellen ohne umimporten rein.

Was ich mir noch wüschen ist das in Blender Shaderfile in Python rein ladt.
Ich möchte mich auch ein mal mit den Blender Sourcecode beschäftigt.
Liebe Grüße, Sebi :)
http://sebidev.wordpress.com
Sebi
 
Registriert:
09.08.2011, 13:50

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 17.08.2011, 12:23

Und weiter gehts: http://www.youtube.com/watch?v=SyQt4UiBKiA

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon HG1 » 20.08.2011, 19:58

HG1
 
Registriert:
16.08.2010, 10:43

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon moerdn » 23.08.2011, 09:49

Ein weiterer Vorschlag für Verbesserung der GE: Ein neuer Physic Typ, mittels Bullet kinematic character controller.

http://lists.blender.org/pipermail/bf-c ... 33171.html

würde viele Setups einfacher machen.

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon SaphireS » 23.08.2011, 12:04

moerdn hat geschrieben:Ein weiterer Vorschlag für Verbesserung der GE: Ein neuer Physic Typ, mittels Bullet kinematic character controller.

http://lists.blender.org/pipermail/bf-c ... 33171.html

würde viele Setups einfacher machen.

mfg, der moerdn


Hab mich auch gefreut als ich gelesen habe dass Bullet das bereits bereitstellt, ich hoffe das wird bald integriert als GE Option!
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 » 29.08.2011, 15:45

Mal ein Benchmark Vergleich mit dem YoFrankie! Game gemacht.

Bild

Mit LOD (und natürlich sinnvollen Einstellungen) ist die Performance ca 40-80% besser. Umso komplexer das Level, umso mehr wird das LOD bringen. Die Berechnungen für das LOD fallen sehr gering aus und bewegen sich in diesem Beispiel im gleichen Bereich wie die unoptimierte Blender GE Version.

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon SaphireS » 30.08.2011, 23:02

moerdn: Sehr interessante Zahlen! Da lohnt es sich dranzubleiben.

On Topic: Mit dem Merge von Pepper sind auch die BGE Animation Improvements von Mitchell Stokes im Trunk! :D
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 » 31.08.2011, 07:42

Ja, das ist eine sehr feine Nachricht. Hoffe, das noch bald Kupomans Bugfix Branch integriert wird und dann gibt es wirklich keinen Grund mehr noch mit 2.49 zu arbeiten.

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

Re: Blender GameEngine Entwicklung [2.5+]

Beitragvon SaphireS » 01.09.2011, 11:31

Am liebsten haette ich den Shader-Branch von gsoc 2010 in trunk integriert, aber der besitzt leider noch einige kleinere ToDos soweit ich weiss...
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 » 01.09.2011, 11:58

Ja, der Blender 'Shader Designer' wäre schon sehr genial gewesen. Ich hoffe aber immer noch das der irgendwann mal aufgenommen wird.

Habe nun die aktuelle Trunk Revision in meinen LOD Branch gemerged. Scheint alles soweit zu klappen. Wer den Code mal kompilieren möchte:

Code: Alles auswählen
git clone git://gitorious.org/~moerdn/blenderprojects/moerdn-bge-sandbox.git moerdn-bge-sandbox
git remote add moerdn-bge-sandbox git://gitorious.org/~moerdn/blenderprojects/moerdn-bge-sandbox.git
git fetch moerdn-bge-sandbox
git checkout -b local-ras-lod moerdn-bge-sandbox/ras-lod
cd moerdn-bge-sandbox/blender
python scons/scons.py


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

VorherigeNächste

Zurück zu Game Engine


Wer ist online?

Mitglieder in diesem Forum: Exabot [Bot] und 3 Gäste