Einige Fragen zu realtime Shadowmaps

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

mevsmp

Betreff: Einige Fragen zu realtime Shadowmaps

BeitragDo, März 11, 2010 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich hab angefangen mich mit realtime Shadowmaps zu befassen und einige Codes dazu zu studieren. Dabei ist mir aufgefallen, dass eigendlich alle in ihren sample codes das Bild der Shadow-Cam mit CameraFog weiß färben. Für die Objekte, die Schatten werfen sollen, wird Fog deaktiviert. Somit kann man dann wählen welches Objekt auf der Schattentextur sichtbar sein soll und welche nicht. Gerendert werden sie dennoch.
Dies bedeutet ja, dass die gesamte Szene zweimal gerendert wird, was zu erheblichen Geschwindigkeitsverlusten bei detailierten Szenen führt.
1. Ist es nicht wesentlich schneller vor der Shadow-Cam wirklich alle Objekte mit HideEntity zu verstecken und nur diese sichtbar zu machen, welche auch einen Schatten werfen sollen? Somit hätte die Shadow-Cam wesentlich weniger zu rendern als nochmal die ganze Szene.
Wurde dies eventuel in einem Beispiel schonmal umgesetzt?

2. Kennt jemand ein Beispiel bei dem die Schattentextur weichgezeichnet wird um den Pixeleffekt zu mindern?
Das Beispiel von DareDevil aus dem englischen Codearchiv arbeitet mit ReadPixelFast und ist desshalb extrem langsam bei größeren Schattentexturen...

ozzi789

BeitragDo, März 11, 2010 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Ja dies ist schneller, könntest testweise versuchen bei allen EntityAlpha auf 0 zu setzen und sehen ob das schneller ist.

2. Afaik nein, man könnte einen leichten Blureffekt über die Cam legen

mfg ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Mr.Keks

BeitragFr, März 12, 2010 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
öhm, was genau willst du denn machen? so klassisches shadowmapping geht in b3d ja eigentlich nicht wirklich, da du nicht so einfach eine ordentliche depthmap erstellen und mit shadern für die schatten verrechnen kannst. bei diesem verfahren ist es übrigens wirklich halbwegs knifflig mit dem weichzeichner. du kannst es nur faken mit nebel und writepixelfast... aber das ist kaum für echten einsatz brauchbar, da das read und writepixelfast schon in einer kleinen szene dutzende millisekunden zur berechnung braucht. dann musst du dir auch keine gedanken über die übeflüssig gerenderten entities machen.... tatsächlich mach shadowmapping aber auch nur sinn, wenn du alle schattenwerfenden und -empfangenden objekte renderst.

der einzige praktikable weg, in b3d sowas ähnliches wie shadowmapping zu erreichen, ist , dass du auf eine bestimmte fläche objektumrisse projezierst, indem du die objekte als schwarz in die textur renderst. dann ist das mit dem weichzeichner recht leicht zu machen - im englischen codearchiv sollte es auch diverse 3dbeschleunigte blur-effekte geben. so habe ich das jedenfalls dort gemacht.
MrKeks.net

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group