Czy muszę się martwić renderowaniem opartym na quadach w rzeczywistych sytuacjach?

9

Przez większość czasu w pierwszych rozdziałach przypadkowej książki o technikach rasteryzacji i renderowania znajduję kilka zwrotów o systemie renderowania opartym na trójkącie i quadzie.

Nigdy nie spotkałem GPU ani potoku. Czy muszę się tym martwić, mając do czynienia z OpenGL 3.0+, czy to tylko starsze rzeczy?

użytkownik827992
źródło

Odpowiedzi:

9

Nie, ty nie. We wszystkich towarowych procesorach graficznych obecnej generacji stosuje się (i od pewnego czasu stosuje) wyłącznie metody rasteryzacji oparte na trójkącie. Mimo że starsza wersja OpenGL obsługujeGL_QUADS tryb renderowania, zostały one przekonwertowane na trójkąty przez towarowe układy GPU. Prawdopodobnie GL_QUADSspowodowało to faktyczną rasteryzację opartą na czworoboku na ezoterycznym sprzęcie akademickim lub sprzęcie używanym do wysokiej klasy renderowania 3D offline na początku lat 80. lub 90. (nie mam dowodów na poparcie tego twierdzenia, po prostu postuluję).

To powiedziawszy, patrząc na czworobok (i ogólnie, rasteryzację wielokąta inną niż rasteryzacja trójkąta) może nadal być edukacyjna, a zatem przydatna, po prostu zapewniając inną perspektywę rzeczy. Algorytmy zaangażowane w tak wydajne działanie są interesujące i czasami mają zastosowania poza programowaniem graficznym. Kiedyś użyłem techniki rasteryzacji wielokąta z chodzącą krawędzią, na przykład w celu zaimplementowania uproszczonej symulacji fałszywej wody 2D.

Może także pomóc ci zrozumieć, dlaczego preferowana jest rasteryzacja trójkątów, częściowo ze względu na potencjalnie niepłaski charakter wielokątów innych niż trójkąty oraz z powodu niektórych wynikowych optymalizacji, które możesz wykonać za pomocą trójkątów.


źródło
7

Jeśli używasz renderującego interfejsu API, musisz się tylko martwić, o co ten interfejs API mówi. OpenGL nie mówi nic o systemach renderujących opartych na quadach lub trójkątach. Więc nie musisz się tym przejmować.

W każdym razie wszystkie procesory graficzne klasy konsumenckiej używają trójkątów, a nie quadów.

Nicol Bolas
źródło
jestem zdezorientowany, więc po co mówić o tym w książce OpenGL, jeśli OpenGL API opiera się na założeniu, że model jest utworzony z trójkątów?
user827992,
4
@ user827992: Nie pytaj mnie; wiele książek zawiera zbędne informacje. Nigdy nawet nie powiedziałeś, w jakiej „przypadkowej książce” ją znalazłeś. Czy była to właściwie książka o OpenGL, czy też książka o grafice, która używa OpenGL?
Nicol Bolas,