Ogre Schatten
Ogre Schatten
Ich habe eine kleine Welt gebastelt und möchte gern das die wichtigen Entitys schatten werfen.
Der #PB_Shadow_Modulative Schatten ist äußerst unschön aber sichtbar
der #PB_Shadow_Additive ist aber leider nicht sichtbar.
Könnte das an meiner Grafikkarte liegen (Ati Radeon 345m IGP)?
Sollte doch aber eigentlich ein Fehler kommen wenn meine Graka das nicht unterstützen sollte.
mfg
Cofter
Der #PB_Shadow_Modulative Schatten ist äußerst unschön aber sichtbar
der #PB_Shadow_Additive ist aber leider nicht sichtbar.
Könnte das an meiner Grafikkarte liegen (Ati Radeon 345m IGP)?
Sollte doch aber eigentlich ein Fehler kommen wenn meine Graka das nicht unterstützen sollte.
mfg
Cofter
Was ich nicht kenne das mach ich kaputt! 
----------------------------------------------------
Purebasic v4.0

----------------------------------------------------
Purebasic v4.0
hmm .. selbst bei meiner onboard-Graka (82852(82855 GM/GME in einem Notebook) geht das mit additiven Schatten.
Folgendes Beispiel (PB4) in Anlehnung an das mitgelieferte
light.pb Demo zeigt einen bunten Schattenverlauf. Das sind
mehrere farblich unterschiedliche Lichter die zueinander
leicht verschoben sind.
Folgendes Beispiel (PB4) in Anlehnung an das mitgelieferte
light.pb Demo zeigt einen bunten Schattenverlauf. Das sind
mehrere farblich unterschiedliche Lichter die zueinander
leicht verschoben sind.
Code: Alles auswählen
; PB4
;in das Example-Source-Verzeichnis speichern, da auf
;mitgelfierten PB_ressourcen zugegriffen wird
#CameraSpeed = 10
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data\", #PB_3DArchive_FileSystem)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
WorldShadows(#PB_Shadow_Additive)
LoadMesh (0, "Robot.mesh")
LoadTexture(0, "r2skin.jpg")
AmbientColor(RGB(64,64,64))
CreateEntity (0, MeshID(0), CreateMaterial(0, TextureID(0)))
AnimateEntity(0, "Walk")
EntityRenderMode(0,#PB_Entity_CastShadow)
CreateLight(0, RGB(0,0,255), 80.0, 0, 0) ; Blue light
CreateLight(1, RGB(64,0,255), 80.0, 0, 5) ; Blue light
CreateLight(2, RGB(128,0,255), 80.0, 0, 10) ; Blue light
CreateLight(3, RGB(255,0,255), 80.0, 0, 15) ; Blue light
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,100,100,50)
Repeat
Screen3DEvents()
ClearScreen(RGB(0, 0, 0))
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left):KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right):KeyX = #CameraSpeed:Else:KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up):KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down):KeyY = #CameraSpeed:Else:KeyY = 0
EndIf
EndIf
If ExamineMouse()
MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2:MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
EndIf
RotateEntity(0, 1, 0, 0)
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, 0, KeyY)
CameraLookAt(0,0,50,0)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
So viel ich weiss gehen momentan Schatten auf Terrains mit der PB <= 4 nicht.
What shadows do is render zones with or without light (lit and shadowed, respectively). The problem here is that terrains are lit through lightmaps and not dinamically lit, so there's no difference between the lit and shadowed part. This might sound abstract, but, the shadow is there, though you can't see it.
I think you need to define a material with lighting on and enable terrain normals in the scene manager (through the terrain config file).
Additive stencil won't work on the terrain unless it's dynamically lit (which it isn't by default). Additive lighting works by masking out regular dynamic lighting, so if there isn't any, it's not going to work Wink
Use modulative instead, or if you want to use additive, turn on dynamic lighting on the terrain by enabling normals in terrain.cfg and using a custom material.
Also scheint vieles nicht in unserer Hand zu liegen. Oder hat es jemand mal geschafft?? Sonst müsste Fred mal demnächst rein schauen...This is just the way GPUs behave, normals are scaled using the same world matrix as everything else, hence you should avoid scaling unless you use setNormalisedNormals.
- dllfreak2001
- Beiträge: 2925
- Registriert: 07.09.2004 23:44
- Wohnort: Bayern
Also ich Mesh als Terrain kann ich bei meinem vorhaben vergessen,
möchte ein Endlosterrain erstellen.
Könnte natürlich auch Tiles machen und dann dynamisch nachladen.
Habe mich jetzt ein wenig im Ogre-Forum umgesehen und etwas interessantes gefunden.
http://www.ogre3d.org/wiki/index.php/Pa ... ne_Manager
Weiss aber net ob das mit der PB Ogre Version funktioniert.
Dazu gibts es mitlerweile auch schon einen Mapeditor.
http://www.ogre3d.org/wiki/index.php/PGLM-MapEditor
Werde das demnächst mal testen.
Das mit dem Schatten werde ich erstmal ausklammern und mich auf andere Dinge konzentrieren.
mfg
Cofter
möchte ein Endlosterrain erstellen.
Könnte natürlich auch Tiles machen und dann dynamisch nachladen.
Habe mich jetzt ein wenig im Ogre-Forum umgesehen und etwas interessantes gefunden.
http://www.ogre3d.org/wiki/index.php/Pa ... ne_Manager
Weiss aber net ob das mit der PB Ogre Version funktioniert.
Dazu gibts es mitlerweile auch schon einen Mapeditor.
http://www.ogre3d.org/wiki/index.php/PGLM-MapEditor
Werde das demnächst mal testen.
Das mit dem Schatten werde ich erstmal ausklammern und mich auf andere Dinge konzentrieren.
mfg
Cofter
Was ich nicht kenne das mach ich kaputt! 
----------------------------------------------------
Purebasic v4.0

----------------------------------------------------
Purebasic v4.0
- dllfreak2001
- Beiträge: 2925
- Registriert: 07.09.2004 23:44
- Wohnort: Bayern
Naja weiß auch nicht genau wie das gehen soll.
Aufm Terrain sollte man die Winkel berechnen können wie das Mesh gedreht wird.
Aus bestimmten Blickwinkeln sieht das dann nicht so schön aus, da man erkennt das der Schatten sich vom Boden abhebt.
Andere Methode
Vielleicht kann man (wenn man das Terrain als Mesh gemacht hat)
den Schatten als Überlagerung einer Textur projektieren.
Verdunkeln geht dann, aber ich weiß nicht wie schnell das dann wird.
In Quake-Spielen werden statische Schatten generell so gemacht.
Ich Probier das mal aus.
Aufm Terrain sollte man die Winkel berechnen können wie das Mesh gedreht wird.
Aus bestimmten Blickwinkeln sieht das dann nicht so schön aus, da man erkennt das der Schatten sich vom Boden abhebt.
Andere Methode
Vielleicht kann man (wenn man das Terrain als Mesh gemacht hat)
den Schatten als Überlagerung einer Textur projektieren.
Verdunkeln geht dann, aber ich weiß nicht wie schnell das dann wird.
In Quake-Spielen werden statische Schatten generell so gemacht.
Ich Probier das mal aus.
I´a dllfreak2001