Zasoby silnika graficznego / programowania / itp.? [Zamknięte]

10

Zamieszczając tutaj to pytanie, a nie SO, ponieważ ma ono związek z tworzeniem gier.

Mój dylemat jest następujący: obecnie są moje letnie wakacje po pierwszym semestrze CompSci i nauczyłem się wystarczająco dużo C ++, aby zacząć właściwie trochę bardziej zaawansowane rzeczy.

Nie chcę jeszcze zaczynać programowania gier, dopóki nie nauczę się algebry liniowej, trygonometrii itp. Chcę jednak poznać podstawy, teorię i metody stosowane w programowaniu gier!

Myślałem, że mam kilka przyzwoitych książek w bibliotece uniwersyteckiej, ale były one strasznie przestarzałe z książkami o programowaniu gier lub silnikach gier lub grze / grafice (tutaj temat) od wczesnych lat 90. do 2002.

Znając niestabilny stan technologii komputerowej, pomyślałem, że zdobycie wiedzy na temat najnowocześniejszych technologii z dziesięcioletniej książki nie jest dobrym pomysłem. Amazonka sama nie wie, jakiej książki chcę.

Czego nie chcę: książka zależna od platformy. Nie zamierzam uczyć się OpenGL, Direct3D ani żadnego konkretnego interfejsu API. Chcę tylko wiedzieć, jak teselacja, jak GPU obsługuje rzeczy, co się dzieje pod maską i jakie są metody raytracingu i radiosity. Podstawy, podstawowe pojęcia - tego rodzaju rzeczy.

Mam nadzieję, że to jasne! Książki, zasoby są mile widziane. Chociaż zdecydowanie wolę książkę niż stronę internetową!

SoulBeaver
źródło
Czekaj ... Uczą nas algebry liniowej w elementarnej i
trygonalnej

Odpowiedzi:

16

Nie są one wcale „wyczerpujące” w przypadku gier, ale są to dobre książki w szczególności dla grafiki komputerowej, więc oto początek.

Podstawy grafiki komputerowej

Peter Shirley, Steve Marschner

Amazon Link (wydanie trzecie) | Witryna z książkami (wydanie drugie)

Podstawy grafiki komputerowej
(źródło: images-amazon.com )

Ta książka zawiera mnóstwo informacji na temat wielu obszarów grafiki komputerowej. Omówiono pojęcia „online” (jak w czasie rzeczywistym), a także „offline” (jak globalne oświetlenie), a także matematykę, cieniowanie, potok grafiki, tekstury, struktury danych, teorię światła i kolorów, pojęcia siatki itp. Zdecydowanie nie jest specjalnie ukierunkowany na gry, ale ogólnie na koncepcje grafiki komputerowej. Książka nie jest napisana w żadnym konkretnym języku programowania, ale raczej w języku matematyki.

Renderowanie w czasie rzeczywistym

Tomas Akenine-Moller, Eric Haines, Naty Hoffman

Amazon Link (wydanie trzecie) | Książka internetowa (wydanie trzecie)

Renderowanie w czasie rzeczywistym
(źródło: images-amazon.com )

Ta książka jest ukierunkowana przede wszystkim na metody graficzne „online” (w czasie rzeczywistym). Obejmuje ona grafikę i powiązane matematyki, cieniowanie i teksturowanie, oświetlenie, efekty przestrzeni ekranu, NPR, siatki i krzywe oraz niektóre techniki przyspieszania. Sam rozdział o metodach testowania skrzyżowań jest wart kosztów samej książki, ponieważ jest to fantastyczne odniesienie do testowania kolizji między niemal każdym rodzajem objętości granicznej, której kiedykolwiek chciałbyś użyć. Omawia shadery, gdzie pasują do potoku i do czego mogą być użyte (co jest niezbędną wiedzą we współczesnej pracy graficznej), ale z pewnością nie można nauczyć się programowania shaderów w dowolnym języku z tej książki. Jest to ogólny przegląd technik w czasie rzeczywistym, a nie książka programowa. Ponownie językiem używanym w tej książce jest matematyka.

Architektura silnika gry

Jason Gregory

Amazon Link (pierwsza edycja) | Książka internetowa (pierwsze wydanie)

Architektura silnika gry
(źródło: gameenginebook.com )

Dodam tę książkę do twojej listy, jeśli interesuje Cię grafika, szczególnie w odniesieniu do gier. Gregory omawia duże systemy silników gier z perspektywy 10 000 stóp, od czasu do czasu dając próbki kodu w C ++, aby zilustrować swoje punkty, ale przede wszystkim jest to przegląd głównych podsystemów silników, jak działają, jak pasują do siebie i jakie rzeczy powinien pomyśleć o ich projektowaniu / budowie. Omówiono matematykę 3D i odświeżanie C ++ (ze szczególnym naciskiem na programowanie gier), a także menedżerów zasobów, pętle symulacyjne, urządzenia wejściowe, techniki debugowania, silniki renderowania i animacji, kolizje i dynamikę ciała oraz systemy rozgrywki. Jedynymi dwoma głównymi podsystemami silnika, których brakuje w tej książce, są audio i praca w sieci, co jest szczere o pominięciu, ponieważ książka już przewija ponad 800 stron.

Bob Somers
źródło
2
+1 za „Realtime Rendering” - bardzo godna polecenia książka graficzna. Dodatkowo „Architektura silnika gry” powinna dać ci pożądany przegląd (w przeciwieństwie do szczegółów technicznych)
Dave O.
3

Jeśli interesuje Cię objazdowa prezentacja wszystkiego, renderowanie w czasie rzeczywistym jest najlepszym wyborem.

Jeśli chodzi o matematykę, istnieje kilka dobrych książek wprowadzających, od bardziej delikatnego podkładu matematycznego 3D do grafiki i opracowywania gier po szerzej matematyki do programowania gier 3D i grafiki komputerowej .

Polecam również Game Engine Architecture, jeśli interesuje Cię ta trasa; nie jest to dogłębna książka na ten temat (ani nie mogłaby być), ale stanowi solidny fundament w szerokim zakresie tematów. Dla początkującego uważam to za bezcenne.

Jason Kozak
źródło
Pamiętaj, że „podróż w obie strony ... wszystkiego” ogranicza się do wszystkiego, co dotyczy grafiki. Brak logiki gry, fizyki itp.
Dave O.
1
@Dave - Prawdopodobnie dlatego powiedział „ renderowanie wszystkiego ”. :)
Neverender