GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2010-Jan-20

Title: Belichtungsproblem
Post by: WPShadow on 2010-Jan-20
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]
Title: Re: Belichtungsproblem
Post by: Kitty Hello on 2010-Jan-20
kein X_Clear_Z machen.
Title: Re: Belichtungsproblem
Post by: WPShadow on 2010-Jan-20
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?
Title: Re: Belichtungsproblem
Post by: Kitty Hello on 2010-Jan-20
Im Prinzip so:
Code (glbasic) Select

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


Title: Re: Belichtungsproblem
Post by: WPShadow on 2010-Jan-20
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...
Title: Re: Belichtungsproblem
Post by: Kitty Hello on 2010-Jan-20
Kannst Du ein kleines Beispiel machen?
Title: Re: Belichtungsproblem
Post by: WPShadow on 2010-Jan-21
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]
Title: Re: Belichtungsproblem
Post by: Kitty Hello on 2010-Jan-22
Kannst Du mir alles mailen?
Title: Re: Belichtungsproblem
Post by: WPShadow on 2010-Jan-22
Schon geschehen!