Ich versuch gerade das durchzuarbeiten:
http://www.ogre3d.org/tikiwiki/tiki-ind ... =Tutorials
Ist zwar für 1.9, aber das meiste sollte doch passen.
Teil 1 läuft jetzt

Den Screen3DRequester, der in PB enthalten ist, hab ich auch ein bischen erweitert.
Ich werd demnächst mal meine Ergebnisse veröffentlichen, aktuell arbeite ich mich da selbst durch.
Allerdings hab ich hier schon ein paar große Unterschiede festgestellt:
Die ganzen "Listeners" gibts in PB nicht. Die SceneManager gibts in PB auch nicht, bzw. wird intern gehandhabt.
Ogre benutzt zur Identifizierung Namen, PB die bekannten Nummern, wie bei Gadgets,OpenFile etc. Das sieht man bspw. sehr gut, wenn es um Animationen geht, wo auf einmal Namen benötigt werden.
Die Kamera funktioniert in PB anders als in Tutorial. Die Kamera in PB ist eine Mischung aus Kamera und Viewports. Zumindest wurden beide kombiniert.
ScaleNode beeinflusst nicht eine angehängte Entity.
Eine Root-Node gibt es in PB nicht, bzw. jede Node startet einfach als Child von Rootnode.
Generell scheint PB automatisch Nodes zu erstellen.
TransformMesh ist immer relativ. Man kann hier leider keine manuelle Animation erstellen, weil man immer erst alles zurückdrehen muss.
Manuell erstellte Mesh kann man nicht animieren! Man kann leider keine Skeletons, bones oder sonstwas erstellen. Sprich, man muss hier manuell berechnen. Leider alles andere als Ideal. Bei meinen gewünschten Grafikstiel hätte ich noch den Vorteil, das ich es ja Kantig will und kann einfach mit nodes arbeiten...
AmbientColor() hat bei mir keine Auswirkungen. Eventuell wenn ich eine fertige Welt lade, aber wenn man nur ein paar Entitäten rumfliegen lässt, passiert hier nichts.
Falls wer in PB manuell Meshes bauen will, NormalVektor und TangentsVektor kann man anscheinend mit den Befehlen NormalizeMesh() und BuildMeshTangents() erstellen. Was genau die machen - um ehrlich zu sein, keine Ahnung
Troax hat geschrieben:Purebasic ist aber einfach keine OOP-Sprache. Es war und ist also zwingend erforderlich, die API zu OGRE zu abstrahieren. Und wenn die Entwickler von PB definitiv eine Umstellung auf Objektorientierung ausgeschlossen haben, dann wird es auch entsprechend abstrahiert bleiben. Es gibt ja kaum noch aktuelle prozedurale, funktionale oder imperative 3D Engines bzw. Renderer. Egal welchen sie also nutzen. Sie müssen es abstrahieren.
Irgendwie geht mir der Hut hoch, wenn ich sowas lese. Warum muss man aus allen eine Glaubensfrage machen? Als gebe es nicht genügend Fanatiker, die der Welt schaden. OOP und traditionelle Prozenduale Programmierung schließen sich doch nicht gegenseitig aus! OOP ist nur ein weiteres Werkzeug. Jenachdem was man machen will, nimmt man das eine oder andere. Wobei prinzipiell alles mit beiden möglich ist.
Und ich muss dir wiedersprechen. Purebasic *IST* eine OOP Sprache, mit Interfaces & Structures ist es möglich, Objekte nativ zu erzeugen - ohne PreCompiler oder sonstige Scherze. Es ist nur nicht sehr kompfortabel, eine "Klasse" zu erstellen, weil man Sachen wie eine VT-Tabelle manuell erzeugen muss. Die anschließende Objektnutzung dagegen ist völlig unproblematisch. Es gibt imo keine logischen Grund, nicht jetzt noch den letzten Schritt zu gehen, und eine gescheite Klassen-Definition in PB einzuführen. Keiner erwartet gleich ein C++ Klassen-Machwert mit Überschreiben von Operatoren etc. PB ist schließlich eine BASIC-Programmiersprache. Entwickelt ursprünglich, um Programmieren zu lernen. Und dazu gehören heute einfach Klassen.
Das Problem mit der Ogre-Implantierung in Purebasic ist, das sie auf eigene, sehr unkonventionelle Weise implantiert wurde. Die Ursprüngliche API ist imo kaum wieder zu erkennen. Da wurde sehr viel erweitert, umgeschrieben, umbenannt. Das macht es unglaublich schwierig in eine Ogre-Hilfe einzulesen.
Leider hat Fred es versäumt aufzuschreiben, was sich alles gegenüber der Original-API verändert hat.
Ein weiteres Problem ist, das die Anleitung leider davon ausgeht, das man von allen Ahnung hat. Was genau die UV-Coordinaten bei Meshes sein sollen, hat sich mir erst sehr viel später erschlossen. Und das ist nur eine Kleinigkeit.
Ich persönlich denke, das eine "Lego"-Engine nicht verkehrt wäre. Es hat imo schon seinen Grund, warum Minecraft so erfolgreich ist. Weil man da leicht aus ein paar Grundbausteinen eine Welt aufbauen kann. So ein Leveleditor wäre imo eine Wucht in PB.
Genauso könnte man die Figuren in Spiel erstellen. Ein einfache Skellettkonstruktion, an die man Klötzchen dranklebt.
In die Richtung würde ich gehen. Mit modernen 3D Spielen kann ich eh nicht mal ansatzweise konkurrieren. Also geht man einfach den Weg, absichtlich "häßliche" Grafik zu machen
