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

01.07.2009, 20:53

D3DFMT_A32B32G32R32F im pixelshader

Hallo ich bins nochmal (hoffendlich nerve ich nicht, aber man muss sich um
mehrere Probleme gleichzeitig kümmern)

ich habe 2 rendertargets im defaultpool und im D3DFMT_A32B32G32R32F
format. das erste dient als source für einen pixelshader der in die
zweite textur rendert.

das ganze klappt nur nicht. mein erster versuch war eine einfach kopie mit

Quellcode

1
2
3
4
float4 ps_main2(float2 texcoord : TEXCOORD) : COLOR
{
    return tex2D(samp1, texcoord);
}


schlug fehl, er hat nur ein einziges pixel kopiert.

mit StrechRect geht das klasse, nur soll es im shader passieren.
ich kann die textur im shader auch mit speziellen werten füllen, das heißt
das auslesen klappt nicht ganz. das scheint an dem texturformat
D3DFMT_A32B32G32R32F zu liegen.

was kann ich tun?
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

01.07.2009, 21:09

Wie "kopierst" du mit dem pixelshader? Renderst du ein Fullscreen Quad? Wenn ja, stimmen da denn die Texcoords!? Kanns sein dass der z-Buffer dich killt?

Zitat

[...] schlug fehl, er hat nur ein einziges pixel kopiert.


Wie is das genau zu verstehen!? Ein einziger Pixel? Links oben? wenigstens richtige Farbe?

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

3

01.07.2009, 21:33

Zitat von »"dot"«


Wie "kopierst" du mit dem pixelshader? Renderst du ein Fullscreen Quad?


korrekt. natürlich verwende ich die größe der textur statt des bildschirms, daher kann der fehler nicht kommen.

Zitat von »"dot"«


Wie is das genau zu verstehen!? Ein einziger Pixel? Links oben? wenigstens richtige Farbe?


ich nutze R2VB um die textur zum vertexbuffer umzuinterpretieren.
r g b a -> x y z color
bei dem so entstandenen objekt ist nur das erste pixel, links oben
auf der quelltextur zu sehen. die farbe sowie die position stimmen.

den zbuffer setze ich natürlich vor dem rendern zurück

eigentlich sollte tex2D ja am besten mit diesem format funktionieren?
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

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

Werbeanzeige