Seite 3 von 4

Verfasst: 29.12.2008 18:21
von DarkDragon
Kaeru Gaman hat geschrieben:womit aber immer noch nicht beantwortet ist, wie man denn dann die Window3D-Funktionen über einem 2D Screen verwenden soll. /:->
Eigentlich ist das nicht gewollt soweit ich weiß. Denn CEGUI gehört zu OGRE und Fred hat das so vereinbart, dass man nur nach einem RenderWorld auf die Sachen zeichnen darf.

Man könnte höchstens Billboards machen und daraus eine 2D Engine basteln.

Verfasst: 29.12.2008 18:24
von Kaeru Gaman
ok, dann ist die Hilfe unvollständig.

aus den ausführungen zur Window3D-Lib / CEGUI ist nicht ansatzweise ersichtlich,
dass sie einzig und allein zum Betrieb mit RenderWorld() gedacht ist.


... aber vielleicht irrst du dich ja auch...

Verfasst: 29.12.2008 18:29
von DarkDragon
Kaeru Gaman hat geschrieben:ok, dann ist die Hilfe unvollständig.

aus den ausführungen zur Window3D-Lib / CEGUI ist nicht ansatzweise ersichtlich,
dass sie einzig und allein zum Betrieb mit RenderWorld() gedacht ist.


... aber vielleicht irrst du dich ja auch...
http://www.purebasic.fr/english/viewtop ... enderworld
Fred hat geschrieben:

Code: Alles auswählen

- Possibility to mix 2D sprite and 3D (must be put after RenderWorld()). For DX9 (Windows) and OpenGL (OSX, Linux). 

Verfasst: 29.12.2008 18:35
von Kaeru Gaman
öh... na und?

wo steht da was von Window3D?
Help zu Window3D hat geschrieben:Die Window3D Bibliothek ermöglicht die Erstellung komplexer grafischer Bedienoberflächen (englisch "Graphical User Interface" - kurz "GUI") direkt über dem Screen-Bereich, mittels der 3D-Engine. Dies ist hauptsächlich gedacht für Spiele und Anwendungen, welche Anwendereingaben benötigen, während sie im Vollbildschirm-Modus laufen. Diese Bibliothek basiert auf der regulären PureBasic Window-Bibliothek, und bietet ähnlichen Syntax und Verhalten. Die verwendete GUI-Engine ist CEGUI, welche einige schöne Optionen anbietet - wie "Skinning", gute Geschwindigkeit und eine Menge an eingebauten Gadgets. Mehr Informationen über CEGUI sind hier zu finden: http://www.cegui.org.uk.

Sie verwendet die 3D-Engine, daher muss vor dem Verwenden dieser Funktionen InitEngine3D() erfolgreich aufgerufen worden sein.
da steht aber nicht, dass man 3D-Objekte verwenden muss und RenderWorld,
da steht nur, dass die extra-Fenster und -Gadgets mittels der 3DEngine erstellt werden.

Die Notwendigkeit einer 3D-Umgebung und das Verbot eines 2D-Screens ist nicht allein aus der Erwähnung des 3D-Engine immanent!

Verfasst: 29.12.2008 18:47
von DarkDragon
Kaeru Gaman hat geschrieben:öh... na und?

wo steht da was von Window3D?
Help zu Window3D hat geschrieben:Die Window3D Bibliothek ermöglicht die Erstellung komplexer grafischer Bedienoberflächen (englisch "Graphical User Interface" - kurz "GUI") direkt über dem Screen-Bereich, mittels der 3D-Engine. Dies ist hauptsächlich gedacht für Spiele und Anwendungen, welche Anwendereingaben benötigen, während sie im Vollbildschirm-Modus laufen. Diese Bibliothek basiert auf der regulären PureBasic Window-Bibliothek, und bietet ähnlichen Syntax und Verhalten. Die verwendete GUI-Engine ist CEGUI, welche einige schöne Optionen anbietet - wie "Skinning", gute Geschwindigkeit und eine Menge an eingebauten Gadgets. Mehr Informationen über CEGUI sind hier zu finden: http://www.cegui.org.uk.

