Przypadki użycia są ograniczone tylko twoją wyobraźnią! noperspective
oznacza, że atrybut jest interpolowany w poprzek trójkąta, tak jakby trójkąt był całkowicie płaski na powierzchni ekranu. Za pomocą tego można wykonać renderowanie krawędziowe z antyaliasingiem : wypisywanie odległości ekranu do najbliższej krawędzi jako noperspective
zmiennej i używanie jej jako pokrycia w module cieniującym piksele.
Lub jeśli robisz nierealistyczne renderowanie i chcesz uzyskać wzór w przestrzeni ekranu, taki jak półtonowanie , możesz włączyć noperspective
na UVs używane do teksturowania.
Czy to robi różnicę w wydajności? Prawdopodobnie, ale prawdopodobnie tego nie zauważysz (z potencjalnym wyjątkiem słabszego sprzętu graficznego). Większość układów GPU składa się z szeregu etapów potoku, które są wykonywane równolegle iw pewnym sensie płacisz tylko za koszt najdroższego etapu. Jeśli rasteryzacja jest dla Ciebie najbardziej ograniczającą częścią, możesz zauważyć różnicę w podziale na pomijanie na piksel. Sądzę, że jest to najbardziej prawdopodobne przy renderowaniu mapy cienia lub wstępnego głębokości, ale mają one również najmniej atrybutów do interpolacji.