simpleIrrlicht - Irrlicht in "Einfach"
Gehe zu Seite Zurück 1, 2, 3 ... 7, 8, 9 ... 13, 14, 15 Weiter

0.44.1

Nur für skey-z
Ich habe die Funktion GetFPS() eingebaut. Diese gibt ein Float zurück und erwartet einen Wert der ihr sagt welche Art von FPS abgefragt werden soll. Mögliche Werte sind: FPS_AVG (average) (Default), FPS_BEST, FPS_WORST und FPS_LAST
>> Update auf 0.44.1 für Blitz3D/BlitzPlus (61kb) <<
>> Update auf 0.44.1 für BlitzMax (132kb) <<
Im Example (beide Versionen) werden die FPS pro Frame in das TextArea geschrieben, ich empfehle das nur zu tun wenn sich der Wert tatsächlich ändert
Zum installieren einfach den Inhalt des ZIP über die Version 0.44 schreiben

Ich habe die Funktion GetFPS() eingebaut. Diese gibt ein Float zurück und erwartet einen Wert der ihr sagt welche Art von FPS abgefragt werden soll. Mögliche Werte sind: FPS_AVG (average) (Default), FPS_BEST, FPS_WORST und FPS_LAST
>> Update auf 0.44.1 für Blitz3D/BlitzPlus (61kb) <<
>> Update auf 0.44.1 für BlitzMax (132kb) <<
Im Example (beide Versionen) werden die FPS pro Frame in das TextArea geschrieben, ich empfehle das nur zu tun wenn sich der Wert tatsächlich ändert

Zum installieren einfach den Inhalt des ZIP über die Version 0.44 schreiben
0.44

In diesem Release gibt es nur wenige neue Funktionen, hauptsächlich sind einige Sachen hinter den Kulissen passiert.
Changelog:
Code: [AUSKLAPPEN]
05-10-2010 // v0.44
added : TCamera.Turn(x:Float, y:Float, z:Float)
added : TCamera.Rotate(x:Float, y:Float, z:Float)
added : TInput.MouseXSpeed:Int()
added : TInput.MouseYSpeed:Int()
removed : TInput.MouseMoved()
05-08-2010 // v0.43
added : TEntity.Translate(x:Float, y:Float, z:Float)
added : TOgre.CreateSkybox(material:String)
added : TEntity.CreatePivot:TEntity(entity_name:String)
added : TEntity.setParent(parent:TEntity)
added : TEntity.getPitch:Float()
added : TEntity.getYaw:Float()
added : TEntity.getRoll:Float()
added : TInput.MouseX:Int()
added : TInput.MouseY:Int()
added : TInput.MouseDown:Int(button:Int)
added : TInput.KeyHit:Int(keycode:Int)
added : TInput.MouseHit:Int(button:Int)
added : TInput.MouseMoved:Int()
added : TOgre.AddResourceDir(resource_dir:String)
added : TEntity.GenerateEntityName:String(prefix:String)
added : TOgre.UseDirectX()
added : TOgre.UseOpenGL()
added : TOgre.SetPluginCfg(plugin_cfg:String)
added : TOgre.SetConfigFile(config_file:String)
added : TOgre.SetLogFile(log_file:String)
added : TOgre.Init:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.Graphics3D:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.EndGraphics()
added : TOgre.RenderWorld:Int(lastUpdate:Float)
added : TOgre.WBuffer(enable:Byte)
added : TOgre.AntiAlias(value:Int)
added : TOgre.ClearWorld()
added : TOgre.TrisRendered:Int()
added : TCamera.Create:TCamera(entity_name:String)
added : TCamera.ClsColor(red:Float, green:Float, blue:Float)
added : TCamera.Range(near:Float, far:Float)
added : TCamera.WireFrame(mode:Int)
added : TEntity.Position(x:Float, y:Float, z:Float)
added : TEntity.Move(x:Float, y:Float, z:Float)
added : TEntity.Rotate(x:Float, y:Float, z:Float)
added : TEntity.Turn(x:Float, y:Float, z:Float)
added : TEntity.CreateCube:TEntity(entity_name:String)
added : TOgre.AmbientLight(red:Float, green:Float, blue:Float)
added : TLight:Create:TLight(ogre:TOgre, light_type:Int, entity_name:String)
added : TLight.LightColor(red:Float, g:Float, blue:Float)
added : TMesh.Load:TMesh(ogre:TOgre, file:String, entity_name:String)
added : TInput.KeyDown:Byte(keycode:Int)
added : TOverlay.Create:TOverlay(overlay_name:String)
added : TOverlay.Add2D(container:TPanel)
added : TOverlay.Show(enable:Byte)
added : TPanel.Create:TPanel(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, panel_name:String)
added : TPanel.AddChild(child:TEntity)
added : TTextArea.Create:TTextArea(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, textarea_name:String)
added : TTextArea.Caption(txt:String)
added : TTextArea.Font(fontname:String, size:Float)
added : TOgre.LoadFont(fontname:String, height:Float, bold:Byte, italic:Byte, underlined:Byte)
Das Changelog für die B3D Version ist ähnlich
Blitz3D Version
>> bo3d.blitz3d v0.44 (ca. 6,3MB) <<
BlitzMax Version
>> bo3d.bmax v0.44 (ca. 6MB) <<
Das sollte das letzte Komplett-Release sein, in nachfolgenden Päckchen verschnüre ich nur noch die Dateien die sich auch geändert haben.
- einige Funktionen im C++ Source gekürzt und zusammengefasst. (bspw. habe ich vorher Int<->Bool Ergebnisse zwischengespeichert, es geht aber auch ohne diesen Overhead und das sogar ohne Warnings
)
- Das "capturen" der InputHandler passiert nun in RenderWorld(), nun funktionieren endlich auch die Funktionen MouseXSpeed() und MouseYSpeed().
- TurnEntity() und RotateEntity können nun auch auf Kameras angewendet werden
- Dadurch dass ich MouseXSpeed und MouseYSpeed implementieren konnte ist MouseMoved() rausgeflogen
- ich habe noch einige DLLs beigelegt die bei dem einen oder anderen gefehlt haben. Jetzt sollte der Krimskram eigentlich out-of-the-box laufen.
Changelog:
Code: [AUSKLAPPEN]
05-10-2010 // v0.44
added : TCamera.Turn(x:Float, y:Float, z:Float)
added : TCamera.Rotate(x:Float, y:Float, z:Float)
added : TInput.MouseXSpeed:Int()
added : TInput.MouseYSpeed:Int()
removed : TInput.MouseMoved()
05-08-2010 // v0.43
added : TEntity.Translate(x:Float, y:Float, z:Float)
added : TOgre.CreateSkybox(material:String)
added : TEntity.CreatePivot:TEntity(entity_name:String)
added : TEntity.setParent(parent:TEntity)
added : TEntity.getPitch:Float()
added : TEntity.getYaw:Float()
added : TEntity.getRoll:Float()
added : TInput.MouseX:Int()
added : TInput.MouseY:Int()
added : TInput.MouseDown:Int(button:Int)
added : TInput.KeyHit:Int(keycode:Int)
added : TInput.MouseHit:Int(button:Int)
added : TInput.MouseMoved:Int()
added : TOgre.AddResourceDir(resource_dir:String)
added : TEntity.GenerateEntityName:String(prefix:String)
added : TOgre.UseDirectX()
added : TOgre.UseOpenGL()
added : TOgre.SetPluginCfg(plugin_cfg:String)
added : TOgre.SetConfigFile(config_file:String)
added : TOgre.SetLogFile(log_file:String)
added : TOgre.Init:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.Graphics3D:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.EndGraphics()
added : TOgre.RenderWorld:Int(lastUpdate:Float)
added : TOgre.WBuffer(enable:Byte)
added : TOgre.AntiAlias(value:Int)
added : TOgre.ClearWorld()
added : TOgre.TrisRendered:Int()
added : TCamera.Create:TCamera(entity_name:String)
added : TCamera.ClsColor(red:Float, green:Float, blue:Float)
added : TCamera.Range(near:Float, far:Float)
added : TCamera.WireFrame(mode:Int)
added : TEntity.Position(x:Float, y:Float, z:Float)
added : TEntity.Move(x:Float, y:Float, z:Float)
added : TEntity.Rotate(x:Float, y:Float, z:Float)
added : TEntity.Turn(x:Float, y:Float, z:Float)
added : TEntity.CreateCube:TEntity(entity_name:String)
added : TOgre.AmbientLight(red:Float, green:Float, blue:Float)
added : TLight:Create:TLight(ogre:TOgre, light_type:Int, entity_name:String)
added : TLight.LightColor(red:Float, g:Float, blue:Float)
added : TMesh.Load:TMesh(ogre:TOgre, file:String, entity_name:String)
added : TInput.KeyDown:Byte(keycode:Int)
added : TOverlay.Create:TOverlay(overlay_name:String)
added : TOverlay.Add2D(container:TPanel)
added : TOverlay.Show(enable:Byte)
added : TPanel.Create:TPanel(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, panel_name:String)
added : TPanel.AddChild(child:TEntity)
added : TTextArea.Create:TTextArea(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, textarea_name:String)
added : TTextArea.Caption(txt:String)
added : TTextArea.Font(fontname:String, size:Float)
added : TOgre.LoadFont(fontname:String, height:Float, bold:Byte, italic:Byte, underlined:Byte)
Das Changelog für die B3D Version ist ähnlich


