Ogólnie świat składa się z wielu trójkątów, a mapa to lista tych trójkątów i lokalizacja w świecie każdego wierzchołka. Proces ich rysowania to:
- Skonfiguruj pozycję „kamery” - gdybyś stał na świecie, tutaj byłbyś na światowej pozycji
- Przekształć wierzchołki trójkąta w „przestrzeń kamery”
- Przekształć trójkąty z „przestrzeni kamery” w „przestrzeń ekranu” - tutaj dzieje się efekt perpekcyjny (odległe rzeczy są mniejsze). W tym momencie trójkąty stają się 2D.
- Narysuj trójkąt 2D na ukrytym ekranie.
- Po narysowaniu wszystkich trójkątów pokaż graczowi ekran.
Ostatni krok jest zwykle związany z liczbą klatek na sekundę monitora, tak że proces pokazywania ukrytego ekranu odbywa się w odstępie V-blank - koncepcja wywodząca się z monitorów lamp elektronopromieniowych, które pozwalały na przesuwanie wiązki katodowej od dołu z prawej do góry po lewej, wymagało to szybkiej, ale nie natychmiastowej zmiany napięć na cewkach odchylających z tyłu lampy.
To jest naprawdę prosta metoda. Aby uzyskać wysoką wydajność, musisz dodać takie rzeczy, jak usuwanie ukrytej powierzchni, niedrożność, widoczne ustawienie zestawu i tak dalej. Istnieje wiele algorytmów zaangażowanych w podejmowanie decyzji, co narysować.
Powiedziałem też, że świat składa się z trójkątów, ale może nie być przechowywany na dysku w ten sposób. Często trójkąty rysowane na ekranie są definiowane w czasie wykonywania z prymitywów wyższego rzędu, takich jak mapy wysokości, splajny, tessalacja, prymitywy geometryczne (np. Kula, ramka itp.) I tak dalej.
Dedykowany sprzęt nie jest konieczny - wiele wczesnych gier 3D robiło to wszystko w oprogramowaniu (nawet na 8-bitowych procesorach bez FPU). To po prostu sprawia, że jest to szybsze i łatwiejsze do zrobienia.
Takie proste pytanie. Nie ma łatwej odpowiedzi.