Co powinien napisać każdy programista grafiki [zamknięty]

18

Widziałem to pytanie na SO, ale tutaj chcę, aby skupiło się na GFX.

Więc Twoim zdaniem, jakie aplikacje / funkcje powinien każdy początkujący programista GFX napisać / zmienić, aby był lepszy?

Wiki społeczności, ponieważ nie ma „właściwej odpowiedzi”.

LE: Nie odnosząc się do rzeczywistych gier, ale do funkcji graficznych, na przykład zmieniając coś w silniku (np. Sposób, w jaki ładuje obiekty), tworząc kompozytor, i tak dalej.

Cristina
źródło
2
Podobne do tego pytania: gamedev.stackexchange.com/questions/854/…
Bryan Denny

Odpowiedzi:

22

Moja odpowiedź jest zawsze taka sama: jeśli jeszcze tego nie napisałeś, napisz raytracer.

Będziesz musiał poradzić sobie ze strukturami optymalizacji, precyzją liczbową i wszelkiego rodzaju innymi zagadnieniami, ale będziesz również pracować bezpośrednio z matematyką światła w sposób, który rzadko robisz, gdy zajmujesz się wszystkimi hackami i przybliżeniami, które składają się renderer czasu rzeczywistego produkcyjnego.

Zdejmij cały gmach systemów załadunkowych, modne słowa tygodnia, odroczone-to lub do przodu-to, a nareszcie pozostanie Ci światło, które podróżuje przez medium. Ostatecznie to wszystko, co jest w grafice.

Charlie
źródło
Co ciekawe, zastanawiałem się nad zasugerowaniem również raytracera, bardzo miłego ćwiczenia matematycznego. Nie zgadzam się z odroczeniem bycia modnym słowem tygodnia, jest to, podobnie jak raytracing, dość duża zmiana w podejściu do renderowania, co dla programisty graficznego wydaje się być czymś, o czym powinieneś wiedzieć.
Kaj,
Powiedziałbym, że optymalizacja nie jest tak ważna, jak radzenie sobie z dowolnymi siatkami, co jest krokiem, o którym wielu ludzi nigdy nie ma do czynienia z raytracerami.
Jonathan Fischoff,
Poparłbym tę (trzecią?) Sugestię, z zastrzeżeniem, że (jak wspomniano) musi wspierać siatki, a nie tylko zatrzymywać się na błyszczących sferach na szachownicy. Punkty bonusowe za każdą próbę globalnego oświetlenia. Nawet jeśli nie zoptymalizujesz go zbytnio do czegoś, co faktycznie będzie przydatne , powinieneś starać się zrozumieć, które bity są powolne i dlaczego.
JasonD
I jedno zastrzeżenie z tą sugestią - podczas gdy lekkie podróżowanie przez medium to wszystko, co jest do grafiki, zapewni ci bardzo mało szkolenia w tym, czego potrzebujesz w rzeczywistych (obecnych) środowiskach produkcyjnych.
Kaj,
1
+1 napisanie ray tracera było najbardziej użyteczną rzeczą, której nauczyłem się na zajęciach z grafiki mojej uczelni
Bryan Denny
7

W dzisiejszych czasach może być mało praktyczny, ale pisanie w programie do renderowania oprogramowania, przynajmniej podstawowym (może tylko niektórych obracających się teksturowanych kostkach), jest wartościowym ćwiczeniem.

Zrozumienie, jak samodzielnie przekształcać, wyświetlać, przycinać, sortować według głębokości, rasteryzować i wielokątów map tekstur, pozwoli lepiej zrozumieć działanie sprzętu 3D i interfejsów API renderowania

bluescrn
źródło
właściwie to. poza tym blitter sprite z obsługą alfa. ... lub przynajmniej coś, WSZYSTKO, gdzie manipulujesz pikselami według ich wartości bitowych.
Lassi Kinnunen
6

Nie renderując kodu, myślę, że napisanie kompilatora BSP i towarzyszącego mu kodu przejścia jest przyjemnym ćwiczeniem z matematyki wektorowej.
Po drugie, odroczony mechanizm renderujący. Nie dlatego, że jest to ostateczna odpowiedź na renderowanie, ale da ci wgląd w inne podejście do renderowania.

Kaj
źródło
2

Naucz się mechaniki i umiejętności pisania dobrych shaderów. Chociaż nie jest to w 100% konieczne we wszystkich przypadkach, warto ją poznać.

RCIX
źródło
Zgadzam się z twoją odpowiedzią, jednak jest ona zbyt szeroka i niektóre zasoby i linki do nich nie zaszkodziłyby na pełną odpowiedź :).
lukas.pukenis