Blitz3D Version
>> bo3d.blitz3d v0.44 (ca. 6,3MB) <<
BlitzMax Version
>> bo3d.bmax v0.44 (ca. 6MB) <<
Das sollte das letzte Komplett-Release sein, in nachfolgenden Päckchen verschnüre ich nur noch die Dateien die sich auch geändert haben.
Message: MSVCR100.DLL fehlt

Für alle bei denen es nicht läuft weil die msvcr100.dll (und wahrscheinlich auch die msvcp100.dll) fehlt, habe ich ein Päckchen geschnürt.
>> Download MSVCR100.DLL und MSVCP100.DLL (ca. 550kb) <<
Den Link zur BMax Version im letzten Beitrag habe ich korrigiert.
>> Download MSVCR100.DLL und MSVCP100.DLL (ca. 550kb) <<
Den Link zur BMax Version im letzten Beitrag habe ich korrigiert.
0.43 für Blitz3D, BlitzPlus und BlitzMax

Mit der Version 0.43 dürfen auch BlitzMax User erstmals einen Blick auf den Wrapper werfen.
Neu (in beiden Version) seit 0.41 sind folgende Funktionen:
Changelog BlitzMax Version
Code: [AUSKLAPPEN]
08.05.2010 // v0.43
added : TEntity.Translate(x:Float, y:Float, z:Float)
added : TOgre.CreateSkybox(material:String)
added : TEntity.CreatePivot:TEntity(entity_name:String)
added : TEntity.setParent(parent:TEntity)
added : TEntity.getPitch:Float()
added : TEntity.getYaw:Float()
added : TEntity.getRoll:Float()
added : TInput.MouseX:Int()
added : TInput.MouseY:Int()
added : TInput.MouseDown:Int(button:Int)
added : TInput.KeyHit:Int(keycode:Int)
added : TInput.MouseHit:Int(button:Int)
added : TInput.MouseMoved:Int()
added : TOgre.AddResourceDir(resource_dir:String)
added : TEntity.GenerateEntityName:String(prefix:String)
added : TOgre.UseDirectX()
added : TOgre.UseOpenGL()
added : TOgre.SetPluginCfg(plugin_cfg:String)
added : TOgre.SetConfigFile(config_file:String)
added : TOgre.SetLogFile(log_file:String)
added : TOgre.Init:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.Graphics3D:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.EndGraphics()
added : TOgre.RenderWorld:Int(lastUpdate:Float)
added : TOgre.WBuffer(enable:Byte)
added : TOgre.AntiAlias(value:Int)
added : TOgre.ClearWorld()
added : TOgre.TrisRendered:Int()
added : TCamera.Create:TCamera(entity_name:String)
added : TCamera.ClsColor(red:Float, green:Float, blue:Float)
added : TCamera.Range(near:Float, far:Float)
added : TCamera.WireFrame(mode:Int)
added : TEntity.Position(x:Float, y:Float, z:Float)
added : TEntity.Move(x:Float, y:Float, z:Float)
added : TEntity.Rotate(x:Float, y:Float, z:Float)
added : TEntity.Turn(x:Float, y:Float, z:Float)
added : TEntity.CreateCube:TEntity(entity_name:String)
added : TOgre.AmbientLight(red:Float, green:Float, blue:Float)
added : TLight:Create:TLight(ogre:TOgre, light_type:Int, entity_name:String)
added : TLight.LightColor(red:Float, g:Float, blue:Float)
added : TMesh.Load:TMesh(ogre:TOgre, file:String, entity_name:String)
added : TInput.KeyDown:Byte(keycode:Int)
added : TOverlay.Create:TOverlay(overlay_name:String)
added : TOverlay.Add2D(container:TPanel)
added : TOverlay.Show(enable:Byte)
added : TPanel.Create:TPanel(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, panel_name:String)
added : TPanel.AddChild(child:TEntity)
added : TTextArea.Create:TTextArea(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, textarea_name:String)
added : TTextArea.Caption(txt:String)
added : TTextArea.Font(fontname:String, size:Float)
added : TOgre.LoadFont(fontname:String, height:Float, bold:Byte, italic:Byte, underlined:Byte)
Changelog Blitz3D/BlitzPlus Version
Code: [AUSKLAPPEN]
08.05.2010 // v0.43
added : TranslateEntity(entity.obj, x#, y#, z#)
07.05.2010 // v0.42
added : CreateSkybox(material$)
added : CreatePivot.obj(entity_name$)
added : EntityParent(entity.obj, parent.obj)
added : EntityPitch#(entity.obj)
added : EntityYaw#(entity.obj)
added : EntityRoll#(entity.obj)
fixed : Schreibfehler bei Entity-Konstanten
06.05.2010 // v0.41
added : MouseX%()
added : MouseY%()
added : MouseDown%(button%)
added : KeyHit%(keycode%)
added : MouseHit%(button%)
added : MouseMoved%()
changed : die BlitzOgre3D.dll ist nun gegen die VC++ Runtimelibrary gelinkt
bis 06.05.2010 // v0.41
added : AddResourceDir(resource_dir$)
added : GenerateEntityName$(prefix$ = "entity_")
added : GetPath$(fullpath$)
added : UseDirectX()
added : UseOpenGL()
added : SetPluginCfg(plugin_cfg$ = "plugins.cfg")
added : SetConfigFile(config_file$ = "bo3d.cfg")
added : SetLogFile(log_file$ = "bo3d.log")
added : InitOgre%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : Graphics3D%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : EndGraphics()
added : RenderWorld%(lastUpdate# = 0.0)
added(0) : Dither(enable% = True)
added : WBuffer(enable% = False)
added : AntiAlias(value% = 0)
added(0) : HWMultiTex(enable% = True)
added(0) : UpdateWorld(anim_speed# = 1.0)
added(0) : CaptureWorld();
added : ClearWorld()
added(0) : LoaderMatrix(file_extension$, xx#, xy#, xz#, yx#, yy#, yz#, zx#, zy#, zz#)
added : TrisRendered%()
added : CreateCamera.obj(entity_name$ = "")
added : CameraClsColor(camera.obj, r# = 0.0, g# = 0.0, b# = 0.0)
added : CameraRange(camera.obj, near# = 0.1, far# = 1000.0)
added : WireFrame(camera.obj, mode% = PM_WIREFRAME)
added : PositionEntity(entity.obj, x#, y#, z#)
added : MoveEntity(entity.obj, x#, y#, z#)
added : RotateEntity(entity.obj, x#, y#, z#)
added : TurnEntity(entity.obj, x#, y#, z#)
added : CreateCube.obj(entity_name$ = "")
added : AmbientLight(r# = 0.0, g# = 0.0, b# = 0.0)
added : CreateLight.obj(light_type% = LT_POINT, entity_name$ = "")
added : LightColor(light.obj, r# = 1.0, g# = 1.0, b# = 1.0)
added : LoadMesh.obj(file$, entity_name$ = "")
added : KeyDown%(keycode%)
added : CreateOverlay.obj(overlay_name$ = "")
added : OverlayAdd2D(overlay.obj, container.obj)
added : ShowOverlay(overlay.obj, enable% = True)
added : CreatePanel.obj(x#, y#, width#, height#, panel_name$ = "")
added : PanelAddChild(panel.obj, child.obj)
added : CreateTextArea.obj(x#, y#, width#, height#, textarea_name$ = "")
added : TextAreaText(textArea.obj, txt$)
added : TextAreaFont(textArea.obj, fontname$, size# = 12)
added : LoadFont(fontname$, height# = 10, bold% = False, italic% = False, underlined% = False)
>> Download BlitzOgre3D 0.43 für Blitz3D / BlitzPlus (ca. 5,8MB) <<
>> Download BlitzOgre3D 0.43 für BlitzMax (ca. 5,3MB) <<
Neu (in beiden Version) seit 0.41 sind folgende Funktionen:
- EntityPitch#(entity.obj) / TEntity.getPitch:Float()
- EntityYaw#(entity.obj) / TEntity.getYaw:Float()
- EntityRoll#(entity.obj) / TEntity.getRoll:Float()
- TranslateEntity(entity.obj, x#, y#, z#) / TEntity.Translate(x:Float, y:Float, z:Float)
- CreateSkybox(material$) / TOgre.CreateSkybox(material:String)
- CreatePivot.obj(entity_name$) / TEntity.CreatePivot:TEntity(ogre:TOgre, entity_name$)
- EntityParent(entity.obj, parent.obj) / TEntity.setParent(parent:TEntity)
Changelog BlitzMax Version
Code: [AUSKLAPPEN]
08.05.2010 // v0.43
added : TEntity.Translate(x:Float, y:Float, z:Float)
added : TOgre.CreateSkybox(material:String)
added : TEntity.CreatePivot:TEntity(entity_name:String)
added : TEntity.setParent(parent:TEntity)
added : TEntity.getPitch:Float()
added : TEntity.getYaw:Float()
added : TEntity.getRoll:Float()
added : TInput.MouseX:Int()
added : TInput.MouseY:Int()
added : TInput.MouseDown:Int(button:Int)
added : TInput.KeyHit:Int(keycode:Int)
added : TInput.MouseHit:Int(button:Int)
added : TInput.MouseMoved:Int()
added : TOgre.AddResourceDir(resource_dir:String)
added : TEntity.GenerateEntityName:String(prefix:String)
added : TOgre.UseDirectX()
added : TOgre.UseOpenGL()
added : TOgre.SetPluginCfg(plugin_cfg:String)
added : TOgre.SetConfigFile(config_file:String)
added : TOgre.SetLogFile(log_file:String)
added : TOgre.Init:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.Graphics3D:Byte(width:Int, height:Int, depth:Int, fullscreen:Byte)
added : TOgre.EndGraphics()
added : TOgre.RenderWorld:Int(lastUpdate:Float)
added : TOgre.WBuffer(enable:Byte)
added : TOgre.AntiAlias(value:Int)
added : TOgre.ClearWorld()
added : TOgre.TrisRendered:Int()
added : TCamera.Create:TCamera(entity_name:String)
added : TCamera.ClsColor(red:Float, green:Float, blue:Float)
added : TCamera.Range(near:Float, far:Float)
added : TCamera.WireFrame(mode:Int)
added : TEntity.Position(x:Float, y:Float, z:Float)
added : TEntity.Move(x:Float, y:Float, z:Float)
added : TEntity.Rotate(x:Float, y:Float, z:Float)
added : TEntity.Turn(x:Float, y:Float, z:Float)
added : TEntity.CreateCube:TEntity(entity_name:String)
added : TOgre.AmbientLight(red:Float, green:Float, blue:Float)
added : TLight:Create:TLight(ogre:TOgre, light_type:Int, entity_name:String)
added : TLight.LightColor(red:Float, g:Float, blue:Float)
added : TMesh.Load:TMesh(ogre:TOgre, file:String, entity_name:String)
added : TInput.KeyDown:Byte(keycode:Int)
added : TOverlay.Create:TOverlay(overlay_name:String)
added : TOverlay.Add2D(container:TPanel)
added : TOverlay.Show(enable:Byte)
added : TPanel.Create:TPanel(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, panel_name:String)
added : TPanel.AddChild(child:TEntity)
added : TTextArea.Create:TTextArea(ogre:TOgre, x:Float, y:Float, width:Float, height:Float, textarea_name:String)
added : TTextArea.Caption(txt:String)
added : TTextArea.Font(fontname:String, size:Float)
added : TOgre.LoadFont(fontname:String, height:Float, bold:Byte, italic:Byte, underlined:Byte)
Changelog Blitz3D/BlitzPlus Version
Code: [AUSKLAPPEN]
08.05.2010 // v0.43
added : TranslateEntity(entity.obj, x#, y#, z#)
07.05.2010 // v0.42
added : CreateSkybox(material$)
added : CreatePivot.obj(entity_name$)
added : EntityParent(entity.obj, parent.obj)
added : EntityPitch#(entity.obj)
added : EntityYaw#(entity.obj)
added : EntityRoll#(entity.obj)
fixed : Schreibfehler bei Entity-Konstanten
06.05.2010 // v0.41
added : MouseX%()
added : MouseY%()
added : MouseDown%(button%)
added : KeyHit%(keycode%)
added : MouseHit%(button%)
added : MouseMoved%()
changed : die BlitzOgre3D.dll ist nun gegen die VC++ Runtimelibrary gelinkt
bis 06.05.2010 // v0.41
added : AddResourceDir(resource_dir$)
added : GenerateEntityName$(prefix$ = "entity_")
added : GetPath$(fullpath$)
added : UseDirectX()
added : UseOpenGL()
added : SetPluginCfg(plugin_cfg$ = "plugins.cfg")
added : SetConfigFile(config_file$ = "bo3d.cfg")
added : SetLogFile(log_file$ = "bo3d.log")
added : InitOgre%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : Graphics3D%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : EndGraphics()
added : RenderWorld%(lastUpdate# = 0.0)
added(0) : Dither(enable% = True)
added : WBuffer(enable% = False)
added : AntiAlias(value% = 0)
added(0) : HWMultiTex(enable% = True)
added(0) : UpdateWorld(anim_speed# = 1.0)
added(0) : CaptureWorld();
added : ClearWorld()
added(0) : LoaderMatrix(file_extension$, xx#, xy#, xz#, yx#, yy#, yz#, zx#, zy#, zz#)
added : TrisRendered%()
added : CreateCamera.obj(entity_name$ = "")
added : CameraClsColor(camera.obj, r# = 0.0, g# = 0.0, b# = 0.0)
added : CameraRange(camera.obj, near# = 0.1, far# = 1000.0)
added : WireFrame(camera.obj, mode% = PM_WIREFRAME)
added : PositionEntity(entity.obj, x#, y#, z#)
added : MoveEntity(entity.obj, x#, y#, z#)
added : RotateEntity(entity.obj, x#, y#, z#)
added : TurnEntity(entity.obj, x#, y#, z#)
added : CreateCube.obj(entity_name$ = "")
added : AmbientLight(r# = 0.0, g# = 0.0, b# = 0.0)
added : CreateLight.obj(light_type% = LT_POINT, entity_name$ = "")
added : LightColor(light.obj, r# = 1.0, g# = 1.0, b# = 1.0)
added : LoadMesh.obj(file$, entity_name$ = "")
added : KeyDown%(keycode%)
added : CreateOverlay.obj(overlay_name$ = "")
added : OverlayAdd2D(overlay.obj, container.obj)
added : ShowOverlay(overlay.obj, enable% = True)
added : CreatePanel.obj(x#, y#, width#, height#, panel_name$ = "")
added : PanelAddChild(panel.obj, child.obj)
added : CreateTextArea.obj(x#, y#, width#, height#, textarea_name$ = "")
added : TextAreaText(textArea.obj, txt$)
added : TextAreaFont(textArea.obj, fontname$, size# = 12)
added : LoadFont(fontname$, height# = 10, bold% = False, italic% = False, underlined% = False)
>> Download BlitzOgre3D 0.43 für Blitz3D / BlitzPlus (ca. 5,8MB) <<
>> Download BlitzOgre3D 0.43 für BlitzMax (ca. 5,3MB) <<
oops..

Ich habe das hier (hoffentlich zum letzten Mal) nochmal umbenannt. Da ich hier der Einzige Idiot bin der versucht Ogre zu wrappen macht das wohl keinen Unterschied
FAQs, Tutorials etc. gibt es demnächst unter http://bo3d.sedm.de/ ... derzeit ist da nur ein Logo-Splash zu finden.

FAQs, Tutorials etc. gibt es demnächst unter http://bo3d.sedm.de/ ... derzeit ist da nur ein Logo-Splash zu finden.
Houston an Mond ...

Da das Input-System von Blitz3D natürlich nicht funktioniert wenn man per DLL in fremden Gewässern fischt, bin ich gezwungen die Blitz3D Funktionen für die Eingabe zu überschreiben. Heute kamen deshalb die Funktonen MouseX(), MouseY(), MouseDown(), MouseHit(), KeyHit() und MouseMoved() hinzu. Ich werde mich auch befleißigen die Funktionen MouseXSpeed(), MouseYSpeed() und MouseZSpeed() zu übertragen, aber nicht alles an einem Tag.
Nebenbei habe ich die neue DLL auch gegen die VC++ Runtimes gelinkt so dass eigentlich keine DLL mehr fehlen dürfte. Mangels Rechner ohne installierter Entwicklungsumgebung kann ich das natürlich nicht zuende testen. Ich bin deshalb dankbar für jedes Feedback.
Das Changelog habe ich nochmal übertragen, ich konnte nur nicht mehr zusammen puzzlen was gestern und die Tage davor implementiert wurde, weshalb der erste Eintrag im CL etwas länger ist.
Code: [AUSKLAPPEN]
06.05.2010 // v0.41
added : MouseX%()
added : MouseY%()
added : MouseDown%(button%)
added : KeyHit%(keycode%)
added : MouseHit%(button%)
added : MouseMoved%()
changed : die BlitzOgre3D.dll ist nun gegen die VC++ Runtimelibrary gelinkt
bis 06.05.2010 // v0.41
added : AddResourceDir(resource_dir$)
added : GenerateEntityName$(prefix$ = "entity_")
added : GetPath$(fullpath$)
added : UseDirectX()
added : UseOpenGL()
added : SetPluginCfg(plugin_cfg$ = "plugins.cfg")
added : SetConfigFile(config_file$ = "bo3d.cfg")
added : SetLogFile(log_file$ = "bo3d.log")
added : InitOgre%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : Graphics3D%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : EndGraphics()
added : RenderWorld%(lastUpdate# = 0.0)
added(0) : Dither(enable% = True)
added : WBuffer(enable% = False)
added : AntiAlias(value% = 0)
added(0) : HWMultiTex(enable% = True)
added(0) : UpdateWorld(anim_speed# = 1.0)
added(0) : CaptureWorld();
added : ClearWorld()
added(0) : LoaderMatrix(file_extension$, xx#, xy#, xz#, yx#, yy#, yz#, zx#, zy#, zz#)
added : TrisRendered%()
added : CreateCamera.obj(entity_name$ = "")
added : CameraClsColor(camera.obj, r# = 0.0, g# = 0.0, b# = 0.0)
added : CameraRange(camera.obj, near# = 0.1, far# = 1000.0)
added : WireFrame(camera.obj, mode% = PM_WIREFRAME)
added : PositionEntity(entity.obj, x#, y#, z#)
added : MoveEntity(entity.obj, x#, y#, z#)
added : RotateEntity(entity.obj, x#, y#, z#)
added : TurnEntity(entity.obj, x#, y#, z#)
added : CreateCube.obj(entity_name$ = "")
added : AmbientLight(r# = 0.0, g# = 0.0, b# = 0.0)
added : CreateLight.obj(light_type% = LT_POINT, entity_name$ = "")
added : LightColor(light.obj, r# = 1.0, g# = 1.0, b# = 1.0)
added : LoadMesh.obj(file$, entity_name$ = "")
added : KeyDown%(keycode%)
added : CreateOverlay.obj(overlay_name$ = "")
added : OverlayAdd2D(overlay.obj, container.obj)
added : ShowOverlay(overlay.obj, enable% = True)
added : CreatePanel.obj(x#, y#, width#, height#, panel_name$ = "")
added : PanelAddChild(panel.obj, child.obj)
added : CreateTextArea.obj(x#, y#, width#, height#, textarea_name$ = "")
added : TextAreaText(textArea.obj, txt$)
added : TextAreaFont(textArea.obj, fontname$, size# = 12)
added : LoadFont(fontname$, height# = 10, bold% = False, italic% = False, underlined% = False)
>> Download BlitzOgre3D v0.41 (ca. 4,7MB) <<
Ein ausführbares Example ist wie immer enthalten und sollte dieses Mal sogar funktionieren
Da es sich bei Ogre3D um eine reine Grafik-Engine handelt gibt es nicht direkt Funktionen zur Kollisionserkennung. Dies werde ich über eine externe Physik-Lib lösen. Welche das sein wird ist noch nicht entschieden, aber ich tendiere in Richtung ODE.
Nebenbei habe ich die neue DLL auch gegen die VC++ Runtimes gelinkt so dass eigentlich keine DLL mehr fehlen dürfte. Mangels Rechner ohne installierter Entwicklungsumgebung kann ich das natürlich nicht zuende testen. Ich bin deshalb dankbar für jedes Feedback.
Das Changelog habe ich nochmal übertragen, ich konnte nur nicht mehr zusammen puzzlen was gestern und die Tage davor implementiert wurde, weshalb der erste Eintrag im CL etwas länger ist.
Code: [AUSKLAPPEN]
06.05.2010 // v0.41
added : MouseX%()
added : MouseY%()
added : MouseDown%(button%)
added : KeyHit%(keycode%)
added : MouseHit%(button%)
added : MouseMoved%()
changed : die BlitzOgre3D.dll ist nun gegen die VC++ Runtimelibrary gelinkt
bis 06.05.2010 // v0.41
added : AddResourceDir(resource_dir$)
added : GenerateEntityName$(prefix$ = "entity_")
added : GetPath$(fullpath$)
added : UseDirectX()
added : UseOpenGL()
added : SetPluginCfg(plugin_cfg$ = "plugins.cfg")
added : SetConfigFile(config_file$ = "bo3d.cfg")
added : SetLogFile(log_file$ = "bo3d.log")
added : InitOgre%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : Graphics3D%(width% = 800, height% = 600, depth% = 32, fullscreen% = False)
added : EndGraphics()
added : RenderWorld%(lastUpdate# = 0.0)
added(0) : Dither(enable% = True)
added : WBuffer(enable% = False)
added : AntiAlias(value% = 0)
added(0) : HWMultiTex(enable% = True)
added(0) : UpdateWorld(anim_speed# = 1.0)
added(0) : CaptureWorld();
added : ClearWorld()
added(0) : LoaderMatrix(file_extension$, xx#, xy#, xz#, yx#, yy#, yz#, zx#, zy#, zz#)
added : TrisRendered%()
added : CreateCamera.obj(entity_name$ = "")
added : CameraClsColor(camera.obj, r# = 0.0, g# = 0.0, b# = 0.0)
added : CameraRange(camera.obj, near# = 0.1, far# = 1000.0)
added : WireFrame(camera.obj, mode% = PM_WIREFRAME)
added : PositionEntity(entity.obj, x#, y#, z#)
added : MoveEntity(entity.obj, x#, y#, z#)
added : RotateEntity(entity.obj, x#, y#, z#)
added : TurnEntity(entity.obj, x#, y#, z#)
added : CreateCube.obj(entity_name$ = "")
added : AmbientLight(r# = 0.0, g# = 0.0, b# = 0.0)
added : CreateLight.obj(light_type% = LT_POINT, entity_name$ = "")
added : LightColor(light.obj, r# = 1.0, g# = 1.0, b# = 1.0)
added : LoadMesh.obj(file$, entity_name$ = "")
added : KeyDown%(keycode%)
added : CreateOverlay.obj(overlay_name$ = "")
added : OverlayAdd2D(overlay.obj, container.obj)
added : ShowOverlay(overlay.obj, enable% = True)
added : CreatePanel.obj(x#, y#, width#, height#, panel_name$ = "")
added : PanelAddChild(panel.obj, child.obj)
added : CreateTextArea.obj(x#, y#, width#, height#, textarea_name$ = "")
added : TextAreaText(textArea.obj, txt$)
added : TextAreaFont(textArea.obj, fontname$, size# = 12)
added : LoadFont(fontname$, height# = 10, bold% = False, italic% = False, underlined% = False)
>> Download BlitzOgre3D v0.41 (ca. 4,7MB) <<
Ein ausführbares Example ist wie immer enthalten und sollte dieses Mal sogar funktionieren

Da es sich bei Ogre3D um eine reine Grafik-Engine handelt gibt es nicht direkt Funktionen zur Kollisionserkennung. Dies werde ich über eine externe Physik-Lib lösen. Welche das sein wird ist noch nicht entschieden, aber ich tendiere in Richtung ODE.
Fehlende DLLs

Beim letzten Download fehlt für das ausführen des Examples die "Microsoft Visual C++ 2010 Runtime". Diese kann unter folgenden Links herunter geladen werden:
MSVCR2010 32 Bit (ca. 4,8MB)
MSVCR2010 64 Bit (ca. 5,5MB)
MSVCR2010 32 Bit (ca. 4,8MB)
MSVCR2010 64 Bit (ca. 5,5MB)
BlitzOgre3D V0.4


Intern hat sich einiges gewandelt, was man sehen kann ist das Overlay System. Im Bild sieht man folgende Kette: Overlay -> Panel -> TextArea
Hier mal die gesamte Liste der derzeitigen Funktionen:
Code: [AUSKLAPPEN]
;====================================================================
; Global
;====================================================================
bo_CreateOgre%():"_CreateInstance@0"
bo_OgreCfgFiles(blitzogre%, plugins$, config$, logfile$):"_OgreCfgFiles@16"
bo_Init%(blitzogre%, width%, height%, depth%, fullscreen%, renderer%):"_Init@24"
bo_Free(blitzogre%):"_Free@4"
bo_RenderWorld%(blitzogre%, lastUpdate#):"_RenderWorld@8"
bo_AddResourceDir(blitzogre%, resource_dir$):"_AddResourceDir@8"
bo_WBuffer(blitzogre%, enable%):"_WBuffer@8"
bo_AntiAlias(blitzogre%, value$):"_AntiAlias@8"
bo_ClearWorld(blitzogre%):"_ClearWorld@4"
bo_TrisRendered%(blitzogre%):"_TrisRendered@4"
;====================================================================
; Input
;====================================================================
bo_KeyDown%(blitzogre%, keycode%):"_KeyDown@8"
;====================================================================
; Camera
;====================================================================
bo_CreateCamera%(blitzogre%, entity_name$):"_CreateCamera@8"
bo_CameraClsColor(camera%, red#, green#, blue#):"_CameraClsColor@16"
bo_PositionCamera(camera%, x#, y#, z#):"_PositionCamera@16"
bo_MoveCamera(camera%, x#, y#, z#):"_MoveCamera@16"
bo_CameraRange(camera%, n#, f#):"_CameraRange@12"
bo_WireFrame(camera%, mode%):"_WireFrame@8"
;====================================================================
; Entity & Primitives
;====================================================================
bo_CreateCube%(blitzogre%, entity_name$):"_CreateCube@8"
bo_PositionEntity(entity%, x#, y#, z#):"_PositionEntity@16"
bo_MoveEntity(entity%, x#, y#, z#):"_MoveEntity@16"
bo_RotateEntity(entity%, x#, y#, z#):"_RotateEntity@16"
bo_TurnEntity(entity%, x#, y#, z#):"_TurnEntity@16"
;====================================================================
; Light
;====================================================================
bo_AmbientLight(blitzogre%, r#, g#, b#):"_AmbientLight@16"
bo_CreateLight%(blitzogre%, light_type%, entity_name$):"_CreateLight@12"
bo_PositionLight(light%, x#, y#, z#):"_PositionLight@16"
bo_MoveLight(light%, x#, y#, z#):"_MoveLight@16"
bo_LightColor(light%, r#, g#, b#):"_LightColor@16"
;====================================================================
; Meshes
;====================================================================
bo_LoadMesh%(blitzogre%, meshfile$, entity_name$):"_LoadMesh@12"
;====================================================================
; Overlays
;====================================================================
bo_CreateOverlay%(blitzogre%, overlay_name$):"_CreateOverlay@8"
bo_OverlayAdd2D(overlay%, container%):"_OverlayAdd2D@8"
bo_ShowOverlay(overlay%, enable%):"_ShowOverlay@8"
;====================================================================
; Overlays :: Container (Panels)
;====================================================================
bo_CreatePanel%(blitzogre%, x#, y#, width#, height#, panel_name$):"_CreatePanel@24"
bo_PanelAddChild(panel%, child%):"_PanelAddChild@8"
;====================================================================
; Overlays :: PanelChilds :: TextArea
;====================================================================
bo_CreateTextArea%(blitzogre%, x#, y#, width#, height#, textarea_name$):"_CreateTextArea@24"
bo_TextAreaText(textArea%, text$):"_TextAreaText@8"
bo_TextAreaFont(textArea%, fontname$, size#):"_TextAreaFont@12"
bo_LoadFont(blitzogre%, fontfile$, height$, bold%, italic%, underlined%):"_LoadFont@24"
>> Download BlitzOgre3D V0.4 (ca. 7,2MB) <<
Ein ausführbares Example liegt bei. Im Folgenden wie immer der Source des Samples:
BlitzBasic: [AUSKLAPPEN]
Include "bo3d/bo3d.bb"
Global EOL$ = Chr(13) + Chr(10)
Graphics3D()
AntiAlias 8 ;FSAA 8
; a Camera
Local cam.obj = CreateCamera()
PositionEntity cam, 0.0, 0.0, 160.0
CameraClsColor cam, 0.8, 0.5, 0.2
CameraRange cam, 0.1, 5000.0
; two Lights
Local light01.obj = CreateLight()
PositionEntity light01, -600.0, 600, 600
LightColor light01, 1.0, 0.0, 0.0 ; a sexy red light
Local light02.obj = CreateLight()
PositionEntity light02, 600.0, 600, -600
; a Mesh
Local ogre.obj = LoadMesh("media\ogrehead.mesh")
; ---- 2D Overlay with a TextArea ----
; we need a Font
LoadFont(SystemProperty("windowsdir") + "\Fonts\Arial.ttf", 32)
; Overlay + Panel + TextArea
Local ov.obj = CreateOverlay()
Local pnl.obj = CreatePanel(10.0, 10.0, 300.0, 100.0)
Local txtarea.obj = CreateTextArea(0.0, 0.0, 300.0, 100.0)
; define the font
TextAreaFont(txtarea.obj, "Arial.ttf", 32)
; add some text
TextAreaText(txtarea.obj, "BlitzOgre3D" + EOL + "Ogre3D for Blitz3D" + EOL + "V0.4")
; add the panel to the overlay ...
OverlayAdd2D(ov.obj, pnl.obj)
; ... and the textarea to the panel
PanelAddChild(pnl.obj, txtarea.obj)
; bring it on screen
ShowOverlay(ov.obj)
; ---- End > 2D Overlay with a TextArea ----
Local exit_flag% = False
While exit_flag% = False
If KeyDown(1) Then exit_flag = True ; hit Escape to exit
If KeyDown(208) Then MoveEntity(cam, 0.0, 0.0, 0.1) ; move camera forward
If KeyDown(200) Then MoveEntity(cam, 0.0, 0.0, -0.1) ; move camera backward
If KeyDown(203) Then MoveEntity(cam, -0.1, 0.0, 0.0) ; move camera left
If KeyDown(205) Then MoveEntity(cam, 0.1, 0.0, 0.0) ; move camera right
If KeyDown(17) Then WireFrame cam, PM_WIREFRAME ; "W" turns on WireFrame-Mode
If KeyDown(25) Then WireFrame cam, PM_POINTS ; "P" turns on Point-Mode
If KeyDown(31) Then WireFrame cam, PM_SOLID ; "S" turns on Solid-Mode"
TurnEntity ogre, 0.0, 0.001, 0.0 ; turn baby turn!
TextAreaText(txtarea, "Tris rendered: " + Str(TrisRendered())) ; this should not to be done per frame
If Not RenderWorld%() Then exit_flag = True
Wend
EndGraphics()
End
...weiter gehts.
Ein Oger kann behäbig sein

Der Versuch den Ogre-generierten Kontext ins Blitz3D Fenster zu zwingen ist grandios ins Wasser gefallen, spielt aber auch keine Rolle da es eh nicht so auf meiner Linie lag, schließlich soll nach Blitz3D auch noch BlitzMax mit Ogre versorgt werden.
Nebenbei hatte ich noch versucht Ogre statisch zu linken ... das hat auch funktioniert aber ich verfolge das nicht weiter weil es zuviele Nachteile mit sich bringt. Beispielsweise muss man sich dann schon beim erstellen der DLL für DX oder OGL entscheiden, welchen Scene-Type man bevorzugt (Indoor, Outdoor, weites Gelände, extra große Aussenwelten etc.). So bleibe ich halt bei den DLLs was ja auch nicht so schlimm ist. Wer (z.B.) BSP nicht benötigt nimmt es aus der CFG und schmeisst es aus dem Plugins Ordner und gut ist. Ohnehin habe ich mich schon weitestgehend von der Idee getrennt Ogre3D irgendwie in das Korsett eines Blitz3D pressen zu müssen.
Heute habe ich das Projekt auf Visual C++ 2010 Express und die letzte Ogre3D Version 1.7.1 umgestellt. Dabei habe ich auch den Code ein wenig umgebastelt. Der Krimskram heißt nun BlitzOgre3D (denn simple geht anders) und schleift einiges mehr an Komplexität nach Blitz3D durch. Ich dachte mir dass es nicht notwendig ist zwei Zweige zu fahren wenn man einen komplexeren Zeig einfach direkt in Blitz3D wrapped wo es ohnehin unerlässlich ist ein Include zu verwenden.
Aus der originalen Blitz3D IDE kann man noch immer kein Ogre-Projekt starten, das scheint aber an der Art und Weise zu liegen wie Blitz3D seine temporären Executables behandelt (und vor Allem: wo es sie ablegt). Es gibt zwei Möglichkeiten Ogre3D in Blitz3D zu testen:
1. mit der originalen IDE ein Executable erzeugen und dann dieses testen
2. IDEal verwenden und dort direkt "Compile'n'Run" auswählen können
Die Altlasten bei Graphics3D und bei dem von dort aufgerufene "Init" sind noch vorhanden, werden aber bald eleminiert. In Zukunft erzeugt Graphics3D eine CFG bevor es Ogre3D initialisiert damit das OgreConfigTool nicht angezeigt werden muss.
Da Ogre3D mit Szenen arbeitet gibt es eine kleine Veränderung. Man kann eine neue Scene mit "CreateScene%(scene_name$)" erzeugen. Alle Entities verlangen jetzt bei der Erzeugung den optionalen Parameter "scene". Lässt man den Parameter weg wird die DefaultScene verwendet die ohnehin beim initialisieren der Engine erzeugt wird.
Nebenbei hatte ich noch versucht Ogre statisch zu linken ... das hat auch funktioniert aber ich verfolge das nicht weiter weil es zuviele Nachteile mit sich bringt. Beispielsweise muss man sich dann schon beim erstellen der DLL für DX oder OGL entscheiden, welchen Scene-Type man bevorzugt (Indoor, Outdoor, weites Gelände, extra große Aussenwelten etc.). So bleibe ich halt bei den DLLs was ja auch nicht so schlimm ist. Wer (z.B.) BSP nicht benötigt nimmt es aus der CFG und schmeisst es aus dem Plugins Ordner und gut ist. Ohnehin habe ich mich schon weitestgehend von der Idee getrennt Ogre3D irgendwie in das Korsett eines Blitz3D pressen zu müssen.
Heute habe ich das Projekt auf Visual C++ 2010 Express und die letzte Ogre3D Version 1.7.1 umgestellt. Dabei habe ich auch den Code ein wenig umgebastelt. Der Krimskram heißt nun BlitzOgre3D (denn simple geht anders) und schleift einiges mehr an Komplexität nach Blitz3D durch. Ich dachte mir dass es nicht notwendig ist zwei Zweige zu fahren wenn man einen komplexeren Zeig einfach direkt in Blitz3D wrapped wo es ohnehin unerlässlich ist ein Include zu verwenden.
Aus der originalen Blitz3D IDE kann man noch immer kein Ogre-Projekt starten, das scheint aber an der Art und Weise zu liegen wie Blitz3D seine temporären Executables behandelt (und vor Allem: wo es sie ablegt). Es gibt zwei Möglichkeiten Ogre3D in Blitz3D zu testen:
1. mit der originalen IDE ein Executable erzeugen und dann dieses testen
2. IDEal verwenden und dort direkt "Compile'n'Run" auswählen können
Die Altlasten bei Graphics3D und bei dem von dort aufgerufene "Init" sind noch vorhanden, werden aber bald eleminiert. In Zukunft erzeugt Graphics3D eine CFG bevor es Ogre3D initialisiert damit das OgreConfigTool nicht angezeigt werden muss.
Da Ogre3D mit Szenen arbeitet gibt es eine kleine Veränderung. Man kann eine neue Scene mit "CreateScene%(scene_name$)" erzeugen. Alle Entities verlangen jetzt bei der Erzeugung den optionalen Parameter "scene". Lässt man den Parameter weg wird die DefaultScene verwendet die ohnehin beim initialisieren der Engine erzeugt wird.
Das Blitz3D Window als Geisel

Da es scheinbar unmöglich ist Ogre3D automatisch ein Fenster erstellen zu lassen wenn man versucht sein Programm aus der Blitz3D IDE zu starten, bin ich nun einen anderen Weg gegangen.
Der User führt einfach das ihm gegebene Graphics3D aus und ein Init() schickt dann das Window-Handle an den Konstruktor der Ogre3D Engine. Dieser nimmt das Fenster als seines an und versucht einen Kontext auf das übergebene Rendersystem einzurichten (OpenGL oder DirectX9).
Das funktioniert fast gut
Derzeit wird erfolgreich das entsprechende Plugin geladen und das Log zeigt keine Probleme ... aber scheinbar gelingt es nicht einen DX9 oder OpenGL Kontext in das Blitz3D Fenster zu zwingen.
Ich bin aber dran und denke dass ich auch das lösen werde.
Der User führt einfach das ihm gegebene Graphics3D aus und ein Init() schickt dann das Window-Handle an den Konstruktor der Ogre3D Engine. Dieser nimmt das Fenster als seines an und versucht einen Kontext auf das übergebene Rendersystem einzurichten (OpenGL oder DirectX9).
Das funktioniert fast gut

Derzeit wird erfolgreich das entsprechende Plugin geladen und das Log zeigt keine Probleme ... aber scheinbar gelingt es nicht einen DX9 oder OpenGL Kontext in das Blitz3D Fenster zu zwingen.
Ich bin aber dran und denke dass ich auch das lösen werde.
Gehe zu Seite Zurück 1, 2, 3 ... 7, 8, 9 ... 13, 14, 15 Weiter