simpleIrrlicht - Irrlicht in "Einfach"
Gehe zu Seite Zurück 1, 2, 3 ... 10, 11, 12, 13, 14, 15 Weiter

Die hard

Auch heute werde ich keine neue Version präsentieren können da die Shader-Geschichte einige Fallstricke bereit hält die nicht abzusehen waren. Das Framework XEffects stellt eine "Lichtquelle" bereit die Parameter haben will deren Werte ich nicht weiß. Einfaches raten hat mich heute gut 4 Stunden gekostet und zu keinem brauchbaren Ergebnis geführt. Desweiteren funktioniert ein "Bloom" zwar unter OpenGL, unter DX wird aber nur das ScreenRTT angezeigt und sonst nichts, auch nicht so witzig.
Ein weiterer "Verzögerer" ist die Tatsache dass ich nicht hunderte neue Befehle einführen will um Shader Entites anders behandeln zu können als normale Entities, so nehme ich in den vorhandenen Funktionen Fallunterscheidungen vor. Zum Beispiel prüfe ich in s3d_LightCastShadows() ob der ShadowMode nun 1 oder 2 ist um im ersten Fall Stencilbuffer Shadows und im zweiten Fall ShadowMaps erzeugen zu können. Diese Philosophie hat es nun mit sich gebracht das weite Teile der Engine erweitert werden mussten und nun eigentlich nichts mehr so funktioniert wie es vorher war. Das heißt: Erstmal aufräumen damit das wieder geht was vorher schon ging und dann nachschauen warum diese verf****en ShadowMaps nicht das tun was ich will.
Hier noch das Changelog der letzen Tage:
Code: [AUSKLAPPEN]
13.10.2009 Version 0.18
added s3d_SetShadowMapSize()
added s3d_EntityLighting()
added s3d_AmbientLight()
added s3d_SLightLookAt()
added s3d_LightRadius()
changed s3d_LightCastShadows()
changed s3d_EntityShadow()
12.10.2009 Version 0.17
added XEffects Shaderframework by Blindside
added s3d_ShadowOptions()
added s3d_ShaderDir()
changed s3d_Options() ; Parameter "shadows" entfernt
Stay tuned!
Ein weiterer "Verzögerer" ist die Tatsache dass ich nicht hunderte neue Befehle einführen will um Shader Entites anders behandeln zu können als normale Entities, so nehme ich in den vorhandenen Funktionen Fallunterscheidungen vor. Zum Beispiel prüfe ich in s3d_LightCastShadows() ob der ShadowMode nun 1 oder 2 ist um im ersten Fall Stencilbuffer Shadows und im zweiten Fall ShadowMaps erzeugen zu können. Diese Philosophie hat es nun mit sich gebracht das weite Teile der Engine erweitert werden mussten und nun eigentlich nichts mehr so funktioniert wie es vorher war. Das heißt: Erstmal aufräumen damit das wieder geht was vorher schon ging und dann nachschauen warum diese verf****en ShadowMaps nicht das tun was ich will.
Hier noch das Changelog der letzen Tage:
Code: [AUSKLAPPEN]
13.10.2009 Version 0.18
added s3d_SetShadowMapSize()
added s3d_EntityLighting()
added s3d_AmbientLight()
added s3d_SLightLookAt()
added s3d_LightRadius()
changed s3d_LightCastShadows()
changed s3d_EntityShadow()
12.10.2009 Version 0.17
added XEffects Shaderframework by Blindside
added s3d_ShadowOptions()
added s3d_ShaderDir()
changed s3d_Options() ; Parameter "shadows" entfernt
Stay tuned!
XEffects

