simpleIrrlicht - Irrlicht in "Einfach"

Kommentare anzeigen Worklog abonnieren
Gehe zu Seite Zurück  1, 2, 3 ... 9, 10, 11 ... 13, 14, 15  Weiter

Worklogs simpleIrrlicht - Irrlicht in "Einfach"

Stay tuned

Donnerstag, 12. November 2009 von Farbfinsternis
Das hier derzeit nichts passiert hat einen Grund: Ich programmiere nebenbei das Amiga Spiel "PanzerZ" und will das erstmal in einen spielbaren Zustand bekommen bevor es mit simple3D weiter geht. Zudem muss der C/C++ Source aufgeräumt werden da ich den Parameter "device" tilgen möchte. Das Objekt "Irrlicht" kann auch von der DLL gehalten werden und muss nicht zwingend ständig mit übergeben werden.

Der nächste Schritt wird sein (weil die Frage kam) das freie Erstellen von Meshes zu implementieren, desweiteren steht hier noch "Parallaxmapping" auf meinem Zettel.

Keine Angst, das Projekt ist nicht tot, aber jetzt ist erstmal PanzerZ dran und dann geht es auch hier wieder frischen Mutes zur Sache.

0.20

Montag, 19. Oktober 2009 von Farbfinsternis
Eine neue Woche, eine neue simple3D Version. So wahnsinnig viel ist nicht passiert, gerade einmal 9 neue Funktionen sind eingebaut worden.
Eine davon ist LoadSkyBox(), mit dieser kann man mit zwei (in Blitz3D drei) Parametern eine Skybox laden und anzeigen. In den Samples habe ich das verwendet, so dass Ihr das auch gleich testen könnt.

Desweiteren wurden die Funktionen ExtractAnimSeq() und Animate() eingebaut so dass Ihr Eure AnimMeshes bessser kontrollieren könnt.

Changelog:
Code: [AUSKLAPPEN]

19.10.2009 Version 0.2
added   s3d_EntityX()
added   s3d_EntityY()
added   s3d_EntityZ()
added   s3d_EntityPitch()
added   s3d_EntityYaw()
added   s3d_EntityRoll()
added   s3d_ExtractAnimSeq()
added   s3d_Animate()
added   s3d_LoadSkyBox()


16.10.2009 Version 0.19
added   s3d_LoadBSP()
added   s3d_InitIrrKlang()
removed s3d_SetAudioDriver()
fixed   Shaderfehler in GLSL


14.10.2009 Version 0.18
added   s3d_SetShadowMapSize()
added   s3d_EntityLighting()
added   s3d_AmbientLight()
added   s3d_SLightLookAt()
added   s3d_LightRadius()
added   s3d_CreateSMLight()
added   s3d_SceneBloom()
added   s3d_EntityShader()
added   s3d_AddShaderPass()
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
                              

09.10.2009 Version 0.16
changed   simple3D an neue Irrlicht Version 1.6 angebunden
added   s3d_GetGfxVendor()         ; gibt bei mir nichts aus, wäre schön wenn das mal jemand anders testen könnte.


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   core                  ; in s3d_RenderWorld() ISoundEngine::update() hinzugefügt


07.10.2009 Version 0.14
changed   s3d_LoadAnimMesh()         ; es gibt nur noch s3d_LoadMesh()


06.10.2009 Version 0.13
changed   core                  ; gesamte Struktur geändert um Newton Objekte translieren zu können
added   s3d_SetGravity()


05.10.2009 Version 0.12
changed   core                  ; 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()             ; heisst jetzt s3d_Init()
changed Gfx3D()            ; heisst jetzt s3d_Graphics3D()
changed SetEngineOptions()   ; heisst jetzt s3d_Options()
changed GetFPS()         ; heisst jetzt s3d_GetFPS()
changed Render()         ; heisst jetzt s3d_RenderWorld()
changed SetClsMode()      ; heisst jetzt s3d_ClsMode()
changed SetClsColor()      ; heisst jetzt s3d_ClsColor()
changed KillEngine()      ; heisst jetzt s3d_Drop()
changed AddCamera()         ; heisst jetzt s3d_CreateCamera()
changed AddCube()         ; heisst jetzt s3d_CreateCube()
changed AddLight()         ; heisst jetzt s3d_CreateLight()
changed EntityPosition()   ; heisst jetzt s3d_PositionEntity()
changed EntityTurn()      ; heisst jetzt 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 V0.20 (BlitzPlus, Blitz3D und BlitzMax)<< (ca. 4,9MB)

