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

lumpinus

Frischling

  • »lumpinus« ist der Autor dieses Themas

Beiträge: 27

Wohnort: Bad Münstereifel

  • Private Nachricht senden

1

12.04.2007, 16:11

Alphablending mit FP32-Rendertarget

Hi,
ich habe eine bildschirmfüllende Textur mit dem Format D3DFMT_G32R32F als Rendertarget. Also eine normale Fließkommazahl für den roten und den grünen Kanal. Blau und Alpha sind nicht vorhanden.
Nur scheinbar funktioniert jetzt kein Alphablending! Als Beispiel was ganz einfaches:

Quellcode

1
2
3
4
me3D::SetRS(D3DRS_ALPHABLENDENABLE, TRUE);
me3D::SetRS(D3DRS_SRCBLEND, D3DBLEND_ZERO);
me3D::SetRS(D3DRS_DESTBLEND, D3DBLEND_ONE);
me3D::SetRS(D3DRS_BLENDOP, D3DBLENDOP_ADD);

Im Prinzip steht da ja dass das RT nicht beschrieben werden soll. Doch wenn ich z.B. ein rotes Rechteck rendere wird in Wirklichkeit einfach die Outputfarbe (rot) des Pixelshaders gezeichnet, so als ob Alphablending deaktiviert ist!

Mit dem Backbuffer als RT gibts keine Probleme. Aber wie kann ich das mit der Textur hinkriegen?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

12.04.2007, 16:21

Alpha-Blending für Floating-Point-Render-Targets muss nicht von der Hardware unterstützt werden. Scheinbar tut das deine Karte auch nicht. Da bleibt dir nur das manuelle Blending in einem Shader, indem du zwei Render-Targets nimmst und sie im Shader kombinierst.

lumpinus

Frischling

  • »lumpinus« ist der Autor dieses Themas

Beiträge: 27

Wohnort: Bad Münstereifel

  • Private Nachricht senden

3

12.04.2007, 16:24

wie schade :(
hab übrigens eine Geforce6600

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

12.04.2007, 17:31

nVidia unterstützt alphablending nur für A16B16G16R16F surfaces.

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

5

13.04.2007, 10:59

hier noch eine Übersicht (aus dem NVIDIA GPU Programming Guide), zu den diversen Formaten und den durch nvidia untestützen sachen:

(Link)
[/img]

Werbeanzeige