----------------------------------------------------- BlitzBasic 3D Game Library: Vorwort ----------------------------------------------------- Diese Library ist auf der Engine von Blitz3D aufgebaut. Es bedarf also nicht mal einer vorbereitung. Mal davon Abgesehen das man den Quellcode der Library ins Projektordner Kopieren sollte. Mit dieser Library ist es möglich die im 3D Welt Editor erstellten Levels/Maps oder Zwichensequenzen Laden und verwalten zu können. ----------------------------------------------------- BlitzBasic 3D Game Library: Befehls Liste ----------------------------------------------------- LoadWorld(Levelname$) Lädt eine in Scream3D gemachte 3D Welt. ExportFileFromFile(FH, File$) Liest eine Datei aus dem angegebenen Stream aus und Speichert diese als File$ ab. LoadMeshFromFile(Stream, Parent = 0) Lädt Meshdaten aus einen Stream aus. Es kann auch ein Parent als Objekt angegeben werden. FindObject(ObjectName$) Diese Funktion findet ein Objekt in der 3D Welt anhand des Namen und liefert ihn als Typepointer zurück. FindObject(ObjectName$) Diese Funktion findet ein Objekt in der 3D Welt anhand des Namen und liefert ihn als Typepointer zurück. FindArea(AreaName$) Diese Funktion findet ein Bereich in der 3D Welt anhand des Namen und liefert ihn als Typepointer zurück. FindAreaFromMesh.GL_Area(MeshHandle) Wird das Mesh (mit MeshHandle bestimmt) in einen Bereich gefunden, dann wird das Bereich als Typepointer zurück geliefert. Da Bereiche im 3D Editor auch Animiert werden können, werden die Daten aus den zuletzt eingestellten Frame genutzt. FindAreaFromObject.GL_Area(Obj.GL_Object) Wird das Objekt in einen Bereich gefunden, dann wird das Bereich als Typepointer zurück geliefert. Da Bereiche im 3D Editor auch Animiert werden können, kann man das Frame angeben. AreaCulling() Hier werden alle Objekten unsichtbar gemacht. Es werden nur Objekten angezeigt, die in einen Bereich sind. In diesen Bereich muss sich die Kamera befinden damit das geschieht. UpdateAreaObjects() Aktualisiert die zuordnung von Objekten zu den Bereichen. Dies ist sehr nützlich wenn die gesammte 3D Welt animiert wurde. ShowObjects() Setzt alle Blitz3D Modies so, dass alle Objekten angezeigt werden. HideObjects() Setzt alle Blitz3D Modies so, dass alle Objekten unsichtbar gemacht werden. TextureWorld() Diese Funktion beklebt alle 3D Objekten in der 3D Welt mit den richtigen Texturen. TextureObject(Obj.GL_Object) Diese Funktion beklebt ein Objekt mit Textur(en). LightmapWorld(Value) Mit dieser Funktion kann man das Lightmaping in der 3D Welt De-/Aktivieren. LightmapObject(Obj.GL_Object) Mit dieser Funktion kann man das Lightmaping an einen Objekt De-/Aktivieren. SetWorldFrame(Frame#) Mit dieser Funktion kann man den Aktuellen Frame der 3D Welt einstellen. SetObjectFrame(Obj.GL_Object, Frame#) Mit dieser Funktion kann man den Aktuellen Frame des Objekts einstellen. SetEntityFrame(Entity.GL_Entity, Frame#) Mit dieser Funktion kann man den Aktuellen Frame eines Entitys einstellen. SetAreaFrame(Area.GL_Area, Frame#) Mit dieser Funktion kann man den Aktuellen Frame eines Bereichs einstellen. ----------------------------------------------------- BlitzBasic 3D Game Library: FAQ ----------------------------------------------------- ' Ich habe versucht mit der anweisung LoadWorld eine ' in Scream3D gemachte 3D Welt zu Laden. Jedoch ' geschieht da immer Fehler. Das liegt sicherlich daran das sie versuchen eine Scream3D Welt zu Laden die mit der neuen Game Library Version nicht mehr Kompatibel ist. Dies ist aber kein Weltuntergang. Die 3D Welt muss einfach nochmal mit der neuesten 3D Editor Version Exportiert werden. ' Ich habe AreaCulling angewendet. Jedoch ' Funktioniert die Kollision nur noch manchmal. BlitzBasic3D verwaltet keine unsichtbare Objekte. Darum also auch nicht die Kollision bei unsichtbaren Objekten. Darum sollte vor "RenderWorld" die Anweisung "AreaCulling" ausgeführt werden. Davor muss "ShowObjects" ausgeführt werden. Nach dieser anweisung kann dann endlich "UpdateWorld" benutzt werden. So geschehen keine Fehler mit der Kollision. ' Wenn ich eine Zwichensequenz abspiele, dann ' entstehen beim Culling fehler. Dadurch gibt ' gibt es viele Visuelle fehler. Die Game Library ist noch nicht dazu ausgerichtet während einer Animation korrekt Culling zu verwalten. Wenn möglich sollte man deshalb "AreaCulling" bei einer größeren Animation vermeiden.