Sie verwendet die 3D-Engine, daher muss vor dem Verwenden dieser Funktionen InitEngine3D() erfolgreich aufgerufen worden sein.
da steht aber nicht, dass man 3D-Objekte verwenden muss und RenderWorld,
da steht nur, dass die extra-Fenster und -Gadgets mittels der 3DEngine erstellt werden.

Die Notwendigkeit einer 3D-Umgebung und das Verbot eines 2D-Screens ist nicht allein aus der Erwähnung des 3D-Engine immanent!
Klar, allerdings will ich dir ja nur helfen ein Workaround zu finden und dazu musst du eben wissen:
Die Window3Ds und Gadget3Ds gehören zu CEGUI. CEGUI ist ein Plugin von OGRE. OGRE rendert nur innerhalb der RenderWorld Funktion und überschreibt den Backbuffer komplett.

Um eine Änderung in der Dokumentation zu erreichen gibt es ja schon einen anderen Beitrag, den du sogar selbst erstellt hast ;-) :

http://www.purebasic.fr/german/viewtopi ... c&start=50

Verfasst: 29.12.2008 19:07
von Kaeru Gaman
latürnich weiß ich, wo das topic zu hilfeverbesserungen ist.


> OGRE rendert nur innerhalb der RenderWorld Funktion und überschreibt den Backbuffer komplett.

bedeutet das, dass Window3D nicht außerhalb des Bereichs eines Screens dargestellt werden kann, also die Verwendung mit einem WindowedScreen garnicht sinnvoll ist?


und es bleibt trotzdem die Frage, warum die Clear-Farbe diejenige ist, die beim letzten Laufenlassen ohne Engine3D verwendet wurde.
das ist ja das merkwürdige Verhalten was ich in dem Beispiel beschrieben habe.

Verfasst: 29.12.2008 19:28
von PMV
CEGUI ist kein Plugin zu OGRE. Das stimmt nicht. Aber du hast mich an
was erinnert, was ich schon längst hätte erwähnen müssen. /:->

CEGUI ist erst mal ein Fenstersystem für Spiele, welches eine
Schnittstelle für Grafikengines bereit stellt. PureBasic 4.30 verwendet das
OGRE-Plugin für CEGUI (logisch), ohne OGRE also kein CEGUI. Was
sinnvoll wäre ist, ein eigenes PlugIn für CEGUI zu schreiben, das mit den
PB-Spritebefehlen arbeitet. Dann wäre OGRE nicht mehr für CEGUI nötig
und auch viel brauchbarer. Naja, PB4.40 ist ja in Arbeit ... sollte man
vielleicht mal auf den Wunschzettel schreiben :D

@Kaeru ... Fehlerhafte Programme können noch viel mehr machen ... ich
weis nicht mehr was es war ... aber plötzlich haben sämtliche
Windowsfenster 10 und mehr Sekunden gebraucht um zu öffnen ... ach
ja, das war beim Fehlerhaften nutzen von UseGadgetList() ... erst nach
nem Neustart wars wieder gut :D

Ich vermute also mal, dass durch das Fehlerhafte nutzen sich etwas
verstellt und irgend wo etwas abgespeichert wird, was nicht
abgespeichert werden sollte.

MFG PMV

Verfasst: 29.12.2008 19:44
von kayfr72
Kaeru Gaman hat geschrieben:womit aber immer noch nicht beantwortet ist, wie man denn dann die Window3D-Funktionen über einem 2D Screen verwenden soll. /:->
Denke mal das es Window3D heißt weil es auf einen 3D Screen erstellt werden kann. (Siehe Beispiel "QuatreVues.pb" aus Demo3D die ich weiter oben verlinkt habe.

kayfr72

Verfasst: 29.12.2008 19:45
von Kaeru Gaman
... und wieso heißt Sprite3D dann so? /:->

nein, das ist kein Argument.

Verfasst: 29.12.2008 20:06
von kayfr72
Schau dir doch erst mal das Beispiel an Demo3D.zip an. Da steht der Befehl in QuatreVues.pb in der Zeile 44 und 45 auskommentiert. Entfern doch mal das Semikolon und schau was passiert.

kayfr72