Posty

Wyświetlanie postów z grudzień, 2020

Moja nauka WebGL (2)

Przepisałem na nowo swój silnik 3D. Już dwa tygodnie temu i teraz rozwijam. I trochę zmieniam zdanie w kwestii tego, co jest najtrudniejsze. Napisałem wcześniej: (najtrudniejsze są chyba przeliczenia matematyczne. No i optymalizacja. Nie zawsze wiem, dlaczego mam spadek FPSów na przykład). Teraz myślę tak - tych obliczeń matematycznych wcale nie ma tak dużo (przynajmniej do tej pory). Optymalizacja też jest dość prosta (przynajmniej do tej pory udało mi się zrobić jakąś tam podstawową optymalizację - np. instanced rendering, trzymanie w pamięci raz utworzonych buforów i listy obiektów do renderingu (zamiast tworzyć to co klatkę) itp. Jednak silnik się powoli rozrasta i zaczynają mieć znaczenie decyzje projektowe - jak coś zrobić nie od strony technicznej, tylko od strony architektury. Tak, żeby silnik był elastyczny, ale jednak prosty, i nie przeinżynierowany. Abstrakcje są potrzebne, ale trzeba wyczuć, jakie to abstrakcje. Wydawać by się mogło, że pierwszą rzeczą, jaką należał

Moja nauka WebGL (1)

Three.js stało się w pewnym momencie tym, co mnie ogranicza + zacząłem odczuwać zmęczenie tą biblioteką. Szanuję za same możliwości, jakie ta biblioteka daje (bo jednak ułatwia sporo pisanie w 3D), to uważam, że nie jest ona zbyt przyjazna dla użytkownika, tak z perspektywy developer experience. No i też kwestia dopasowania do potrzeb. Zacząłem mieć trochę większe potrzeby jeśli chodzi o 3D i nawet pisząc w Three.js musiałem się namęczyć i sporo napisać kodu, żeby coś zrobić. Plus świadomość narzutu, tego, że jednak bundle trochę zajmuje, że jednak biblioteka robi masę rzeczy "pod spodem" itp. itd. To wszystko spowodowało, że postanowiłem więc iść dalej i uczyć się czystego WebGLa. Mam pełną wolność, co robię. Chociaż ogranicza mnie póki co brak umiejętności. Uczę się dopiero około tygodnia. No, co prawda pisząc w Three.js napisałem też kilka shaderów, więc to jakaś wprawka. Kiedyś też jakieś HelloWorld napisałem w WebGL. Ale ogólnie jest to dla mnie nowość. I intensywnie k