Po prostu trzeba znaleźć sposób, używając Pixel Shader, do wyświetlania tekstury na arbitralnie zdefiniowanym kwadraturze zdefiniowanej przez użytkownika.Moduł cieniujący pikseli do rzutowania tekstury na arbitralny czworobok:
Będzie przyjmujący współrzędne czterech boków czworokąta:
/// <defaultValue>0,0</defaultValue>
float2 TopLeft : register(c0);
/// <defaultValue>1,0</defaultValue>
float2 TopRight : register(c1);
/// <defaultValue>0,1</defaultValue>
float2 BottomLeft : register(c2);
/// <defaultValue>1,1</defaultValue>
float2 BottomRight : register(c3);
Próbowałem kilka algorytm interpolacji, ale nie udało się zrobić to dobrze.
Czy jest jakaś próbka, którą myślicie, którą mógłbym zmodyfikować, aby uzyskać pożądany rezultat?
To wszystko prawda ... ale całkowicie możliwe jest całkowite pominięcie interpolatorów opartych na trójkątach HW i zdefiniowanie własnego schematu na quadach lub wielokątach lub bardziej złożonych elementach, nawet pod warunkiem, że można podzielić ich ślady na trójkąty i uzyskać każdy piksel shadera potrzebnych informacji (w szczególności pozycji i wartości wszystkich pozostałych wierzchołków, a nie tylko lokalnego trójkąta). Oczywiście nie jest to szczególnie skuteczny sposób robienia rzeczy w porównaniu z dedykowaną obsługą interpolacji trójkąta, ale to nie znaczy, że nie ma aplikacji. – timday
Na plakacie nie określono, czy próbują skorzystać z interpolacji HW, czy z boku. Zgadzam się, że oba są możliwe. Myślę, że pierwotne pytanie wymaga wyjaśnienia i podania bardziej szczegółowych informacji. – voidstar69