W jaki sposób komputer renderuje obiekt na ekranie?

18

Czy wszystkie grafiki komputerowe są renderowane przy użyciu wielokątów? Mam na myśli to, że niektóre geometrie komputerowe są reprezentowane matematycznie w postaci równań (na przykład oprogramowanie CAD).

Czy komputer najpierw musi mozaikować te geometrie, zanim będzie mógł poprawnie renderować wizualizację na ekranie, czy też istnieją inne metody przeniesienia obrazu na ekran bez konieczności mozaikowania obiektu?

Edycja: Myślę, że bardziej konkretnie koncentruje się na GPU. Jaka dawka robi to GPU? jakiego rodzaju dawki wejściowej wymaga, tj. z jakim formatem modelu działa karta graficzna? czy może użyć idealnej reprezentacji matematycznej bezpośrednio lub dozować, sprzedawać sam model przed faktycznym renderowaniem na ekran lub dozować procesor graficzny na początek wymaga mozaikowanego modelu.

Co więcej, przez teselację mam na myśli sposób, w jaki komputer rozkłada matematyczną reprezentację obiektu na aproksymację powierzchniową wielokątów (prawie zawsze trójkątów). Im więcej wielokątów zostanie użytych, tym powierzchnia jest bliżej rzeczywistego obiektu.

Faken
źródło
4
Takie ciekawe pytanie!
r0ca

Odpowiedzi:

2

To jest odpowiedź na twój komentarz do odpowiedzi @ nik:

Zdecydowana większość systemów CAD korzysta z wielokątów (trójkątów) do renderowania swoich modeli.

Będą przechowywać modele na różne sposoby, na przykład w oparciu o modele CSG (Constructive Solid Geometry) lub B-rep (Boundary Representation) , ale jeśli chodzi o wyświetlanie, będą one fasetowane, a trójkąty wysłane do GPU w celu rysowania .

Każdy system będzie miał własne rozwiązanie do dzielenia modelu na trójkąty.

ChrisF
źródło
7

Nie jestem pewien, na jakim poziomie ciekawości zadajesz to pytanie,
ale ogólnie odsyłam cię do strony Grafiki Komputerowej Wikipedii .

Jest tam również link Krytyczna historia grafiki komputerowej i animacji .
Możesz przejść do interesującej Cię sekcji ze strony ich zawartości.


Aktualizacja: Zastanawiam się, czy twoje pytanie jest oparte na pojęciach związanych z tą witryną UnlimitedDetail .

Obecnie większość grafiki 3D opiera się na tak zwanym systemie wielokątów; to system, który buduje rzeczy z małych płaskich kształtów zwanych wielokątami.

...

Trzy obecne systemy stosowane w grafice 3D to ray tracing, wielokąty i chmura punktów / woksele, wszystkie mają mocne i słabe strony. Wieloboki biegają szybko, ale mają słabą geometrię, ślad promieniowy i woksele mają idealną geometrię, ale biegną bardzo wolno.

itp...

nik
źródło
+1 za wspomnienie o krytycznej historii grafiki komputerowej i animacji. dużo do przeczytania, ale bardzo ciekawe ;-)
Diskilla
Mój poziom ciekawości zwykle spada bardzo głęboko, aż do matematyki leżącej u podstaw tego pomysłu (choć nie oczekuję tak szczegółowej odpowiedzi, chcę po prostu wiedzieć ogólnie, z czego korzysta GPU). Jeśli chodzi o to, z czym związane jest moje pytanie, dotyczy ono w szczególności oprogramowania CAD i tego, jak konwertują między modelami matematycznymi a tym, co widzisz na ekranie (za pomocą renderowania GPU). Dlaczego? Jestem po prostu ciekawy.
Faken
2

Jeśli naprawdę chcesz zagłębić się w mechanikę GPU i techniki renderowania, następującą książkę można teraz znaleźć w Internecie:

GPU Gems 3, Addison-Wesley Professional (12 sierpnia 2007)

