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

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

1

28.07.2009, 23:18

DirectX10 Depth buffer to texture

nabend,
ich habe da nen problem mit dem rendern des tiefenbuffers. ich erstelle render target tiefenbuffer und setze beides anschließend. beide ergebnisse werden in einem späteren shader benutzt (post-processing), aber leider ist der tiefenbuffer nur "rot".

ich habe das ganze mit dem prog von nvidia gecheckt (perfHUD). wenn ich die szene zur texture rendere ist der tiefenbuffer korrekt ausgefüllt (schwarz&weiß mit abnehmbarer tendenz). aber sobald ich den als texture an den shader übergebe, ist er nur noch rot -.-.

kennt einer dieses problem, evtl auch aus dx9 oder so? ich wäre für jede hilfe dankbar, da mich das problem schon sehr lange beschäftigt :?

gute nacht allen ;)

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

2

29.07.2009, 14:22

ich kenne mich mit dx10 nicht aus, aber ich vermute einfach mal dass
die tiefe in ein rgba farbwert umgemappt wird. je nach format besteht
der tiefenwert aber auf 16, 24 oder 32 bits.

welches format hat der depthbuffer?
und wie sieht der shader dazu aus?
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

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

3

30.07.2009, 10:25

also die texture des buffer hat dies format: DXGI_FORMAT_R32_TYPELESS
das depthstenciltargetview hat: DXGI_FORMAT_D32_FLOAT
und die shader resource: DXGI_FORMAT_R32_FLOAT

zum shader (auschnitte):

C-/C++-Quelltext

1
2
Texture2D   texture_DepthTexture;
texture_DepthTexture.Sample(surfaceSampler_Anisotropic, IN.tex0)

das führt dannzu einem rotstich ;)

hier mal zwei bilder dazu. in dem ersten ist der tiefenbuffer korrent augefüllt:
http://www.pic-upload.de/view-2692397/Untitled.jpg.html

in dem zweiten sieht man den tiefernbuffer inform von ner shader resource(nur noch rot):
http://www.pic-upload.de/view-2692406/Untitled2.jpg.html

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

4

30.07.2009, 10:51

Hast du schon versucht FLOAT statt TYPELESS zu versuchen?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

5

30.07.2009, 11:29

ja, aber wenn man den tiefenbuffer ím shader nutzen möchte, muss man typeless definieren, ansonsten geht das erstellen nicht und dx-debug sagt dann, dass man typeless zuverwenden hätten.

Werbeanzeige