Tag: podstawy

OpenGL vs Direct3D – podstawy grafiki 3D, część 6

Należy pamiętać, że przedstawiony uprzednio model potoku graficznego jest abstrakcyjnym opisem sposobu działania jednostek przetwarzających grafikę, opartego na tradycyjnym podejściu. Każdego roku na rynku pojawia się nowy sprzęt, który chociaż zachowuje ogólną idee, dodaje nowe funkcje, rozszerza istniejące możliwości i wprowadza kolejne rozwiązania. Zdarza się, że karty rożnych producentów, wspomagają rożne funkcje, również, kolejne modele jednej firmy są na innym poziomie zaawansowania. Nie byłoby naturalnie możliwe, żeby każdy twórca oprogramowania, dostosowywał je do poszczególnych wersji sprzętu. Istnieje zatem bufor, w postaci interfejsu programistycznego i sterowników sprzętowych.

Czytaj dalej »

Rasteryzacja, potok graficzny – podstawy grafiki 3D, część 5

Mając zbudowany trójwymiarowy świat, trzeba go jeszcze przekształcić na dwuwymiarowy obraz złożony z pikseli, do wyświetlania których przystosowane są dzisiejsze monitory. Proces ten nazywa się rasteryzacją – grafika rastrowa to właśnie taka, która przedstawiona jest za pomocą regularnej siatki punktów (pikseli), z których każdy ma przyporządkowany kolor. Istnieją rożne techniki pozwalające na optymalizacje tej operacji, jednak podstawowa idea jest podobna dla wszystkich. W przestrzeni ustawiana jest wirtualną kamerę – zdefiniowany zostaje punkt widoku (ang. view point) oraz kierunek patrzenia. Przed nimi, w prostej linii, umieszczona zostaje płaszczyzna, na której „rejestrowany” będzie obraz – macierz projekcji będąca siatka pikseli. Rzutowanie następuje wzdłuż prostej, wspólnej dla punktu widoku, renderowanej bryły oraz jednego piksela macierzy projekcji.

Czytaj dalej »

Teksturowanie-podstawy grafiki 3D, część 4

Aby jeszcze bardziej podnieść realizm generowanej sceny i wzbogacić ją wizualnie, bez konieczności drastycznego zwieszenia wymaganej ilości obliczeń, trójwymiarowe modele „powleka się” teksturami, czyli nakłada się na nie dwuwymiarową grafikę. Najczęściej wykorzystywaną metodą teksturowania obiektów jest tzw. mapowanie UV (ang. UV mapping). Polega ono na tym, że wszystkie wieloboki z których zbudowana jest bryła są „rozkładane” na płaskiej powierzchni, dzięki czemu można każdemu z nich przypisać bitmapowy obraz. Aby informacja o nadanych teksturach zachowana została po ponownym „złożeniu” modelu, każdy wierzchołek otrzymuje dodatkowe współrzędne U i V, określające z którego obszaru mapy, poligon powinien przyjąć teksturę.

Czytaj dalej »

Cieniowanie – podstawy grafiki 3D, część 3

W odróżnieniu do przedstawionych wcześniej sposobów aproksymacji zachowania światła, cieniowanie (ang. shading) nie ma bezpośredniego odpowiednika w rzeczywistości. W klasycznym podejściu cieniowaniem nazywamy obliczanie koloru poszczególnych pikseli wyjściowego obrazu. Można to robić na rożne sposoby i jak zwykle, te dające lepsza jakość obrazu, pochłaniają większą ilość zasobów. Poniżej opisano te, które stosowane są najczęściej.

Czytaj dalej »

Oświetlenie – podstawy grafiki 3D, część 2

Aby wzbogacić obraz – wprowadzono światło. Dostępnych jest kilka modeli oświetlenia i stosowanych wespół z nimi metod cieniowania. Można je podzielić na algorytmy lokalne, czyli takie w których istotne jest jedynie źródło światła bezpośrednio padające na dana powierzchnie, oraz globalne, w których uwzględnione jest więcej niż jednokrotne odbicie światła i jego wpływ na cale otoczenie (link). Ze względu na złożoność matematyczną oraz dużą liczbę iteracji, modele globalne takie jak śledzenie promieni (ang. ray-tracing) lub metoda energetyczna (ang. radiosity), nie są wykorzystywane w dynamicznie generowanych obrazach. Są natomiast z powodzeniem używane przy tworzeniu bardzo wysokiej jakości statycznych scen oraz prerenderowanych animacji. W rozwiązaniu takim, każda klatka filmu jest wcześniej generowana, a proces taki może zająć wiele czasu i wymaga bardzo wydajnego, specjalistycznego sprzętu.

Czytaj dalej »

Podstawy generowania interaktywnej grafiki 3D, część 1

Sformułowanie „grafika trójwymiarowa” lub „grafika 3D”, które pojawia się w tytule oraz wielokrotnie w treści tym serwisie, odnosi się tak na prawdę do symulacji efektu głębi na dwuwymiarowym ekranie monitora. Jak wiadomo, obraz generowany przez komputer składa się z pikseli, czyli punktów, z których każdy ma jednoznacznie określone współrzędne oraz kolor. Głównym zadaniem oprogramowania, które jest tematem tego opracowania, jest zatem wygenerowanie wirtualnego świata w trzech wymiarach, a następnie rzutowanie go na płaski obraz złożony z pikseli, w sposób analogiczny do tego, jak kamera filmowa przedstawia rzeczywisty świat na płaszczyźnie ekranu kinowego lub telewizyjnego.

Czytaj dalej »