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

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

11

20.08.2004, 20:09

Um es fest zu halten der Pixelshader wird zwar per pixel aufgerufen, aber dabei geht es nciht um die bildschirmpixel, sondern um die die auf dem dreieck sind.

12

20.08.2004, 20:26

schon klar aber is ja prinizipiell egal, schließlich landen die ja auf dem bildschirm.
darum wärs ja durchaus sinnvoll.


gehts denn nu ? :)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

13

20.08.2004, 20:34

-.-
Register Name Description New
v0, v1 Color Register Contains interpolated vertex data. No
c0 to c31 Constant Float Register Contains constants used by the shader. Yes
t0 to t7 Input Texture Coordinate Register Contains interpolated texture coordinates. No
s0 to s15 Sampler Register Identifies a texture sampling stage. Yes
r0 to r11 Temporary Register Holds intermediate results. No

Da steht nichts von bildschirmpixel also NEIN.

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

14

20.08.2004, 21:04

- Mist. -

Aber das kann doch nicht sein, oder? Man *muss* doch mit nem Pixelshader auch alpha-benden können... Ich mein, wenn ich alle Texture-Stages verknüpfen kann, wie bei normalem MultiTexturing, warum kann ich das ganze dann nicht auch mit dem vorhandenen Pixel verknüpfen?
Mozilla Firefox
The Browser - reloaded

15

20.08.2004, 21:18

Weil das Alpha Blending nicht dann verarbeitet wird, wenn der Pixel verarbeitet wird. Sondern danach. Wenn der Pixel auf den BackBuffer geschrieben wird. Dann wird er nämlich mit dem bereits vorhandenen Pixel vermischt. Sonst bekomm ich kein Alpha-Blending zustande ;)

Der PixelShader hat keinen Zugriff auf den BackBuffer! Er verarbeitet die Pixel die von dem Dreieck auf dem BackBuffer hinterlassen werden. Du kannst jedoch beeinflussen wie Transparent dieses eine Pixel ist. Das geht schon.

Nur mal zum festhalten. Mit End-Resultat mein ich das was beim beenden der Scene (IDirect3DDevice::EndScene()) gerendert wurde! Nur damit wir uns nicht missverstehen ;)

Noch ein Tipp am rande: In der Doku ist genau beschrieben welche States (Render States, Sampler States und Textur Stage States) vom Vertex und Pixel Shader übernommen werden und welche nicht.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige