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

Tim

Frischling

  • »Tim« ist der Autor dieses Themas
  • Private Nachricht senden

1

05.04.2012, 14:26

Leeren des Bild-Puffers verursacht Farbänderung der Textur

Ausgehend von Beispiel 03-01 habe ich die Wasseroberfläche zu einem statischen Terrain abgeändert. Dieses Terrain ist ebenfalls mit einer Textur belegt.

Nun wollte ich die Sky-Box rausnehmen und bin auf ein Problem mit dem Bild-Puffer gestoßen. Wie im Buch auf Seite 235 beschrieben steht, muss ich ja dann zu Beginn der Szene den Bildpuffer über den Aufruf der Clear-Methode

D3D->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, tbColor(0.0f, 0.0f, 0.0f), 1.0f, 0);

leeren, um unschöne "Nachzieheffekte" zu verhindern, sodass sich bei Bewegung der Kamera die Farbwerte der Ränder nicht potentiell endlos über das Schwarz des Hintergrundes legen.

Wenn ich die Clear-Methode so wie oben ins Programm integriere, verändert das mit der Textur belegte Terrain allerdings die Farbe in ein merkwürdiges Grau. Die ursprüngliche Textur ist noch grade so zu erahnen, sieht allerdings alles andere als gut aus.

Wenn ich der Clear-Methode als Grundfarbe tbColor(1.0f, 1.0f, 1.0f) zuweise, wird alles richtig dargestellt. Wenn die Grundfarbe Rot ist, hat alles einen leichten Rotstich.

D.h. die übergebene Grundfarbe des Bildpuffers überlagert sich seltsamerweise mit der Farbe meiner Textur.

Woran könnte das liegen?

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Tim« (05.04.2012, 16:48)


Sp3iky

Treue Seele

Beiträge: 232

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

2

05.04.2012, 17:21

Klingt danach als hättest du Transparenz. Weiß jetzt leider nicht, ob das Beispiel mit Shadern ist, aber kann es sein, dass du beim Berechnen der Pixelfarbe im Shader die vierte Komponente des Vektors nicht auf 1.0 setzt?

Tim

Frischling

  • »Tim« ist der Autor dieses Themas
  • Private Nachricht senden

3

05.04.2012, 19:27

Vielen Dank! Das Terrain ist in der Tat noch transparent, weil die vorangegangene Wasseroberfläche dies auch war...
Stichwort D3DX-Effekte. Ich denke ich muss die Effektdatei überarbeiten.

Werbeanzeige