Belichtungsproblem

Previous topic - Next topic

WPShadow

Hi!

Wie der Titel schon besagt, habe ich ein Problem mit der Belichtung bzw. in meinem Fall mit dem Schatten!

Anfangs generiere ich die Welt incl. Spielfeld und einer Kugel, die als Hintergrund genommen wird. Wenn die Welt nun dargestellt wurde,
wird das Spielfeld dargestellt, auf dessen Oberfläche sich der Schatten der Kegel befinden soll, jedoch nicht auf dem Hintergrund. Hierzu
versuche ich den Hintergrund einfach mit X_CLEAR_Z in den "Hintergrund zu rücken" und dabei die Schattendarstellung korrekt darzustellen.

Dies erweist sich leider als nahezu unlösbares Problem. Könnt ihr mir dabei helfen?

Das hier ist der Original - Code:

Code (glbasic) Select

X_MAKE3D 1, 1000, 45

X_MIPMAPPING TRUE



draw_3D_camera(_br)

IF _br.option.background = 1
draw_3D_back(_br)
X_CLEAR_Z
ENDIF


IF _br.option.light = 1

X_SPOT_LT 0, RGB(255, 255, 255), 0, 50, 0, 0, 0, 0, 360

ENDIF





draw_3D_spielfeld(_br)

draw_3D_kegel(_br)

draw_3D_wuerfel(_br)

draw_3D_marker(_br)

IF _br.option.shadow = 1

X_CULLMODE 1
X_SPOT_LT -3, RGB(255, 255, 255), 0, 50, 0, 0, 0, 0, 360

draw_3D_kegel(_br)
X_SPOT_LT -3, RGB(255, 255, 255), 0, 50, 0, 0, 0, 0, 0
ENDIF


Inzwischen habe ich ihn mehrfach umgebaut,  X_MAKED + Camera erneut nach den Buffer gesetzt, ebenso habe ich versucht die Lichtquelle für den Schatten zu deaktivieren und einfach den Hintergrund danach zu zeichnen, dann jedoch wird der Hintergrund gar nicht angezeigt!

Kann mir jemand helfen? Ich komme nicht drauf, wie ich den Fehler beheben kann!

Gruß

W.

[attachment deleted by admin]
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

kein X_Clear_Z machen.

WPShadow

#2
Funktioniert leider so herum auch nicht!

Der Schatten wird sowohl am Spielfeld, als auch auf der Kugelinnenseite vollständig dargestellt...

Wenn ich den Backbuffer richtig verstanden habe, sollten alle im Vordergrund dargestellten Objekte,
einfach in "2D" flach am Hintergrund dargestellt werden, ohne für den Schattenwurf überhaupt in Betracht zu kommen, oder?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Im Prinzip so:
Code (glbasic) Select

SetCamera()
SetLights()
DrawEverything()
X_SPOT_LT -3, ... // enable shadow casting
DrawEverythingThatCastsShadow()
SHOWSCREEN



WPShadow

Das Problem stellt sich leider etwas komplexer dar, Gernot!

Code (glbasic) Select

SetCamera()
DrawBackground()  // <-- Dieses Objekt hier wird...
X_CLEAR_Z

SetCamera()
SetLights()
DrawEverything()
X_SPOT_LT -3, ...
DrawEverythingThatCastsShadow()
SHOWSCREEN // <-- ...hier als Schattenauflagefläche ausgegeben, obwohl es eigentlich im Hintergrund liegen sollte


Daher kommen die Probleme mit dem Schatten!

Und ich komme nicht dahinter, was ich in dem Fall falsch mache...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Kannst Du ein kleines Beispiel machen?

WPShadow

So, jetzt sind wir wieder bei diesem doofen Vorführeffekt!  :'(

Hier das Beispiel, wo exakt das funktioniert, das in meinem Programm nich geht!

Lustigerweise besteht zwischen beiden nur der Unterschied, daß es bei mir etwas komplexer ist und das X_CLEAR_Z da nicht will und hier schon!  :D

[attachment deleted by admin]
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Kannst Du mir alles mailen?

WPShadow

Schon geschehen!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est