Nauka Three.js

Ostatnio (od stycznia) mocno wszedłem w temat Three.js. Masę rzeczy się nauczyłem. No i zrobiłem taki edytor.
chociaż on jeszcze nie skończony jest. Tylko, że w międzyczasie inne pomysły mnie naszły, więc z jednego projektu w Three.js zrobiłem kilka projektów. Wydzieliłem "silnik" oraz rzeczy specyficzne dla projektu i jakby robię kilka apek na jednym silniku (nawet w jednym repo wszystko jest, tak wygodniej). Poza tym:
  • nauczyłem się operować na wierzchołkach, tworzyć własną geometrię. W ten sposób tworzę teren: https://github.com/hex13/tileterrain/. Jest on inspirowany terenem, jaki miały gry izometryczne z lat 90
  • stworzyłem własny shader. I dzięki temu mam inny kolor terenu na różnych wysokościach (na górze śnieg, niżej skały, niżej trawa, a najniżej piasek). A przedtem to shaderów się bałem.
  • poznałem wiele dziwactw Three.js. Niestety jest to biblioteka, która ma wiele rzeczy nieintuicyjnych i trzeba naprawdę uważnie czytać dokumentację + uczyć się na własnych błędach + czytać zasoby o Three.js (fora, discord itp.), bo może się okazać, że sposób, w który robisz coś, jest przestarzały albo nieoptymalny
  • o ile dalej zaledwie liznąłem Three.js, to czuję się w nim na tyle pewnie, że jestem w stanie większe projekty w nim robić
  • nauczyłem się nie tylko importować, ale również eksportować GLTF i przypisywać metadane do niego. Poznałem jego wewnętrzną strukturę.
  • poznałem trochę system animacji w Three.js i niestety to jakieś dziwne jest
  • piszę autorski framework oparty o Three.js, gdzie mam np. inicjalizację, obsługę RWD(żeby zmienić rozmiar renderera przy zmianie wielkości okna), obsługę zdarzeń (zarówno myszy, jak i dotykowych), system "trybów"(np. tryb budowania, tryb kasowania itp.), GUI i parę innych rzeczy. Więc teraz jak chcę coś zrobić w Three.js to mam ułatwioną robotę (no a kiedyś, żeby zrobić jakąkolwiek nową apkę w Three.js musiałem się namęczyć, bo niestety Three.js wymaga dużo boilerplate'u).
  • No ale co dalej?

    Chcę się dalej rozwijać w kierunku Three.js i WebGL. Tworzyć w nim różne aplikacje czy komponenty przeznaczone do osadzania w innych aplikacjach. Mam już parę pomysłów, ale raczej tak powoli z nimi idę. Nie chcę za szybko iść, wolę powoli, przemyśleć, też na bieżąco rozbudowywać framework tak, żeby dało się pewne rzeczy zrobić itp.

    Komentarze

    Popularne posty z tego bloga

    Ściemy z ogłoszeń o pracę

    Zostać programistą (2) - czy się nadajesz?

    Czego się nauczyłem w 2021?