Seit Freitag habe ich gebastelt, gegrübelt und gefragt. Nachdem ich dann durch ausprobieren selbst die Lösung gefunden habe konnte ich XEffects von BlindSide integrieren.
Was XEffects ist? Nun, ein Shader Framework welches einfachen Zugriff auf zahlreiche Effekte und eigene Shader ermöglicht.
Auf Basis von XEffects baue ich gerade ShadowMaps in simple3D ein. Diese werden per Shader berechnet und haben folgende Eigenart: Die FPS werden erstmal einbrechen wenn man sie verwendet, aber sie werden nicht weiter minimiert wenn man mehr Objekte mit ShadowMaps verwendet, im Gegensatz zu den derzeitigen Stencil Buffer Shadows wo jedes weitere Objekt die Performance extrem reduziert.
Zudem sind ShadowMaps genauer als StencilBuffer Shadows und man kann mit ihnen SoftShadows erzeugen (auf kosten der Performance).
Alte onBoard Chipsets bleiben da natürlich aussen vor, unter Pixelshader Model 2.0 ist da kaum was zu holen, aber die Fetischisten unter Euch können aufatmen: s3d wird ShadowMaps nicht zwingend verwenden, man kann sie ebenso abschalten wie man derzeit die SB-Shadows abschalten kann.
Ich denke dass ich morgen abend V0.17 veröffentlichen kann, dann könnt ihr die neuen Schatten begutachten.
Was XEffects ist? Nun, ein Shader Framework welches einfachen Zugriff auf zahlreiche Effekte und eigene Shader ermöglicht.
Auf Basis von XEffects baue ich gerade ShadowMaps in simple3D ein. Diese werden per Shader berechnet und haben folgende Eigenart: Die FPS werden erstmal einbrechen wenn man sie verwendet, aber sie werden nicht weiter minimiert wenn man mehr Objekte mit ShadowMaps verwendet, im Gegensatz zu den derzeitigen Stencil Buffer Shadows wo jedes weitere Objekt die Performance extrem reduziert.
Zudem sind ShadowMaps genauer als StencilBuffer Shadows und man kann mit ihnen SoftShadows erzeugen (auf kosten der Performance).
Alte onBoard Chipsets bleiben da natürlich aussen vor, unter Pixelshader Model 2.0 ist da kaum was zu holen, aber die Fetischisten unter Euch können aufatmen: s3d wird ShadowMaps nicht zwingend verwenden, man kann sie ebenso abschalten wie man derzeit die SB-Shadows abschalten kann.
Ich denke dass ich morgen abend V0.17 veröffentlichen kann, dann könnt ihr die neuen Schatten begutachten.
V0.15 besiegt irrKlang

Letzten Endes habe ich irrKlang nun doch in das Projekt einbinden können. Hier das Changelog für die letzten Versionen.
Code: [AUSKLAPPEN]
08.10.2009 Version 0.15
added s3d_SetAudioDriver()
added s3d_GetAudioDriver()
added s3d_LoadSound()
added s3d_Play3DSound()
added s3d_Play3DFromFile()
added s3d_PositionSound()
added s3d_CameraListener()
added s3d_MasterSoundVolume()
changed in s3d_RenderWorld() ISoundEngine::update() hinzugefügt
07.10.2009 Version 0.14
Es gibt keine Unterscheidung zwischen Mesh und AnimMesh mehr. Jedes Mesh wird grundsätzlich als AnimMesh behandelt.
changed s3d_LoadAnimMesh() -> s3d_LoadMesh()
06.10.2009 Version 0.13
changed gesamte Struktur geändert um Newton Objekte translieren zu können
added s3d_SetGravity()
05.10.2009 Version 0.12
changed Abhängigkeiten von den CRT Libraries wurden entfernt
02.10.2009 Version 0.11
added s3d_CreateFPSCamera()
added s3d_AddZip()
added s3d_CreateSphere()
added s3d_ScaleEntity()
added s3d_EntityShadow()
added s3d_LoadAnimMesh()
added s3d_ScaleMesh()
added s3d_LightCastShadows()
added s3d_EntityPhysics()
added s3d_HideEntity()
added s3d_ShowEntity()
fixed s3d_AppTitle()
01.10.2009 Version 0.10
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
>> Download simple3D | Blitz3D v0.15 (ca. 1,9MB) inkl. Beispiel <<
Viel Spaß mit 3D Sound
Code: [AUSKLAPPEN]
08.10.2009 Version 0.15
added s3d_SetAudioDriver()
added s3d_GetAudioDriver()
added s3d_LoadSound()
added s3d_Play3DSound()
added s3d_Play3DFromFile()
added s3d_PositionSound()
added s3d_CameraListener()
added s3d_MasterSoundVolume()
changed in s3d_RenderWorld() ISoundEngine::update() hinzugefügt
07.10.2009 Version 0.14
Es gibt keine Unterscheidung zwischen Mesh und AnimMesh mehr. Jedes Mesh wird grundsätzlich als AnimMesh behandelt.
changed s3d_LoadAnimMesh() -> s3d_LoadMesh()
06.10.2009 Version 0.13
changed gesamte Struktur geändert um Newton Objekte translieren zu können
added s3d_SetGravity()
05.10.2009 Version 0.12
changed Abhängigkeiten von den CRT Libraries wurden entfernt
02.10.2009 Version 0.11
added s3d_CreateFPSCamera()
added s3d_AddZip()
added s3d_CreateSphere()
added s3d_ScaleEntity()
added s3d_EntityShadow()
added s3d_LoadAnimMesh()
added s3d_ScaleMesh()
added s3d_LightCastShadows()
added s3d_EntityPhysics()
added s3d_HideEntity()
added s3d_ShowEntity()
fixed s3d_AppTitle()
01.10.2009 Version 0.10
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
>> Download simple3D | Blitz3D v0.15 (ca. 1,9MB) inkl. Beispiel <<
Viel Spaß mit 3D Sound

