TLDR: Od ponad roku rozwijam…

TLDR: Od ponad roku rozwijam swój silnik do gier na Vulkan API i dzielę się całym procesem jego powstawania na wykopie. Ostatnio udało mi się dodać RTAO, czyli pierwszy faktyczny element, który wykorzystuje sprzętowy ray-tracing. Dzisiaj opisuję jak wykonuję śledzenie promieni oraz odszumianie tego obrazu. Cześć mirki i mirabelki! Po tym przydługim TLDR mogę przejść do właściwej części mojego wpisu na mirkoblogu. Przez około 3 ostatnie miesiące siedział długimi godzinami w celu zaimplementowania RTAO (ray-traced ambient occlusion) do silnika, oraz innych elementów, jak rozbudowa edytora. Wiem jednak, że rozbudowa edytora nie porwie tłumów i dlatego w tym wpisie skupię się tylko na AO. Gdyby kogoś zainteresowała jednak interesowała rozbudowa edytora, to zapraszamdo mojego artykułu na Linkedin, gdzie opisuję dokładnie jak edytor został rozbudowany. Przejdźmy do mięsa, czyli do ambient occlusion. Cały pipeline składa się z 3 głównych elementów: śledzenie promienii, akumulacji temporalnej oraz rozmazywanie obrazu. Z tych trzech elementów ten środkowy mimo bycia dość niepozornym okazał się zdecydowanie najtrudniejszym, ale o tym za chwilę. Zacznijmy może lepiej od początku. Śledzenie promieni jest uruchamiane dla połowy rozdzielczości ekranu, aby zaoszczędzić zasoby. Bierzemy obecny GBuffer, czyli tekstury z zapisanymi wektorami normalnymi, czy głębokością, a następnie z pozycji w której znajduje się każdy piksel w świecie rzeczywistym (trochę zamieszałem, ale mam nadzieję, że wiadomo o co chodzi) jest wystrzeliwany jeden promień w losowym kierunku na półsferze. Promienie preferują jak najbardziej strzelać w kierunku zbliżonym do wektora normalnego, ale inne kierunki też są możliwe. Następnie wyniki (boolean) pakuje po 32 do integera. Dzięki temu mogę sporo zaoszczędzić transferu. Nie jest to nawiasem mówiąc mój pomysł, ale podpatrzony od AMD, który wykorzystuje ten trick do przekazywania danych. W wyniku otrzymamy zapakowane dane, które są jednym wielkim szumem. Akumulacja temporalna, bo chyba tak mogę przetłumaczyć Temporal Accumulation, jest to element, który teoretycznie jest dość prosty. Obliczamy sobie jak obiekty przesunęły się względem poprzedniej klatki. Na tej podstawie otrzymujemy teksturę, gdzie każdy piksel ma wektor ruchu (motion vector). Później sprawdzamy, czy na pozycji, gdzie wcześniej był obiekt znajduje się ten sam obiekt oraz, czy możemy z niego poprawnie pobrać poprzednią wartość ambient occlusion. Jeżeli tak to bierzemy go, uśredniamy odpowiednio, a następnie odrzucamy wartość, jeżeli jest zbyt odległa od tego czego oczekujemy. Wiem, że to dość chaotycznie opisane, ale staram się upchnąć kilka książek o ray-tracing w kilka zdań, także musicie mi wybaczyć. Nie mniej ogólnie proces powinien sprowadzać się do tego, że uśredniamy dane z obecnej klatki z tymi z poprzednich, jeżeli to możliwe. Czytaj dalej...

Read more

✨️ Docker Dla Programistów ✨️…

✨️ Docker Dla Programistów ✨️ To kolejny cykl otwartych, szkoleń które przygotowałem dla programistów chcących zbudować lub ugruntować swoją wiedzę na temat Dokera. W trakcie szkolenia Live: ▶️ Dowiesz się czemu służy, jak działa i w jaki sposób programiści najczęściej wykorzystują Dockera. ▶️ Pokażę Ci jak wykorzystywać i tworzyć własne obrazy dla swoich aplikacji. ▶️ Stworzymy kontenery oraz sprawdzimy co mają w środku. ⏰ Widzimy się 25 lipca 2022 o 19:00 ✨️ Więcej szczegółów na temat wydarzenia znajdziesz na https://live.bykowski.pl ps. Na następnym spotkaniu przybliżę Ci koncepcję sieci i volumentów w Dokerze. #programowanie #naukaprogramowania #java #backend #technologia #informatyk #ciekawostki #jvm #byczazagroda #framework #spring #kariera #springboot #docker #devops Czytaj dalej...