Update 0.19

Freitag, 16. Oktober 2009 von Farbfinsternis
Ich habe das im letzten Beitrag verlinkte Archiv aktualisiert. Es liegt nun ein Installer für die letzte DirectX Version bei. Laut dem Entwickler der Irrlicht Engine ist es notwendig das der User der Irrlicht Produkte nutzen will dieselbe Version von DirectX installiert hat die der Entwickler genutzt hat.

Das OpenGL Problem kann ich derzeit nicht nachvollziehen und es scheint auch nicht bei jedem aufzutreten. Insgesamt denke ich dass das Kernproblem in den Shadern liegt die BlindSide seinem XEffects beigelegt hat. Ich werde nochmal Shader basteln die auf PS1.4 basieren welches die meisten von Euch haben dürften. PS3.0 ist wohl doch nicht soweit verbreitet wie angenommen Wink

V0.19

Freitag, 16. Oktober 2009 von Farbfinsternis
Nein Leute, DirectX geht noch immer nicht. Dafür sollte aber OpenGL jetzt bei jedem funktionieren.

Neu ist der Support für Quake 3 BSP Files. Mehr als diese zu laden und anzuzeigen geht noch nicht, aber die Irrlicht Engine kann da noch eine Menge mehr mit machen.

Code: [AUSKLAPPEN]

16.10.2009 Version 0.19
added   s3d_LoadBSP()
added   s3d_InitIrrKlang()
removed s3d_SetAudioDriver()
fixed   Shaderfehler in GLSL


14.10.2009 Version 0.18
added   s3d_SetShadowMapSize()
added   s3d_EntityLighting()
added   s3d_AmbientLight()
added   s3d_SLightLookAt()
added   s3d_LightRadius()
added   s3d_CreateSMLight()
added   s3d_SceneBloom()
added   s3d_EntityShader()
added   s3d_AddShaderPass()
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
                              

09.10.2009 Version 0.16
changed   simple3D an neue Irrlicht Version 1.6 angebunden
added   s3d_GetGfxVendor()         ; gibt bei mir nichts aus, wäre schön wenn das mal jemand anders testen könnte.


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   core                  ; in s3d_RenderWorld() ISoundEngine::update() hinzugefügt


07.10.2009 Version 0.14
changed   s3d_LoadAnimMesh()         ; es gibt nur noch s3d_LoadMesh()


06.10.2009 Version 0.13
changed   core                  ; gesamte Struktur geändert um Newton Objekte translieren zu können
added   s3d_SetGravity()


05.10.2009 Version 0.12
changed   core                  ; 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()             ; heisst jetzt s3d_Init()
changed Gfx3D()            ; heisst jetzt s3d_Graphics3D()
changed SetEngineOptions()   ; heisst jetzt s3d_Options()
changed GetFPS()         ; heisst jetzt s3d_GetFPS()
changed Render()         ; heisst jetzt s3d_RenderWorld()
changed SetClsMode()      ; heisst jetzt s3d_ClsMode()
changed SetClsColor()      ; heisst jetzt s3d_ClsColor()
changed KillEngine()      ; heisst jetzt s3d_Drop()
changed AddCamera()         ; heisst jetzt s3d_CreateCamera()
changed AddCube()         ; heisst jetzt s3d_CreateCube()
changed AddLight()         ; heisst jetzt s3d_CreateLight()
changed EntityPosition()   ; heisst jetzt s3d_PositionEntity()
changed EntityTurn()      ; heisst jetzt 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 V0.19 << (ca. 4MB)

Patch 0.183

Freitag, 16. Oktober 2009 von Farbfinsternis
Befehl zurück, dieser Patch löst das Problem leider auch nicht.


Noch ein Versuch das DirectX Problem zu patchen.

>> Download simple3D Patch 0.183 << (ca. 1MB)

Patch 0.182

Donnerstag, 15. Oktober 2009 von Farbfinsternis
Das DX Problem scheint gelöst zu sein, die Patch DLL könnt Ihr Euch unter folgendem Link herunter laden. Ein komplettes Archiv mit aktualisierter DLL, reparierten Shadern für ältere Shader-Versionen und mehr Funktionen gibt es morgen.

