Wie bau ich das Level auf unter Ogre?
Wie bau ich das Level auf unter Ogre?
Servus,
eigentlich hab ich grad kein 3D-Projekt oder sowas, habe bisher auch meist nur 2D-Sachen gemacht, aber rein interessehalber würde mich mal interessieren, wie man die interne Ogre-Engine benutzt (die ja von einigen abgelehnt wird, also wohl nicht wegen Ogre sondern wegen der PB-"Version" von Ogre), da ich halt einfach mal ein bißchen rumexperimentieren will.
Wie würde ich nun z.B. ein Level aufbauen? Also vor allem interessiert mich das in Bezug auf Wände - eine Figur usw. ist eine Entity, klar, aber gilt das auch für Wände? Eine "AddRectangle"-Funktion oder sowas hab ich nicht gefunden, daher gehe ich von zwei Möglichkeiten aus - entweder ich mache Mauerblöcke als Entities und verteile diese im Level, oder ich baue das komplette Level in einem 3D-Programm zusammen und importiere das als eine einzige Entity.
Was ist nun der richtige Weg? Oder ist womöglich beides falsch?
eigentlich hab ich grad kein 3D-Projekt oder sowas, habe bisher auch meist nur 2D-Sachen gemacht, aber rein interessehalber würde mich mal interessieren, wie man die interne Ogre-Engine benutzt (die ja von einigen abgelehnt wird, also wohl nicht wegen Ogre sondern wegen der PB-"Version" von Ogre), da ich halt einfach mal ein bißchen rumexperimentieren will.
Wie würde ich nun z.B. ein Level aufbauen? Also vor allem interessiert mich das in Bezug auf Wände - eine Figur usw. ist eine Entity, klar, aber gilt das auch für Wände? Eine "AddRectangle"-Funktion oder sowas hab ich nicht gefunden, daher gehe ich von zwei Möglichkeiten aus - entweder ich mache Mauerblöcke als Entities und verteile diese im Level, oder ich baue das komplette Level in einem 3D-Programm zusammen und importiere das als eine einzige Entity.
Was ist nun der richtige Weg? Oder ist womöglich beides falsch?

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Ja ich weiß, da gibt's oft Kontroversen.
Aber gerade deshalb wollte ich mir das einfach genauer anschauen, um halt auch mal zu sehen, wo die Grenzen sind und vielleicht auch zu verstehen, warum Ogre/PB hier keinem so richtig gefallen will.
Naja theoretisch könnt ich auch einfach Ogre in C++ benutzen, aber ich wollt gerade auch mal die (scheinbare?) Einfachheit der Ogre/PB-Befehle nutzen um mich auch erstmal in das 3D-Thema einzufinden.
Aber gerade deshalb wollte ich mir das einfach genauer anschauen, um halt auch mal zu sehen, wo die Grenzen sind und vielleicht auch zu verstehen, warum Ogre/PB hier keinem so richtig gefallen will.
Naja theoretisch könnt ich auch einfach Ogre in C++ benutzen, aber ich wollt gerade auch mal die (scheinbare?) Einfachheit der Ogre/PB-Befehle nutzen um mich auch erstmal in das 3D-Thema einzufinden.

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> es redet hier keiner mehr von ogre, ist abgenabelt von pure.
ich schätze mal, Zeha hat nach informationen gefragt, nicht nach sprüchen.
in der alten version gabs noch den LoadWorld-befehl, damit konntest du BSP-levels einladen.
das ist ein etwas anderes prinzip als ne entity,
im grunde ne menge von unterschiedlichen simple-meshes,
die in ner baumstruktur gruppiert nen level bilden.
dafür gibts ein paar verschiedene standards,
das world-format der quake-engine ist afaik das verbreiteste.
auf welchem wege komplexe levels (worlds) in die aktuelle PB-OGRE
version eingeladen werden, ist mir nicht bekannt.
outdoor wird wieder auf ner anderen grundlage aufgebaut,
natürliche strukturen werden oft mit einem HeightField gebaut,
also eine 2D-Map, die höhenwerte enthält.
das ist das, was du beim Terrain-example sehen kannst.
aber grundsätzlich scheint es mir durchaus so,
als ob Fred mit der OGRE-implementation nicht richtig mithalten kann,
er ist anscheinend komplett ausgelastet mit dem updaten der drei platform-versionen von PB.
der Irrlicht-wrapper macht nen guten eindruck,
auch vorher hatte ich schon gutes von Irrlicht gehört.
auch natives openGL ist wohl möglich,
damit hab ich mich allerdings noch nicht auseinandergesetzt.
da hatte ich vor drei jahren mal reingeschnuppert, war allerdings zwecklos,
denn erst seit 4.0 sind 8byte argumente möglich die OGL benötigt.
ich schätze mal, Zeha hat nach informationen gefragt, nicht nach sprüchen.
in der alten version gabs noch den LoadWorld-befehl, damit konntest du BSP-levels einladen.
das ist ein etwas anderes prinzip als ne entity,
im grunde ne menge von unterschiedlichen simple-meshes,
die in ner baumstruktur gruppiert nen level bilden.
dafür gibts ein paar verschiedene standards,
das world-format der quake-engine ist afaik das verbreiteste.
auf welchem wege komplexe levels (worlds) in die aktuelle PB-OGRE
version eingeladen werden, ist mir nicht bekannt.
outdoor wird wieder auf ner anderen grundlage aufgebaut,
natürliche strukturen werden oft mit einem HeightField gebaut,
also eine 2D-Map, die höhenwerte enthält.
das ist das, was du beim Terrain-example sehen kannst.
aber grundsätzlich scheint es mir durchaus so,
als ob Fred mit der OGRE-implementation nicht richtig mithalten kann,
er ist anscheinend komplett ausgelastet mit dem updaten der drei platform-versionen von PB.
der Irrlicht-wrapper macht nen guten eindruck,
auch vorher hatte ich schon gutes von Irrlicht gehört.
auch natives openGL ist wohl möglich,
damit hab ich mich allerdings noch nicht auseinandergesetzt.
da hatte ich vor drei jahren mal reingeschnuppert, war allerdings zwecklos,
denn erst seit 4.0 sind 8byte argumente möglich die OGL benötigt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Hmm okay, also für meinen Fall würde ich vorerst ganz einfache Indoor-Levels bauen wollen, also könnte ich ein Level quasi aus "Würfeln" zusammenbauen (wie bei Wolfenstein). Aber hat das irgendwelche Performance-Nachteile, wenn alles als Entity gehandhabt wird (z.B. was Kollisionen angeht)?
aber grundsätzlich scheint es mir durchaus so,
als ob Fred mit der OGRE-implementation nicht richtig mithalten kann,
er ist anscheinend komplett ausgelastet mit dem updaten der drei platform-versionen von PB.
Das ist schade... naja evtl. werd ich mir Ogre auch mal direkt anschauen und mit C++ rumexperimentieren. Oder halt Irrlich testen, wobei ich eigentlich immer dachte daß Ogre besser wäre als Irrlicht (von ein paar älteren Screenshots aus gesehen, keine Ahnung ob das noch der Fall ist).
EDIT: Das muß ich glaub auch gleich revidieren... hab grad nochmal Screenshots angeschaut und das schaut echt nicht übel aus
waren damals wohl schlechte Beispiele...
aber grundsätzlich scheint es mir durchaus so,
als ob Fred mit der OGRE-implementation nicht richtig mithalten kann,
er ist anscheinend komplett ausgelastet mit dem updaten der drei platform-versionen von PB.
Das ist schade... naja evtl. werd ich mir Ogre auch mal direkt anschauen und mit C++ rumexperimentieren. Oder halt Irrlich testen, wobei ich eigentlich immer dachte daß Ogre besser wäre als Irrlicht (von ein paar älteren Screenshots aus gesehen, keine Ahnung ob das noch der Fall ist).
EDIT: Das muß ich glaub auch gleich revidieren... hab grad nochmal Screenshots angeschaut und das schaut echt nicht übel aus

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Mhh, also ich find Irrlicht echt genial, habs aber mit C++ gemacht, da mit dem PB-Warrper kein Bump-Mapping und Parallex-Mapping möglich ist. Hatte auch schon was, aber dann hatte ich mit der Tastenabfrage probleme -.-. OpenGL is auch Cool^^ must halt alles selber machen 
Aber nun zum Thema, das mit den Blöcken rat ich dir ab, hab ich auch schon probiert wollte ne 3D TileEngine machen da geht die performance schneller in die Knie als de kucken kannst^^.
mfg
Aber nun zum Thema, das mit den Blöcken rat ich dir ab, hab ich auch schon probiert wollte ne 3D TileEngine machen da geht die performance schneller in die Knie als de kucken kannst^^.
mfg
Naja bei Irrlicht frag ich mich halt auch, ob das unter PB wirklich so gut ist. Schließlich ist das Original ja sehr OOP, und ob die Funktionen dann angemessen gewrapt wurden, ist halt die Frage. Naja ich werd's mir sicherlich mal anschauen 

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
das ist einfach ne frage der herangehensweise.AndyX hat geschrieben:Warum sollte ne Welt, die aus Blöcken besteht, mehr Performance oder Speicher fressen, als ne komplex modellierte Welt mit zigtausenden Polygonen?
natürlich kann man bei ner welt aus blöcken auch vie falsch machen.
wenn ich "3D TileEngine" lese, könnte ich mir vorstellen,Artus hat geschrieben:... das mit den Blöcken rat ich dir ab, hab ich auch schon probiert wollte ne 3D TileEngine machen da geht die performance schneller in die Knie als de kucken kannst^^.
dass er nach dem prinzip wie bei ner tileengine versucht hat,
mit nem 3D-Array zu arbeiten.
natürlich kann man so einen ansatz verfolgen, aber da lauern ne menge fallsticke,
allein schon die schachtelunge der index-schleifen,
wenn man die falsch herum anlegt dauerts x-mal so lange.
dass grundsätzlich eine blocklösung möglich und einfach und schnell sein kann,
sieht man schließlich an DESCENT, das lief schon vor der erfindung der 3D-Beschleuniger....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
xperience2003
- Beiträge: 972
- Registriert: 04.10.2004 18:42
- Computerausstattung: Amiga, LinuxMint, Windows7
- Wohnort: gotha
- Kontaktdaten:
warum so umstaendlich, dafuer nimmt man einen 3d modellerWie würde ich nun z.B. ein Level aufbauen? Also vor allem interessiert mich das in Bezug auf Wände - eine Figur usw. ist eine Entity, klar, aber gilt das auch für Wände? Eine "AddRectangle"-Funktion oder sowas hab ich nicht gefunden
irrlicht, ogre,blitz3d und wie sie alle heissen unterstuetzen zb bsp modelle
mit nem bsp compiler kann man ganze riesige levels machen, die recht schnell gerendert werden
nachteil zum einstieg, es verlangt gute modelling faehigkeiten
man kann auch mit einem einfachen modeller innenlevels oder levelteile erstellen und diese dann zusammen setzen
bei wuerfeln ist die performance immer schlechter
fuer eine innenlevelwand brauchst du bei einem model nur minimal 2 polys, der wuerfel hat 12
wenn du das mit bloecken machen willst, dann benutz bei 3d lieber
levelteile anstatt alles aus wuerfeln erstellen zu wollen...
beispiel fuern "wuerfelwelt"-game
http://www.caiman.us/scripts/fw/pageN.p ... pnroll.zip
der aufbau des games ist wie bei einem 2d spiel
es benutzt ein einfaches 2dimensionales array fuer die levels
heutzutage benutze ich levelteile und setze diese in einem editor
zusammen
vorteil: du kannst, wenn levelteile nicht sichtbar sind, diese ausblenden
meshes sind schneller als wuerfel-entitys und von der texturierung und
qualitaet ganz zu schweigen
amiga rulez...
Rebirth Software
Rebirth Software