Irrklang, die Sau

Durch die Tatsache das ich irrKlang nicht statisch linken kann, ergibt sich das Problem das Blitz3D die irrKlang.dll nicht lädt. Um mich nun nicht wochenlang mit diesem Problem beschäftigen zu müssen habe ich folgende Entscheidung getroffen:
irrKlang wird später als separater Wrapper kommen, bis dahin verzichten BlitzPlus User auf 3D Sound, Blitz3D User können das in Blitz3D eingebaute 3D Sound System verwenden und für BlitzMax steht OpenAL zur Verfügung.
In den Comments erwähnte ich dass ich im aktuellen Sample ~1400 FPS bekomme, nach den letzten Optimierungen komme ich auf über 2000 FPS .. ich denke das ist eine ordentliche Optimierung und das lässt sich auch noch steigern indem ich ShadowMaps via Shader einführe und Physikobjekte lösche sobald sie nicht mehr benötigt werden. Insgesamt denke ich dass ich auf meinem System (Dual Core 2.1GHz + GF8800GTS) an die 3000 FPS kommen kann (mit dem aktuellen Sample).
Desweiteren lassen sich die Entities in sog. CollisionTrees zusammen fassen was eine weitere Performance Steigerung zur Folge hätte.
Weiterhin zu bemerken ist die Tatsache das simple3D (im Gegensatz zu Blitz3D) nicht mehr zwischen AnimMesh und Mesh unterscheidet. Jedes Mesh wird als animiertes Mesh behandelt, ob es nun Animationen beinhaltet oder nicht. Extra Prozessorkraft ist dafür nicht notwendig und das Mehr an Speicher beläuft sich auf einige Bytes.
Die Version 0.15 gedenke ich morgen zu releasen.
irrKlang wird später als separater Wrapper kommen, bis dahin verzichten BlitzPlus User auf 3D Sound, Blitz3D User können das in Blitz3D eingebaute 3D Sound System verwenden und für BlitzMax steht OpenAL zur Verfügung.
In den Comments erwähnte ich dass ich im aktuellen Sample ~1400 FPS bekomme, nach den letzten Optimierungen komme ich auf über 2000 FPS .. ich denke das ist eine ordentliche Optimierung und das lässt sich auch noch steigern indem ich ShadowMaps via Shader einführe und Physikobjekte lösche sobald sie nicht mehr benötigt werden. Insgesamt denke ich dass ich auf meinem System (Dual Core 2.1GHz + GF8800GTS) an die 3000 FPS kommen kann (mit dem aktuellen Sample).
Desweiteren lassen sich die Entities in sog. CollisionTrees zusammen fassen was eine weitere Performance Steigerung zur Folge hätte.
Weiterhin zu bemerken ist die Tatsache das simple3D (im Gegensatz zu Blitz3D) nicht mehr zwischen AnimMesh und Mesh unterscheidet. Jedes Mesh wird als animiertes Mesh behandelt, ob es nun Animationen beinhaltet oder nicht. Extra Prozessorkraft ist dafür nicht notwendig und das Mehr an Speicher beläuft sich auf einige Bytes.
Die Version 0.15 gedenke ich morgen zu releasen.
Immer wieder was neues

Bisher gaben die "Create" und "Load" Funktionen immer direkt einen Zeiger auf die entsprechenden Nodes der Irrlicht Engine zurück. Schwerer Fehler.
Wenn ich ein Mesh skaliere weiß ich nicht ob das Mesh auch ein Physik-Objekt ist welches per EntityPhysics() definiert wurde. Also habe ich das Objekt TEntity gebastelt und lasse alle Funktionen über dieses Objekt kommunizieren. In TEntity sichere ich das Newton Objekt und kann so sicher stellen dass Physik Objekte ihre neue Matrix erhalten wenn sie skaliert werden.
Wegen dieser Änderung musste ich nicht nur den Großteil des C++ Source modifizieren, sondern auch die DECLS und das BlitzMax Modul. Dezeit läuft simple3D nicht, ich gehe davon aus dass ich morgen abend eine neue, lauffähige Version hochladen kann.
Einzige neue Funktion für die Version 0.13 ist s3d_SetGravity().
irrKlang ist nun eingebaut. Es gibt noch keinerlei Funktionen welche irrKlang verwenden, aber der Link zur irrKlang.dll ist da. Ich kann irrKlang leider nicht statisch linken, da ich dann jeden Benutzer von simple3D dazu zwingen würde irrKlang für 65,-€ zu kaufen ... ich werde mich darum kümmern dass das geändert werden kann.
Wenn ich ein Mesh skaliere weiß ich nicht ob das Mesh auch ein Physik-Objekt ist welches per EntityPhysics() definiert wurde. Also habe ich das Objekt TEntity gebastelt und lasse alle Funktionen über dieses Objekt kommunizieren. In TEntity sichere ich das Newton Objekt und kann so sicher stellen dass Physik Objekte ihre neue Matrix erhalten wenn sie skaliert werden.
Wegen dieser Änderung musste ich nicht nur den Großteil des C++ Source modifizieren, sondern auch die DECLS und das BlitzMax Modul. Dezeit läuft simple3D nicht, ich gehe davon aus dass ich morgen abend eine neue, lauffähige Version hochladen kann.
Einzige neue Funktion für die Version 0.13 ist s3d_SetGravity().
irrKlang ist nun eingebaut. Es gibt noch keinerlei Funktionen welche irrKlang verwenden, aber der Link zur irrKlang.dll ist da. Ich kann irrKlang leider nicht statisch linken, da ich dann jeden Benutzer von simple3D dazu zwingen würde irrKlang für 65,-€ zu kaufen ... ich werde mich darum kümmern dass das geändert werden kann.
Geht nicht gibts nicht!

Offenbar konnte ich die Abhängigkeiten auflösen die dafür gesorgt haben dass s3d unter Blitz3D nur bei mir lief. Nun also das aktuelle Archiv, das Sample und das übliche Changelog.
Code: [AUSKLAPPEN]
05.10.2009 Version 0.12
changed Abhängigkeiten von den CRT Libraries wurden entfernt
02.10.2009 Version 0.11
added s3d_CreateFPSCamera()
added s3d_AddZip()
added s3d_CreateSphere()
added s3d_ScaleEntity()
added s3d_EntityShadow()
added s3d_LoadAnimMesh()
added s3d_ScaleMesh()
added s3d_LightCastShadows()
added s3d_EntityPhysics()
added s3d_HideEntity()
added s3d_ShowEntity()
fixed s3d_AppTitle()
01.10.2009 Version 0.10
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
Die Installation ist im ReadMe beschrieben, ein vorkompiliertes Beispiel befindet sich im Ordner "sample".
Die DLL ist nun soweit gediegen dass ich derzeit das Interface für BlitzMax neu implementiere. Funktioniert super ... das bedeutet das eine DLL für BlitzPlus, Blitz3D und BlitzMax genügt. Unter BlitzMax heissen die Befehle etwas anders (kein "s3d_") aber sonst kann nun jeder von jedem abgucken.
Bevor ich nun den Blitz3D Sprachschatz komplett wrappe kommt noch irrKlang hinzu um geilen 3D Sound generieren zu können. Alles was danach kommt ist reine Fleißarbeit.
>> Download simple3D | Blitz3D v0.11 (ca. 2,7MB) inkl. Beispiel <<
Code: [AUSKLAPPEN]
05.10.2009 Version 0.12
changed Abhängigkeiten von den CRT Libraries wurden entfernt
02.10.2009 Version 0.11
added s3d_CreateFPSCamera()
added s3d_AddZip()
added s3d_CreateSphere()
added s3d_ScaleEntity()
added s3d_EntityShadow()
added s3d_LoadAnimMesh()
added s3d_ScaleMesh()
added s3d_LightCastShadows()
added s3d_EntityPhysics()
added s3d_HideEntity()
added s3d_ShowEntity()
fixed s3d_AppTitle()
01.10.2009 Version 0.10
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
Die Installation ist im ReadMe beschrieben, ein vorkompiliertes Beispiel befindet sich im Ordner "sample".
Die DLL ist nun soweit gediegen dass ich derzeit das Interface für BlitzMax neu implementiere. Funktioniert super ... das bedeutet das eine DLL für BlitzPlus, Blitz3D und BlitzMax genügt. Unter BlitzMax heissen die Befehle etwas anders (kein "s3d_") aber sonst kann nun jeder von jedem abgucken.
Bevor ich nun den Blitz3D Sprachschatz komplett wrappe kommt noch irrKlang hinzu um geilen 3D Sound generieren zu können. Alles was danach kommt ist reine Fleißarbeit.
>> Download simple3D | Blitz3D v0.11 (ca. 2,7MB) inkl. Beispiel <<
Blitz3D, simple3D und Newton