>>Download Patch 0.182<< (ca. 1MB)

Patch 0.181

Donnerstag, 15. Oktober 2009 von Farbfinsternis
Alle bei denen auch der OGL Modus nicht funktioniert sollten sich folgende Pakete ziehen:

Version 0.181 der s3d.dll : http://simple3d.sedm.de/downlo...-0.181.zip
Geänderte Bloom-Shader: http://simple3d.sedm.de/downloads/fx.zip

0.18 für BMax und B3D

Donnerstag, 15. Oktober 2009 von Farbfinsternis
Nachfolgend findet Ihr den Downloadlink zur Version 0.18 des Wrappers für Blitz3D und BlitzMax. DirectX9 dürfte bei den meisten noch immer nicht funktionieren da derzeit noch irgendwas mit der SDK Version und den Redistributables hakt ... ich denke aber das sich das lösen lässt.

>> Download simple3D V0.18 | BlitzMax + Blitz3D << (ca. 3,9MB)

Zum Vergleich noch mal das beiliegende Sample in der BlitzMax und in der Blitz3D Version

BlitzMax: [AUSKLAPPEN]

SuperStrict
Framework sedm.simple3d
Import brl.keycodes

Options(dev_ogl)
ShadowOptions()
ShaderDir("fx")

Set3DAudioDriver(DRV_DIRECTSOUND)
ClsMode(1, 1)

Local result:Int = Graphics3D(1024, 768, 32, 0)
If result = 0 Then End

AddZIP("media.zip", 1, 1)
ClsColor(90, 120, 255)
AmbientLight(100, 100, 100)
Local vendor:String = GetGfxVendor()

AddShaderPass("BlurHP")
AddShaderPass("BlurVP")
AddShaderPass("BloomP")

' Kamera
Local cam:TCamera = CreateFPSCamera(0.02, 80.0)
PositionEntity(cam, 0.0, 10.0, -10.0)


' Licht
'Local light:TLight = CreateLight(LIGHT_POINT, 0)
'PositionEntity(light, -100, 150, -10)
Local smlight:TLight = CreateSLight(-20, 20, -20, 0, -1, 0, 255, 255, 255, 10, 60, 40)

' Kisten
Local crate:TMesh = LoadMesh("wcrate/wcrate.b3d")
PositionEntity(crate, 0.0, 50.0, 0.0)
HideEntity(crate)

' Boden
Local boden:TMesh = LoadMesh("plane/plane.b3d")
EntityLighting(boden, False)
EntityShadow(boden, SHADOW_RECEIVE)
EntityPhysics(boden, PHYS_BOX, 0.0)


SetGravity(-9.81 * 16.0)

' Mucke
Local sound:TKlang = Load3DSound("music.mod")
Play3DSound(sound, 1)
PositionSound(sound, 0, 1, 0)

Local time:Int = MilliSecs()
Local fps:Int = -1
Local last_fps:Int = -1
Local active:Int = True

Repeat
fps = GetFPS()
If fps <> last_fps
last_fps = fps
Local title:String = "FPS: " + String(fps)
WindowTitle(title)
EndIf

Local now:Int = MilliSecs()
If now - time > 2500
Local crate2:TMesh = CopyMesh(crate)
PositionEntity(crate2, Rand(-1.0, 1.0), 50, Rand(-1.0, 1.0))
EntityPhysics(crate2, PHYS_BOX, .5)
EntityShadow(crate2, SHADOW_BOTH)
EntityLighting(crate2, False)
time = now
EndIf

CameraListener(cam)

active = RenderWorld()

Until active <> 1 Or isKeyHit(KEY_ESCAPE) = True
End



BlitzBasic: [AUSKLAPPEN]

Include "../simple3D.bb"

Print "Bitte wähle das Device aus:"
Print " "
Print "1 = DirectX 9"
Print "2 = OpenGL"
Print "3 = Software"
Print " "
dev = Input("> ")


Select dev
Case 1
renderer = DEV_DX9
rend$ = "DirectX 9"
Case 2
renderer = DEV_OGL
rend$ = "OpenGL"
Case 3
renderer = DEV_SOFTWARE
rend$ = "Software Renderer"
Default
renderer = DEV_DX9
rend$ = "DirectX 9"
End Select

irrlicht% = s3d_Init()

