Wybierz po jednym z każdego z nich i rozwijaj swoją drogę.
1. Podstawy CG
† to nie są książki OpenGL, używają OpenGL do nauczania podstawowych koncepcji CG
Spośród nich moimi osobistymi ulubieńcami są dwa ostatnie. Bardziej praktyczne, a zatem wciągające dla początkujących; wyjaśnienia nie są zbyt tajemnicze, w przeciwieństwie do innych, bardziej akademickich książek na liście.
Uzasadnienie Renderowanie w czasie rzeczywistym zostało pominięte, ponieważ nie jest to brudna książka; jest to szeroko zakrojone badanie technik stosowanych w branży niż na podstawach CG; teoria ciężka niż treningowa: coś, co początkujący musi dobrze zrozumieć podstawy. Nawet omawiana teoria jest w wielu punktach na wysokim poziomie.
2. Podstawy matematyki
Aby biegle posługiwać się grafiką komputerową, a nawet zrozumieć podstawy, należy uchwycić przyzwoitą liczbę pojęć matematycznych; wymaga komfortu korzystania z trygonometrii i algebry liniowej. Do tego polecam
- Grafika wektorowa dla grafiki komputerowej 3D to zdecydowanie najlepszy samouczek dla początkujących dotyczący wektorów i matryc. Jest również interaktywny, ponieważ na końcu każdej sekcji znajduje się pytanie testowe, aby zweryfikować i zapieczętować zrozumienie tego tematu.
Książki
Spośród tych książek o matematyce najbardziej intuicyjna jest pierwsza z mnóstwem zabawnych anegdot, a ostatnia dotyczy twardych fanatyków matematyki (jeśli boisz się wymiotów symboli, unikaj jej), chociaż jest to dobra książka dla doświadczeni programiści CG, którzy potrzebują referencji. Jedna z nich jest naprawdę dobra, ponieważ wyszczególnia coś, co pomijają pozostałe dwie (lub wiele książek w tej sprawie), a także spektrum intuicyjności i ścisłej matematyki.
3. Samouczki
Samo czytanie nie zapieczętowuje pojęć, dlatego zdecydowanie zaleca się ćwiczenie. W tym celu te samouczki były bardzo dobre; większość z nich podaje również przyzwoite wyjaśnienie teorii.
Nie przywiązuj się zbytnio do konkretnej biblioteki lub narzędzia (np. OpenGL, Direct3D, Metal, Vulkan, WebGL, SDL, Quartz itp.) Kiedy zrozumiesz podstawowe pojęcia (matematyka za nimi), zaimplementuj je w dowolnym języku, frameworku czy biblioteka nie byłaby wielkim problemem. Po prostu zmieniłaby się składnia / kompilator, ale same techniki pozostają takie same.