Read more

Byłem dziś w biurze dla…

Byłem dziś w biurze dla odmiany i Scrum Master który zarabia tyle co ja, albo może więcej (widełki były podane w ofercie pracy, są jawne ma minimum 14k brutto w mojej firmie) dosłownie nic nie robił. Od 8 do 10 udawał że coś robi, był w kuchni, gadał z HRami, potem coś poklikał na Jirze. O 10 zorganizował Daily coś poklikał na Jirze potem chwilę i o równej 12 poszedł na obiad z którego wrócił po godzinie czasu. Potem miał jakieś spotkanie z Headem godzinne, potem znowu coś tak porobił i właśnie o 16:00 wyszedł. Nie pisząc ani jednej linii kodu. A na miesiąc na pewno ma nie mniej niż 14k brutto. Powtarzam, bez jakiejkolwiek znajomości technicznych rzeczy i nie pisząc ani jednej linii kodu. #programowanie #korposwiat #pracbaza #pracait Czytaj dalej...

Read more

Z zespołu odchodzi jeden z…

Z zespołu odchodzi jeden z developerów który miał na sobie pełno zadań i to takich że nie ma go kim zastąpic. PM wyskakuje z tekstem „chciałabym żeby nie było żadnych opóźnień i klient tego nie odczuł” ( ͡° ͜ʖ ͡°) no powodzenia xD a ja chciałbym mieć ferrari lub lamborghini #programowanie #programista15k Czytaj dalej...

Read more

Z ciekawości wpisałem w…

Z ciekawości wpisałem w google jak wygląda programowanie. Pierwszy lepszy obrazek potwierdził mi tylko to co podejrzewałem – chłop jest za głupi na takie rzeczy eh. Czarna magia totalnie dla mnie. Widać nie dla mnie zarobki 15 czy 20k…. #programowanie #programista15k Czytaj dalej...

Read more

Język #golang dynamicznie się…

Język #golang dynamicznie się rozwija, poza poprawkami do genericsów (weszły w 1.18) w nadchodzącej wersji 1.19 mamy nową opcję do runtime – SetMemoryLimit, dzięki której możemy w nowy sposób wpływać (nowy dla Go rzecz jasna) na działanie GC, jest to opcja podobna w działaniu do Xmx do opcji JVMa. W skrócie ustawia to limit zużycia pamięci przez aplikacje, więc odpowiednie ustawienie tej opcji będzie miało wpływ czy lub jak często GC będzie nam wchodził w paradę, podczas działania naszego programu. Reasumując, wraz z dostępną opcją GOGC możemy tunningować bardziej naszą aplikacje i niewykluczone, że niektóre firmy o pewnej skali mogą w tej wersji uzyskać znacznie lepszą wydajność ich aplikacji. Więcej informacji o nadchodzącej wersji 1.19 A tutaj świetna strona pokazująca działanie GC w Go – są dostępne opisy oraz wizualizacje, gdzie można sobie zobaczyć wpływ pewnych wartości GOGC oraz SetMemoryLimit na działanie runtime, a konkretnie GC właśnie #programowanie #devopsiarz Czytaj dalej...

Read more

Nic tak nie pobudza jak…

Nic tak nie pobudza jak poranna kawa wylana na klawiaturę ( ͡° ͜ʖ ͡°) Dziś mamy dla Was oferty #pracazdalna z widełkami #10k i powyżej ( ͡° ͜ʖ ͡°) | Facebook | Crossweb | Podcasty | Wydarzenia | Oferty Pracy | Frontend • Senior React Developer | Tidio | 20-28k https://crossweb.pl/job/gKYx8 • React Developer (mid) | Tidio | 12-20k https://crossweb.pl/job/IFLYw Backend • Senior Java Engineer | Grape Up | 22-30k https://crossweb.pl/job/cwT2J • Senior Symfony Developer | Strix | 12-18k https://crossweb.pl/job/GGhQj • Mid Magento Backend Developer | Strix | 12-16k https://crossweb.pl/job/Opbya • Tech Lead Magento Backend Developer | Strix | 20-25k https://crossweb.pl/job/a7y8X • Senior Magento Backend Developer | Strix | 17-21k https://crossweb.pl/job/2iwsd • Senior Java Cloud Developer | Grape Up | 18,8-28,5k https://crossweb.pl/job/jES0k • PHP Developer (mid) | Tidio | 12-20k https://crossweb.pl/job/3RN5E • Senior PHP Developer | Tidio | 19-26k https://crossweb.pl/job/krAJI • Java Developer | Empik S.A. | 12-15k https://crossweb.pl/job/8s6zq • Java Cloud Developer | Grape Up | 16-22,1k https://crossweb.pl/job/LwWeQ • Senior Back End Developer | Kalamba Games | 16-27k https://crossweb.pl/job/btNp9 • Back End Developer | Kalamba Games | 10-16k https://crossweb.pl/job/4DxLh • Junior Back End Developer | Kalamba Games | 6-10k https://crossweb.pl/job/msmlR DevOps • DevOps Engineer | NOVOMATIC Technologies Poland | 16-29k https://crossweb.pl/job/JH3yU QA • Head of QA | Strix | 20-24k https://crossweb.pl/job/b67eZ PM • IT Project Manager | Strix | 13-17k https://crossweb.pl/job/NEZDT • Department Manager | Strix | 17-21k https://crossweb.pl/job/HpGSF #crossweb #programista15k #pracbaza #programowanie #frontend #programowanie #pracait #it #java #pracazdalna #humorprogramistow #devops #iosdev #androiddev #projectmanager #heheszki Czytaj dalej...

