Per Pixel Lighting



  • TomasRiker schrieb:

    @this->that:
    Die Normale transformierst du, wie auch die Position, mit der Weltmatrix. Aber aufpassen: Translation nicht durchführen!

    Schau dir einfach die zahlreichen Beispielprogramme aus dem DX-SDK an.

    Wieso sollte ich die Position mit der Weltmatrix transformieren? Die Position wird doch in den Homogenen Clip Space transformiert und interessiert mich fürs Pixel Lighting nicht mehr.
    Und Translationen würden sowieso nicht durchgeführt werden, da die homogene Koordinate von Normalen 0 ist.

    So allgemeine Tipps a la "google" oder "schau im SDK nach" wollte ich eigentlich nicht - meine Fragen sind ja doch sehr konkret. (hab grad auch im SDK geschaut und absolut nichts zu Per Pixel Lighting mit HLSL gefunden. Wie heißt denn das Sample?)



  • this->that schrieb:

    Die Position wird doch in den Homogenen Clip Space transformiert und interessiert mich fürs Pixel Lighting nicht mehr.

    Wenn dich die Position für die Beleuchtung nicht interessiert, dann hast du wohl nur Richtungslichtquellen. Ansonsten brauchst du sie auf jeden Fall, um die Einfallsrichtung des Lichts zu bestimmen und die Entfernung.

    Ja, du kannst die Vertexposition auch in das Koordinatensystem der Lichtquelle transformieren. Eigentlich ist es egal, solange du immer im selben Koordinatensystem bleibst. Wenn du mehrere Lichtquellen in einem Durchgang verarbeiten willst, dann würde ich persönlich eher die Beleuchtung im Weltkoordinatensystem durchführen.

    Wegen Beispielprogramm, da hab ich mich wohl vertan. Die benutzen alle nur Richtungslichtquellen (per Vertex).

    Aber wenn ich bei Google suche, finde ich schon eine Menge vielversprechender Links ...



  • TomasRiker schrieb:

    this->that schrieb:

    Die Position wird doch in den Homogenen Clip Space transformiert und interessiert mich fürs Pixel Lighting nicht mehr.

    Wenn dich die Position für die Beleuchtung nicht interessiert, dann hast du wohl nur Richtungslichtquellen. Ansonsten brauchst du sie auf jeden Fall, um die Einfallsrichtung des Lichts zu bestimmen und die Entfernung.

    Ups, ich dachte du meinst mit Position die Position des Vertex. 😃

    TomasRiker schrieb:

    Ja, du kannst die Vertexposition auch in das Koordinatensystem der Lichtquelle transformieren. Eigentlich ist es egal, solange du immer im selben Koordinatensystem bleibst. Wenn du mehrere Lichtquellen in einem Durchgang verarbeiten willst, dann würde ich persönlich eher die Beleuchtung im Weltkoordinatensystem durchführen.

    Hm, ok. Ich machs jetzt so, dass ich die Normale mit der transponierten invertieren WorldView Matrix in den ViewSpace transformiere und da dann alle Berechnungen durchführe. Ich denke es is ganz angenehm, weil dann die EyePosition immer im Ursprung is.

    TomasRiker schrieb:

    Aber wenn ich bei Google suche, finde ich schon eine Menge vielversprechender Links ...

    Naja, wennste dir das mal anschaust is das meiste entweder GLSL oder irgendwelche Forenpostings von Leuten, die selber Fragen zu Per Pixel Lighting haben. Der 1. Link is der beste, aber den kannte ich schon.^^

    Naja, werd das jetzt schon irgendwie hinfrickeln:)



  • man könnte auch die lichtquelle in objektkoordinaten transformieren...



  • TomasRiker schrieb:

    Pellaeon schrieb:

    Schau dir mal lieber Tuts zum Bumpmapping an!

    Und was soll ihm das bringen? Hat schließlich nichts mit seiner Frage zu tun.

    Bumpmapping ist aber nunmal PerPixel-Lighting, das hat es damit zu tun. Und die ganzen Fragen mit dem Transformationen werden dabei auch mit abgehandelt.
    Das hier sieht mir eher nach Phong-Shading aus. Das hat er vom Bumpmapping mehr 🙂

    @this->that: hier hast mal nen Präsentation von nvidia zu PP-Lighting, den mathematischen Hintergrund:
    http://developer.nvidia.com/object/mathematicsofperpixellighting.html



  • ich denk du meinst normalmapping :p

    bumpmapping ist so einiges...



  • dot schrieb:

    ich denk du meinst normalmapping :p

    bumpmapping ist so einiges...

    Ist doch dasselbe, aus der Bumpmap wird die Normalmap erstellt usw usw ...



  • normalmapping = bumpmapping
    die umkehrung gilt nicht.



  • Bump Mapping in Direct3D ist z.B. was anderes als Normal Mapping.
    Da geht es lediglich um eine Verfeinerung des Environment Mappings.



  • jo ihr habt ihr habt recht, habs mir grad von dot im icq erklären lassen 🙂
    Ist aber auch nervig, das wird sehr oft gleichgesetzt, daher hatte ich diese falsche Annahme auch intus ...



  • das wird sehr oft gleichgesetzt

    leider...darum lasst und dagegen ankämpfen und die kunde in alle welt tragen auf dass sich die zahl mehret, derer, die wissen.

    EDIT: sry, ka warum^^


Anmelden zum Antworten