Mit der Version 0.11 kann simple3D|Blitz3D auch Newton Physics.
Hier noch auf die Husche das aktuelle Changelog:
Code: [AUSKLAPPEN]
02.10.2009 Version 0.11
added s3d_CreateFPSCamera()
added s3d_AddZip()
added s3d_CreateSphere()
added s3d_ScaleEntity()
added s3d_EntityShadow()
added s3d_LoadAnimMesh()
added s3d_ScaleMesh()
added s3d_LightCastShadows()
added s3d_EntityPhysics()
added s3d_HideEntity()
added s3d_ShowEntity()
fixed s3d_AppTitle()
01.10.2009 Version 0.10
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
Die aktuelle Version kann unter altbewährten Link herunter geladen werden ....
>> Download simple3D|Blitz3D Version 0.11 << (ca. 1,3MB)
Für diejenigen die nichts installieren und/oder kompilieren wollen oder gar kein Blitz3D besitzen habe ich ein ausführbares Sample vorbereitet:
s3D|B3D V0.11 Sample (ca. 1,3MB)
Viel Spaß damit.

Hier noch auf die Husche das aktuelle Changelog:
Code: [AUSKLAPPEN]
02.10.2009 Version 0.11
added s3d_CreateFPSCamera()
added s3d_AddZip()
added s3d_CreateSphere()
added s3d_ScaleEntity()
added s3d_EntityShadow()
added s3d_LoadAnimMesh()
added s3d_ScaleMesh()
added s3d_LightCastShadows()
added s3d_EntityPhysics()
added s3d_HideEntity()
added s3d_ShowEntity()
fixed s3d_AppTitle()
01.10.2009 Version 0.10
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
Die aktuelle Version kann unter altbewährten Link herunter geladen werden ....
>> Download simple3D|Blitz3D Version 0.11 << (ca. 1,3MB)
Für diejenigen die nichts installieren und/oder kompilieren wollen oder gar kein Blitz3D besitzen habe ich ein ausführbares Sample vorbereitet:
s3D|B3D V0.11 Sample (ca. 1,3MB)
Viel Spaß damit.
simple3D B3D 0.1

