Basta calcolare un modo, utilizzando Pixel Shader, per proiettare una trama in un quadrilatero definito dall'utente arbitrario.Shader pixel per proiettare una trama in un quadrilatero arbitario
sarà di accettare coordinate dei quattro lati di un quadrilatero:
/// <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);
provato paio di algoritmo di interpolazione, ma non riusciva a farlo bene.
C'è qualche campione che pensate che potrei essere in grado di modificare per ottenere il risultato desiderato?
Questo è tutto vero ... ma è anche del tutto possibile eludere completamente interpolatori triangolo a base di del HW e definire il proprio schema su quad o poligoni o cose più complesse anche fornito si può spezzare la loro impronta in triangoli e ottenere ogni pixel shader le informazioni di cui ha bisogno (in particolare, la posizione e i valori di tutti gli altri vertici, non solo il triangolo locale). Naturalmente questo non è un modo particolarmente efficiente di fare le cose rispetto al supporto per interpolazione triangolo dedicato dell'HW, ma ciò non significa che non abbia applicazioni. – timday
Il poster non ha specificato se sta tentando di utilizzare l'interpolazione HW, o laterale. Sono d'accordo che entrambi sono possibili. Penso che la domanda originale debba essere chiarita e fornire maggiori dettagli. – voidstar69