Read more

W sumie PikaBu to taki lepszy…

W sumie PikaBu to taki lepszy Wykop jeśli chodzi o szatę graficzną i funkcjonalności. Połączenie Reddita i Mirkobloga. Są odpowiednie „subreddity” na, których panuje porządek i pilnowane jest, aby wrzucać tam tylko quality content. Możne też postować bez „subreddita” i wtedy to jest zwyczajny Mirkoblog. A na Wykopie co? Gó#$o. Tagi tematyczne zaśmiecone memami, gownowpisami, zarzutkami itd. Główna to ściek z fejkami politycznymi z prawej i lewej strony, i tablica reklamowa niebieskich kont. Nawet regulamin mają nie tyle co lepszy co jasny. Dobrze jest opisane co można, a czego nie. A na Wykopie? Nie podobają nam się twoje wpisy, więc „znajdujemy” tobie mutlikonto bez podawania nazwy multikonta XD Naprawdę polski rynek webowy jest tak ubogi, że nikt nie chce uśmiercić tego trupa jakim jest Wykop z frontendem rodem z 2010 roku? Backend to też musi być niezły ściek widząc codzienne poczynania Rumuna z IBM. #wykop #pikabu #polska #rosja #programowanie #informatyka #webdev #rumun #gospodarka #biznes Czytaj dalej...

Read more

A wiedzieliście, że #albicla…

A wiedzieliście, że #albicla ma też aplikację mobilną? ( ͡° ͜ʖ ͡°) I cyk! Rachunek na 300k! Tak trzeba żyć! A Wy dalej TC 180k? Nawet mi Was nie żal ( ͡° ͜ʖ ͡°) https://www.hejto.pl/wpis/a-wiedzieliscie-ze-albicla-ma-aplikacje-mobilna #heheszki #albicla #hejto #humorinformatykow #programista15k #programowanie Czytaj dalej...

Read more

#apple #programowanie moje…

#apple #programowanie moje wrażenia po miesiącu pracy na macu z m1 pro 32gb ram za 15k – jakość wykonania lapka 10/10 – lekki, cienki i mobilny – zajebisty ekran – dobra jakość kamery oraz mikrofonu – niezły touchpad – kozackie głośniki – klawiatura wykonanie ok ale guziki option command fn i ich położenie to dla mnie zawsze będzie wymysł a’la będziemy inni od konkurencji i uzależnimy od tego zjebanego pomysłu ludzi by już nigdy nie pracowali na innym systemie – dock to gówno, przy windowsowym taskbarze się chowa, ubar niby pomaga ale i tak działa to jakby było zbugowane – file explorer – finder – tragedia, poruszanie się po plikach czy wyciąganie o nich podstawowych informacji pozostawia wiele do życzenia – natywne aplikacje, ui – porażka xD – zarządzanie okienkami typu maksymalizowanie, przenoszenie, układanie bez dodatkowych apek jest zjebane – większość rzeczy które na windowsie wymagają jednego/dwóch klików tutaj wymagają klików co najmniej x2 – ekran dojebany, system ogólnie ładny ale co z tego jak niepraktyczny generalnie do przeglądania internetu czy brandzlowaniu się w kawiarni że pracuje się na jabku bardzo fajny, ale do pracy na wielu oknach, narzędziach, IDE to jest to dla mnie nieproduktywny system i wątpię że to kwestia przyzwyczajenia. unixowosc tego systemu lekko go ratuje ale pewnie i tak wrócę niedługo do linuxa lub windy bo po co mam się męczyć ( ͡º ͜ʖ͡º) Czytaj dalej...

Read more