In der aktuellen Version habe ich die Bezeichner umgestellt, Bugs entfernt und drei weitere Funktionen hinzugefügt. Das Changelog kann das immer so nett zusammen fassen:
Code: [AUSKLAPPEN]
01.10.2009 Version 0.1
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
Mir wurde berichtet dass sich das Sample nicht kompilieren liesse, ist das ein allgemeines Phänomen oder kann jemand da draussen das Beispiel erfolgreich übersetzen?
Ich poste hier mal nur den Abschnitt der readme.txt welcher die Installation beschreibt, vielleicht liegt es ja nur daran dass die Dateien nicht an ihren korrekten Ort geschoben wurden:
Zitat:
Installation:
kopiert den Inhalt des Verzeichnisses "userlibs" in euer userlibs Verzeichnis (bspw: "C:\Blitz3D\userlibs\") und die s3d.dll in den Projekt-Ordner.
Der Link ist derselbe wie beim letzten Mal, nur das Päckchen ist etwas größer (ca. 4,7MB).
Have Fun!
Code: [AUSKLAPPEN]
01.10.2009 Version 0.1
changed Init() -> s3d_Init()
changed Gfx3D() -> s3d_Graphics3D()
changed SetEngineOptions() -> s3d_Options()
changed GetFPS() -> s3d_GetFPS()
changed Render() -> s3d_RenderWorld()
changed SetClsMode() -> s3d_ClsMode()
changed SetClsColor() -> s3d_ClsColor()
changed KillEngine() -> s3d_Drop()
changed AddCamera() -> s3d_CreateCamera()
changed AddCube() -> s3d_CreateCube()
changed AddLight() -> s3d_CreateLight()
changed EntityPosition() -> s3d_PositionEntity()
changed EntityTurn() -> s3d_TurnEntity()
added s3d_MoveEntity()
added s3d_KeyDown()
added s3d_KeyHit()
30.09.2009 Version 0.0
added Init()
added Gfx3D()
added SetEngineOptions()
added GetFPS()
added Render()
added SetClsMode()
added SetClsColor()
added KillEngine()
added AddCamera()
added AddCube()
added AddLight()
added EntityPosition()
added EntityTurn()
Mir wurde berichtet dass sich das Sample nicht kompilieren liesse, ist das ein allgemeines Phänomen oder kann jemand da draussen das Beispiel erfolgreich übersetzen?
Ich poste hier mal nur den Abschnitt der readme.txt welcher die Installation beschreibt, vielleicht liegt es ja nur daran dass die Dateien nicht an ihren korrekten Ort geschoben wurden:
Zitat:
Installation:
kopiert den Inhalt des Verzeichnisses "userlibs" in euer userlibs Verzeichnis (bspw: "C:\Blitz3D\userlibs\") und die s3d.dll in den Projekt-Ordner.
Der Link ist derselbe wie beim letzten Mal, nur das Päckchen ist etwas größer (ca. 4,7MB).
Have Fun!
Blitz3D Irrlicht anyone?

simple3D - Blitz3D / Version 0.0000001
Dies ist das erste lauffähige Kompilat von s3D-B3D, deshalb kann es noch nicht viel und ist auch noch nicht bugfrei. So darf man seinen Code derzeit nicht im DebugMode laufen lassen weil dann der blitzcc abschmiert. Warum genau das so ist muss ich erst analysieren.
Installation:
kopiert den Inhalt des Verzeichnisses "userlibs" in euer userlibs Verzeichnis.
>> Bevor ihr das Sample ausführen könnt, müsst ihr die s3d.dll aus dem userlibs Verzeichnis auch in das Verzeichnis mit der test.bb kopieren!
Wichtig:
Die Irrlicht Engine schnappt Blitz3D die Events unter dem Hintern weg, man kann also keine Input-Befehle wie KeyHit() usw. verwenden. Da der EventReceiver der Irrlicht Engine noch nicht umgesetzt ist, ist es ratsam die Test-App nicht in den Fullscreen-Modus zu schalten, da kommt ihr nie wieder raus
Startet den Test im Release-Mode und im Fenster (wie vorgegeben) und beendet sie indem ihr das Fenster schließt.
Im Gegensatz zu Blitz3D gibt Render() eine 1 zurück wenn der Grafikkontext aktiv ist und 0 wenn er geschlossen wurde. Es ist ratsam darauf zu reagieren da sonst die App ewig weiter läuft. Vor dem Ende sollte KillEngine() aufgerufen werden damit der Speicher wieder freigegeben wird den die Irrlicht Engine belegt hat. Der Hausmeister (GC) von Blitz3D kann das nicht tun da er nicht weiß dass ihr in seinem Vorgarten eine DirectX9 Party veranstaltet habt!
Alles in Allem soll dieser Test nur zeigen dass simple3D für BlitzMax und Blitz3D funktioniert.
Viel Spaß!
Download s3DB3D (ca. 1,8MB)

Dies ist das erste lauffähige Kompilat von s3D-B3D, deshalb kann es noch nicht viel und ist auch noch nicht bugfrei. So darf man seinen Code derzeit nicht im DebugMode laufen lassen weil dann der blitzcc abschmiert. Warum genau das so ist muss ich erst analysieren.
Installation:
kopiert den Inhalt des Verzeichnisses "userlibs" in euer userlibs Verzeichnis.
>> Bevor ihr das Sample ausführen könnt, müsst ihr die s3d.dll aus dem userlibs Verzeichnis auch in das Verzeichnis mit der test.bb kopieren!
Wichtig:
Die Irrlicht Engine schnappt Blitz3D die Events unter dem Hintern weg, man kann also keine Input-Befehle wie KeyHit() usw. verwenden. Da der EventReceiver der Irrlicht Engine noch nicht umgesetzt ist, ist es ratsam die Test-App nicht in den Fullscreen-Modus zu schalten, da kommt ihr nie wieder raus

Im Gegensatz zu Blitz3D gibt Render() eine 1 zurück wenn der Grafikkontext aktiv ist und 0 wenn er geschlossen wurde. Es ist ratsam darauf zu reagieren da sonst die App ewig weiter läuft. Vor dem Ende sollte KillEngine() aufgerufen werden damit der Speicher wieder freigegeben wird den die Irrlicht Engine belegt hat. Der Hausmeister (GC) von Blitz3D kann das nicht tun da er nicht weiß dass ihr in seinem Vorgarten eine DirectX9 Party veranstaltet habt!
Alles in Allem soll dieser Test nur zeigen dass simple3D für BlitzMax und Blitz3D funktioniert.
Viel Spaß!
Download s3DB3D (ca. 1,8MB)

Zwischenbericht

Ich habe zwar eben Version 0.23 hochgeladen, aber befriedigend ist das Release nicht. Eigentlich wollte ich heute schon PerPixelLighting drin haben, aber das lässt eine BMax App derzeit noch ohne sichtbare Gründe abschmieren ... schade eigentlich.
Neu ist EntityImpulse(). Mit dieser Funktion kann man einen Kraftimpuls auf ein Entity auslösen welches als Physikobjekt definiert wurde. Im Sample ist der Kraftpunkt noch sehr undefiniert weil noch keine Funktionen implementiert sind welche den exakten Punkt auf einem Entity ermitteln, aber auch das wird sich noch ändern.
Hier noch kurz die neuesten Einträge im ChangeLog
Code: [AUSKLAPPEN]
>> 65 Funktionen implementiert <<
29.09.2009 Version 0.23
added EntityImpulse()
added EntityFXMaterial()
28.09.2009 Version 0.22
changed MaterialColor() -> EntityColor()
changed MaterialSpecColor() -> EntitySpecColor()
changed MaterialShininess() -> EntityShininess()
changed MaterialAmbient() -> EntityAmbient()
changed MaterialEmissive() -> EntityEmissive()
added EntityPick()
added EntityLighting()
added GetEntityID()
...und ein Screenshot. Der ähnelt dem letzten frappierend. Anders ist dass ein Objekt unter dem Mauszeiger heller erscheint und dass man ihn mit [SPACE] herum schubsen kann.
Der Link zum aktuellen Release ist derselbe wie immer...
simple3D V0.23 (ca. 3,9MB)
Neu ist EntityImpulse(). Mit dieser Funktion kann man einen Kraftimpuls auf ein Entity auslösen welches als Physikobjekt definiert wurde. Im Sample ist der Kraftpunkt noch sehr undefiniert weil noch keine Funktionen implementiert sind welche den exakten Punkt auf einem Entity ermitteln, aber auch das wird sich noch ändern.
Hier noch kurz die neuesten Einträge im ChangeLog
Code: [AUSKLAPPEN]
>> 65 Funktionen implementiert <<
29.09.2009 Version 0.23
added EntityImpulse()
added EntityFXMaterial()
28.09.2009 Version 0.22
changed MaterialColor() -> EntityColor()
changed MaterialSpecColor() -> EntitySpecColor()
changed MaterialShininess() -> EntityShininess()
changed MaterialAmbient() -> EntityAmbient()
changed MaterialEmissive() -> EntityEmissive()
added EntityPick()
added EntityLighting()
added GetEntityID()
...und ein Screenshot. Der ähnelt dem letzten frappierend. Anders ist dass ein Objekt unter dem Mauszeiger heller erscheint und dass man ihn mit [SPACE] herum schubsen kann.

Der Link zum aktuellen Release ist derselbe wie immer...
simple3D V0.23 (ca. 3,9MB)
Gehe zu Seite Zurück 1, 2, 3 ... 10, 11, 12, 13, 14, 15 Weiter