Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

1

06.06.2009, 13:34

depth texture umrechnen

Hallo

ich versuche grade das ShadowMapping verfahren zu implementieren, da
es unabhängig von der geometrie arbeitet. dabei muss man ja das bild
aus sicht der lichtquelle rendern. und genau da möchte ich optimieren.

wenn ich den depth-buffer aus sicht der kamera habe, kann man daraus
nicht (auf der cpu) wieder die "landschaft" erstellen? man hat
ja sowohl x, y als auch z. natürlich wäre es aufwändig, aber nicht unmöglich.
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

2

06.06.2009, 20:55

Ich denke ich verstehe nicht ganz was du meinst.

Die Tiefenwerte aus Sicht der Lichtquelle sind komplett andere als die aus Sicht der Kamera - das ist ja auch die Idee hinter dem Verfahren.
Außerdem kannst du afaik eh erst in DX10.1 den Depthbuffer als Textur auslesen.
Und daraus kannst du ja auch nur den Teil rekonstruieren, den der Betrachter sieht -- und das ist in der Tat sehr aufwendig und macht kaum Sinn.

Das rendern der bloßen Tiefenwerte ist in der Regel außerdem nicht das performancelastigste am Shadowmapping: Das Sampling im normalen Colorpass ist vor allem mit Filterung wesentlich zeitaufwendiger, da die Shadowmaps nun mal möglichst hoch aufgelöst sein müssen.

3

07.06.2009, 15:35

Zitat von »"Wümpftlbrümpftl"«

Außerdem kannst du afaik eh erst in DX10.1 den Depthbuffer als Textur auslesen.

also sperren kannst den Depthstencilbuffer schon in DX9, wenn er das richtige format hat, außerdem kannst du für ihn auch eine Textur des entsprechenden Formats usw. einsetzen, du bekommst also (sofern die graka das unterstützt) den Puffer schon in ne Textur - nur fragi ch mich grade, wofür du den DS-Puffer der Kamera als textur haben willst :?

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

4

07.06.2009, 17:29

dachte nur um daraus den schatten zu erstellen.
klappt aber nicht, da so der schatten von verdeckten objekten nicht
berücksichtigt würde.
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

5

07.06.2009, 19:30

in dx10 kann den buffer lesen, in dx10.1 kannste kantengeklättete tiefenbuffer lesen, was in dx10 nicht geht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

07.06.2009, 20:36

Ich glaub du hast die Idee von Shadow Mapping noch net so ganz verstanden. Shadow Mapping basiert auf folgender recht einleuchtender Tatsache: Alles was die Lichtquelle nicht "sieht" liegt im Schatten dieser Lichtquelle. Du renderst die Szene aus Sicht der Lichtquelle und speicherst die Tiefenwerte jedes Pixels aus Sicht der Lichtquelle in eine Textur. Diese Textur projizierst du dann wenn du den Frame aus Sicht der Kamera renderst auf deine Welt und vergleichst dabei für jeden Pixel seinen Abstand zur Lichtquelle mit dem zugehörigen Wert aus der Textur. Ist er größer liegt der Pixel im Schatten...

Werbeanzeige