Plany nauki (Three.js) i refleksje na temat (nie)wiedzy

Co do Three.js - wiele rzeczy nie ogarniam xD

Np. materiałów do końca nie umiem robić. Bo jest zbyt wiele rodzajów i parametrów, ostatnio próbowałem się w to zagłębić (będę o tym jeszcze wspominał w kolejnych notkach). I kiepsko mi idzie budowanie własnych shaderów, no ale na szczęście być może nie będzie to aż tak bardzo potrzebne, bo teraz są node materials, że łączysz wiele materiałów w taki graf (podobnie jak w Blenderze).

Wśród materiałów szczególnie lustro czy szyby - to fajnie wygląda, a nie za bardzo mi się to udawało, jak próbowałem robić. Ogólnie też miałem problem z eksportem z Blendera do Three.js i załadowaniem poprawnie siatki (tj. materiały się rozjeżdżały i np. szyby nie były przezroczyste. Albo tekstury wyglądały dziwnie, tak jakby miały inne mapowanie UV).

Pewnych rzeczy z matmy nie ogarniam, np. kwaternionów (Quaternion). Widziałem w źródłach, że ludzie ich używają do obrotów, a ja póki co jadę na obiektach Euler , które ponoć są mniej elastyczne.

Buffer geometries - niby teraz się powinno używać buffer geometries, bo bardziej wydajnie, a ja dalej normalnych używam. Nie wiem, czym to się różni od środka.

Rzeczy związane z jakością wyświetlania - np. cienie, jak próbowałem, to wychodziły słabo. Albo np. jest coś takiego jak LOD (że jak obiekty są daleko, to wyświetlają się w gorszej jakości, żeby było wydajniej). Ale nigdy z tego nie korzystałem. Albo PBR (physics based rendering), to pozwala na bardziej realistyczny wygląd? Czy jakoś tak.

Ej! jednak korzystałem z PBR, bo MeshStandardMaterial to wspiera, nawet nie wiedziałem. Chociaż też nie ma wszystkich parametrów (np. transmission, które jest odpowiedzialne za przezroczystość. Ale uwaga, jest jeszcze MeshPhysicalMaterial, i to jest jeszcze bardziej PBR, ma więcej parametrów

No i jeszcze też integracji z innymi bibliotekami nie próbowałem. Np. jak zintegrować Three.js z React? Czy lepiej jechać na czystym Three.js czy react-three-fiber (czyli Three.js, ale piszesz JSX)? Albo np. jak połączyć Three.js z silnikiem fizyki? Albo mapy? Cóż, mapy akurat trochę próbowałem tj. dane z GeoJSON próbowałem wczytać, ale to było liźnięcie tematu i też do końca mi się nie udało to (bo nie umiałem przeliczyć współrzędnych).

W każdym razie, może nie wszystko, ale część z tego planuję się nauczyć dopiero :)

Dlatego to jest ciekawe, bo można się ciągle czegoś uczyć. Z drugiej strony to jest niemodne podejście, bo modnie jest udawać, że się wszystko wie, jest się najlepszym, och, super pro. Tylko, że pewne rzeczy wymagają czasu. Czasami jest to chwila, np. czegoś nie wiesz, zajrzysz do dokumentacji, popróbujesz i po 15 minutach już daną rzecz umiesz. Pewnych rzeczy jednak można się uczyć godziny, dni, tygodnie, miesiące, czy nawet lata. Wszystko zależy. Ale nigdy nie wiesz wszystkiego.

Nawet autorzy bibliotek, którzy napisali 100% kodu źródłowego, nie wiedzą wszystkiego o swoich bibliotekach (gdyby wiedzieli, to nie byłoby tylu issues w każdym popularnym projekcie, choćby najmniejszym - zawsze ktoś wynajduje coś, czego nawet autor nie przewidział. Autorzy są juniorami jeśli chodzi o własne projekty ;) Szczególnie własne. Bo jak używasz gotowej biblioteki, to masz zwykle dokumentację, a jak ktoś robi własny projekt, to jak coś nie działa, to sam musi do tego dochodzić, więc ma trudniej (chociaż łatwiej też, zależy jak się spojrzy).

Komentarze

Popularne posty z tego bloga

Ściemy z ogłoszeń o pracę

Jak nie sprawdzać wiedzy technicznej: platformy online

Jak zrobić prostą grę w JavaScript?