Edytorem GPU Gems 3 jest Hubert Nguyen, kierownik ds. Edukacji programistów w firmie NVIDIA. Hubert jest inżynierem grafiki, który pracował w zespole demonstracyjnym NVIDIA przed przejściem na swoje obecne stanowisko. Jego prace znajdują się na okładkach GPU Gems (Addison-Wesley, 2004) i GPU Gems 2.

GPU Gems 3 to zbiór najnowocześniejszych przykładów programowania GPU. Chodzi o uruchomienie przetwarzania równoległego do danych. Pierwsze cztery sekcje skupiają się na graficznych zastosowaniach układów GPU w obszarach geometrii, oświetlenia i cieni, renderowania i efektów obrazu. Tematy w piątej i szóstej sekcji poszerzają zakres, dostarczając konkretnych przykładów aplikacji nieraficznych, które można teraz rozwiązać za pomocą technologii GPU równoległej do danych. Aplikacje te są różnorodne, od symulacji sztywnego ciała do symulacji przepływu płynów, od dopasowywania sygnatur wirusów do szyfrowania i deszyfrowania oraz od generowania liczb losowych po obliczenia Gaussa.

Poprzednie wydania są również dostępne online i nadal są bardzo warte przeczytania:

GPU Gems: techniki programowania, porady i wskazówki dotyczące grafiki w czasie rzeczywistym, pod redakcją Randima Fernando, marzec 2004

GPU Gems 2: Techniki for Graphics and Compute Intensive Programming, pod redakcją Matt Pharr, marzec 2005

Programowanie wierzchołków, geometrii i pikseli, druga edycja, Wolfgang Engel, Jack Hoxley, Ralf Kornmann, Niko Suni i Jason Zink, grudzień 2008

Ostatni to nierówny szkic książki, ale niezwykle cenny miejscami. Rozdział o oświetleniu autorstwa Jacka Hoxleya zawiera szczegółowe objaśnienia różnych modeli oświetlenia wraz z działającym kodem modułu cieniującego.

harrymc
źródło
1

Renderowanie czegoś zawsze oznacza używanie wielokątów. Jest nawet używany przez artystów. Wielokąt oznacza figurę płaską. Aby stworzyć coś trójwymiarowego, zawsze bierzesz kilka wielokątów i łączysz je. Im więcej figur płaskich używasz, tym więcej szczegółów możesz dodać do swojej trójwymiarowej figury. Równania służą do obliczania takich rzeczy, jak na przykład blask obiektu.

Aby w pełni zrozumieć tę procedurę, powinieneś przeczytać artykuł w Wikipedii, o którym wspominał już Nik .

edytuj .: Nie jestem już pewien mojej interpretacji tego, co rozumiesz przez „tesselate a object”. Jeśli to możliwe, czy mógłbyś to szczegółowo wyjaśnić?

Diskilla
źródło
Przez teselację mam na myśli to, że stały obiekt rozpada się na szereg płaskich wielokątów (prawie zawsze trójkątów), które przybliżają powierzchnię obiektu. Im większa liczba trójkątów, tym bliższa jest reprezentacja do rzeczywistej powierzchni obiektu.
Faken
1

W historii obliczeń różne procesory graficzne wdrażały różne sposoby, biorąc pod uwagę rozdzielczość, dokładność, częstotliwość odświeżania i funkcje monitorów, a także wdrażając nowe i bardziej interesujące interfejsy API w miarę upływu czasu.

Na przykład niektóre procesory graficzne zapewniają interfejsy do prezentacji widoku 3D w całości, podczas gdy inne są mniej wydajne.

Układy ASIC (i nie tylko) stanowią sedno tego, w jaki sposób procesory graficzne wykorzystują swoją magię. Zdolność do układania w krzem takich złożoności, jak w pełni działające maszyny wirtualne w podprogramie, sprawia, że ​​cała magia się dzieje. Oprócz mozaiki istnieje mapowanie powierzchni, cieniowanie i wiele innych, które są obsługiwane w logice GPU.

Mam nadzieję że to pomoże!
-pbr

pbr
źródło