2017-07-15 1 views
0

Ich arbeite an einem Projekt für meine Schule und kann nicht für das Leben von mir herausfinden. Ich muss die baryzentrischen Coords eines Punktes in einem Dreieck innerhalb meines Pixel-Shaders erhalten, um zwischen den Dreiecks-Eckpunkt-Farben zu interpolieren und eine endgültige Pixel-Ausgangsfarbe zu erhalten. Gibt es eine Möglichkeit, die Vertex-Positionen des Dreiecks, das ich zeichne, aus meinem Pixel-Shader zu holen, oder brauche ich einen anderen Shader? Wie soll ich das machen?Wie bekomme ich die baryzentrischen Koordinaten eines Punktes in einem Pixel-Shader HLSL

Antwort

0

Shop baryzentrischen Eckwerte für jeden Vertex in einem Dreieck:

 v1 
     x 
    /\   v0=[1,0,0] 
    / \  v1=[0,1,0] 
/ \  v2=[0,0,1] 
    x-------x 
v0   v2 

Pass das Vertex-Attributs aus dem Vertex-Shader zu Ihrem Pixelshader lineare Interpolation unter Verwendung von (default) und Sie haben je Pixel baryzentrischen Koordinaten. Beachten Sie, dass Sie, wenn Sie indexiertes Rendering verwenden (unter Verwendung eines Indexpuffers), höchstwahrscheinlich Ihre Daten deindexen müssen.

Verwandte Themen