s3d_Options(irrlicht, renderer, 0, 1)
s3d_ShadowOptions(irrlicht, SHADOW_MAP, 1024, SHADOW_FILTER_16)
s3d_ShaderDir(irrlicht, "fx")
s3d_SetAudioDriver(irrlicht, DRV_DIRECTSOUND)
s3d_ClsMode(irrlicht, 1, 1)

result% = s3d_Graphics3D(irrlicht, 1024, 768, 32, 0)
If result = 0 Then End

s3d_AddZip(irrlicht, "media.zip", 1, 1)
s3d_ClsColor(irrlicht, 90, 120, 255)
s3d_AmbientLight(irrlicht, 100, 100, 100)
vendor$ = s3d_GetGfxVendor(irrlicht)

;s3d_AddShaderPass(irrlicht, "BrightPass")
s3d_AddShaderPass(irrlicht, "BlurHP")
s3d_AddShaderPass(irrlicht, "BlurVP")
s3d_AddShaderPass(irrlicht, "BloomP")

; Kamera
cam% = s3d_CreateFPSCamera(irrlicht, 0, 0.01, 80.0)
s3d_PositionEntity(cam, 0.0, 10.0, -10.0)

; Licht
light% = s3d_CreateLight(irrlicht,LIGHT_POINT, 0)
s3d_PositionEntity(light, -100, 150, -10)
s3d_CreateSMLight(irrlicht, -20, 20, -20, 0, -1, 0, 255, 255, 255, 10, 60, 40)

; Kisten
crate% = s3d_LoadMesh(irrlicht, "wcrate/wcrate.b3d", 0)
s3d_PositionEntity(crate, 0.0, 50.0, 0.0)
s3d_HideEntity(crate)

; Boden
boden% = s3d_LoadMesh(irrlicht, "plane/plane.b3d", 0)
s3d_EntityLighting(boden, False)
s3d_EntityShadow(boden, SHADOW_RECEIVE)
s3d_EntityPhysics(boden, PHYS_BOX, 0.0)


s3d_SetGravity(-9.81 * 16.0)

; Mucke
sound% = s3d_LoadSound(irrlicht, "music.mod", S_AUTO_DETECT, 0)
s3d_Play3DSound(sound, 1)
s3d_PositionSound(sound, 0, 1, 0)



time% = MilliSecs()
fps% = -1
last_fps% = -1
Repeat
fps = s3d_GetFPS(irrlicht)
If fps <> last_fps
last_fps = fps
title$ = "FPS: " + fps + " | " + rend$ + " | " + vendor$
s3d_AppTitle(irrlicht, title)
EndIf

now = MilliSecs()
If now-time > 2500
crate2% = s3d_CopyMesh(crate, 0)
s3d_PositionEntity(crate2, Rand(-1.0, 1.0), 50, Rand(-1.0, 1.0))
s3d_EntityPhysics(crate2, PHYS_BOX, .5)
s3d_EntityShadow(crate2, SHADOW_BOTH)
s3d_EntityLighting(crate2, False)
time = now
EndIf

s3d_CameraListener(cam)

active = s3d_RenderWorld(irrlicht)

Until active <> 1 Or s3d_KeyHit(irrlicht, KEY_ESCAPE) = True

s3d_Drop(irrlicht)

End

Noch ein bisschen

Mittwoch, 14. Oktober 2009 von Farbfinsternis
Etwas mehr Zeit benötige ich dann doch noch ... eigentlich ist der BMax Wrapper nun auf dem Stand der B3D Version (0.18), aber es läuft noch nicht rund. Die Fehler mit DirectX welche in den Comments gemeldet wurden kann ich derzeit auch nicht reproduzieren, deshalb gibt es heute noch kein Release.

Aber die BMax Doc könnt ihr schonmal anschauen: http://simple3d.sedm.de/downloads/commands.html

Shadowmaps & Bloom

Mittwoch, 14. Oktober 2009 von Farbfinsternis
Die Probleme mit XEffects sind nun bewältigt und ich kann Euch jetzt schonmal das neue Sample anbieten welches mit ShadowMaps und Bloom glänzt.

user posted image

>> Sample 0.18 (ca. 2MB) <<

Gehe zu Seite Zurück  1, 2, 3 ... 9, 10, 11 ... 13, 14, 15  Weiter