TDM: nowe funkcje, zmiany, usprawnienia silnika

Zaglądnij tutaj, jeśli masz pytania lub uwagi dotyczące różnorodnych aspektów tworzenia misji w edytorze Darkmod, jak też związanego z nimi oprogramowania i sprzętu.

Moderatorzy: peter_spy, timon

Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Niedawno została udostępniona publiczna beta wersji 2.06, która zawiera dość przełomowe zmiany w stosunku do dotychczasowej wersji silnika, m.in.:

- Obsługa 64 bitów (osobny .exe)
- Miękkie cienie
- Obsługa wielowątkowości (z tego co widzę 4 rdzenie, bez HT)
- Obsługa OpenAL i ustawień EFX (programowy EAX). Można to przetestować np. w misji Volta and the Stone, która zawiera takie definicje.
- Obsługa formatu FFMPEG dla filmików (do tej pory był stary i nieporęczny ROQ)

Miękkie cienie i wydajność można testować we wszystkich dotychczasowych misjach ;)

Instrukcje do ściągnięcia bety znajdują się w tym wątku.
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: The Dark Mod 2.06 Public Beta

Post autor: Juliusz »

No, brzmi nieźle. Większa wydajność pewnie pozwoli na levele z większym rozmachem. (Chciałbym zobaczyć takie 'Nosferatu' w Darkmodzie).
Natomiast miękkie cienie (oprócz spowolnienia... ;) ) sprawią, że może w końcu ta sterylność grafiki zostanie zabita. Jest to jeden z głównych elementów (przynajmniej wizualnych), które mnie odrzucają od tej gry. Widziałem gdzieś próbne rendery i wyglądało to spoko.
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: The Dark Mod 2.06 Public Beta

Post autor: peter_spy »

Wiesz, to są nadal te same cienie, tylko pociągnęte interpolacją... co nie zmienia faktu, że teraz wyglądają znacznie przyjemniej ;) Uwzględniają też choć odrobinę odległość od światła, można też ustawić większe rozmycie zależnie od odległości od gracza. Póki co to tylko efekt bufora ramki, ale może kiedyś będziemy mieć w edytorze światła z regulacją rozmycia cieni. Ponoć w wersji 2.07 ma się pojawić pierwsze podejście do lightmappingu, ale trochę trudno mi w to uwierzyć (ew. ta wersja wyjdzie za 2 lata).

Obrazek
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Od pewnego czasu jest dostępna kolejna beta, tym razem wersji 2.07. https://www.moddb.com/mods/the-dark-mod ... uffer-beta

Zmiany to wybrane usprawnienia przejęte z wersji Doom BFG edition, przede wszystkim shadow maps, czyli odejście od stencil shadows. Oprócz lepszej wydajności i większego korzystania z GPU można teraz np. tworzyć obiekty z przezroczystymi teksturami (alphatest), które będą rzucać cień (typowy przykład to siatki, kraty itp.

Z innych ciekawostek, pracujemy z jednym programistą nad światłem obiętościowym. Póki bardzo mocno obciąża to kartę graficzną, ale postępy są obiecujące:

Awatar użytkownika
Zaratul
Młotodzierżca
Posty: 892
Rejestracja: 13 stycznia 2008, 21:42
Lokalizacja: Poznań

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Zaratul »

Ściągnąłem betę patcha 2.07 i jest naprawdę świetnie. Największa zaleta to znacznie lepszy performance. Wszystkie misje chodzą bardzo dobrze, nawet te najbardziej wymagające typu Penny Dreadfull 2 i 3. Dzięki wielkie Judith za bardzo dobrą robotę! :ok
Look at you, hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?
Awatar użytkownika
Marzec
Arcykapłan
Posty: 1494
Rejestracja: 22 listopada 2006, 11:13
Lokalizacja: Kraków
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Marzec »

Judith pisze:Z innych ciekawostek, pracujemy z jednym programistą nad światłem obiętościowym. Póki bardzo mocno obciąża to kartę graficzną, ale postępy są obiecujące:

Bardzo pożądany ficzer graficzny. Jestem ciekaw czy trick wydajnościowy jest trudny do zrobienia :)
www.thiefguild.com - Gildia Złodzieja
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Juliusz »

Zgadzam się z przedmówcami - wygląda to bardzo dobrze. Choć fajnie by było, gdyby promienie były rzutowane bardziej równolegle. Da się?

Masz też może jakieś przykładowe screeny/filmiki z lightmap'owanymi cieniami?
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Juliusz pisze:Zgadzam się z przedmówcami - wygląda to bardzo dobrze. Choć fajnie by było, gdyby promienie były rzutowane bardziej równolegle. Da się?
Da się, to tylko kwestia przekręcenia światła punktowego pod innym kątem ;)
Juliusz pisze:Masz też może jakieś przykładowe screeny/filmiki z lightmap'owanymi cieniami?
Shadowmapy zastępują stencil shadows w bieżących mapkach, nie wymaga to żadnych nowych parametrów. Jeżeli chcesz skuteczniej kontrolować jakość vs. wydajność, to możesz sobie wrzucić do autoexec.cfg lub próbować w konsoli następujące komendy:

r_shadows 2 (włącza shadow mapy, 1 to stencil shadows)
r_softShadowsQuality 14
r_softShadowsRadius 6
r_shadowMapSize 512 i więcej

Ze światłami objętościowymi jest jeszcze sporo problemów i nie wyglądają tak dobrze jak powinny (z daleka jest całkiem fajnie, z bliska niekoniecznie). Podstawowym problemem jest okropny banding przy kolizji z geometrią i wzdłuż snopu światła.

Nie wiem czy was zanudzać szczegółami technicznymi, ale światła w TDM są trochę dziwne, bo składają się z jakiejś tekstury projekcji, która decyduje o kształcie światła na płaszczyźnie XY, oraz tzw. falloff image, który determinuje jasność pikseli "w pionie", tj. na płaszczyznach XZ i YZ. W przypadku świateł punktowych jest to właśnie wzdłuż snopu światła, ale korzystają z tego również światła "omni". Silnik bardzo ładnie obsługuje tekstury projekcji, a większa rozdzielczość przekłada się na lepszą jakość takiego światełka.

Natomiast w przypadku falloff image już to nie działa. Zasadniczo wszystkie światła w silniku domyślnie korzystają z tekstury o nazwie squarelight1a.tga, która po przybliżeniu wygląda tak:

https://i.postimg.cc/1zmrX4vB/obraz.png

Obrazek ma rozdzielczość 64 x 8 pikseli i jak widzicie to jest zwykły gradient. Ponieważ światło zaczyna się na środku, to wykorzystuje jedynie 32 przejścia gradientu, zamiast 256 (!) czyli maksimum dla obrazków 8-bitowych. Nie wiem czy było to podyktowane wydajnością, ale ta wartość jest póki co zablokowana w silniku. Zastąpienie tej tekstury większą nic nie daje.

Na ten moment programista próbuje użyć jakiegoś blura, żeby to zamaskować, ale wydaje mi się, że to nic nie da przy tak niskiej rozdzielczości tego obrazka. Zobaczymy, dalsze postępy zapewne w tym tygodniu :)

Natomiast wracając jeszcze do shadow mappingu, IMO istotną funkcją jest wprowadzenie transparency shadow maps. Czyli krótko mówiąc, jeżeli wstawicie sobie płaski model jakiejś kraty czy siatki i ustawicie za nim światło, to otrzymacie coś takiego:
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Juliusz »

Judith pisze:
Juliusz pisze:Zgadzam się z przedmówcami - wygląda to bardzo dobrze. Choć fajnie by było, gdyby promienie były rzutowane bardziej równolegle. Da się?
Da się, to tylko kwestia przekręcenia światła punktowego pod innym kątem ;)
Nie wiem, czy myślimy o tym samym. Światło punktowe zawsze będzie rzucało cienie w kształcie stożka - czyli im dalej od centrum, tym większy cień.
Światło słoneczne i księżycowe rzucają promienie równolegle, przez co cienie się nie powiększają.
To co widziałem na próbce wygląda OK, ale wygląda to tak, jakby za każdym oknem była osobna lampa, a nie było rzutowane przez słońce czy księżyc.

Jeśli dobrze pamiętam, to światła w doom engine'ie miały możliwość ustawienia punktu źródłowego poza centrum światła. Więc jeśli da się oddalić ten punkt sporo, to być może cienie powinny wyglądać na względnie równoległe, w niedużym pomieszczeniu. Ale nie pamiętam teraz, na ile to możliwe.
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Bo tak jest, za każdym oknem jest spotlight, to nie jest efekt w postprocessie dla jednego globalnego światła słonecznego czy księżycowego. Nie wiem czy w ogóle coś takiego jest możliwe, idtech4 nie ma nieba takiego jak w UE3 czy 4. Skybox jest miniaturką wyświetlaną poprzez tekstury, nie jest "fizyczny".
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Juliusz »

Hmm.... Dark Engine potrafił robić cienie równoległe - sorry nie przesiadam się... ;) :)
Nie, no, kapuję, że każde to jest osobne światło - myślałem, że może jest gdzieś w opcjach światła jakiś checkbox '[x] directional light' czy coś w tym stylu, który rzutowałby równoległe cienie. Ot, tak chciałem tylko wyklarować - co jak co, ale oświetlenie zawsze było mi bliskie i przywiązuję do takich rzeczy wagę.
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Juliusz »

Judith pisze:Na ten moment programista próbuje użyć jakiegoś blura, żeby to zamaskować, ale wydaje mi się, że to nic nie da przy tak niskiej rozdzielczości tego obrazka. Zobaczymy, dalsze postępy zapewne w tym tygodniu :)
Na pewno da się te wartości jakoś interpolować... Albo jeśli rozmiar jest hardcode'owany w silniku, to da się to zmienić - w końcu macie dostęp do oryginalnego kodu.
No, nic - trzymam kciuki! :)
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Juliusz pisze:Na pewno da się te wartości jakoś interpolować... Albo jeśli rozmiar jest hardcode'owany w silniku, to da się to zmienić - w końcu macie dostęp do oryginalnego kodu.
No, nic - trzymam kciuki! :)
Mam nadzieję, że się da :) Wczoraj jeszcze trochę poeksperymentowałem, ale chyba jednak falloff image nie ma takiego wpływu na snop światła, problemem jest raczej ilość sampli dla samego światła objętościowego. Kombinowałem wczoraj z naprawdę wysokimi wartościami typu 240 albo 320 i wtedy to wygląda dobrze :) Tyle że w 20 klatkach na sekundę przy jednym świetle :-D Sensowne wartości zawierają się w przedziale 25-35 sampli. Trzeba będzie znaleźć jakiś kompromis.
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Wersja 2.07 jest już oficjalnie domknięta. Wystarczy odpalić tdm_updater i pozwolić żeby wszystko się ściągnęło. Czasami ludzie mają problemy z aktualizacją poprzednich wersji, wtedy warto wykonać czystą instalację w osobnym folderze.

Krótkie omówienie poprawek i nowych funkcji: https://www.moddb.com/mods/the-dark-mod ... ty-release

Jeżeli chodzi o nowe opcje w menu, Soft shadow quality strasznie pochłania wydajność. Najlepiej sprawdza się albo ustawienie cieni na Stencil i jakości miękkich cieni na Low, albo cienie jako Maps (shadow maps) i wtedy można wyłączyć soft shadows (cienie nadal będą miękkie).

Aha, shadow maps nie są wypalane jak w innych silnikach, wszystko nadal jest generowane na bieżąco. Różnica jest taka, że stencil shadows obciążają procesor, a shadow maps kartę graficzną. Sporo zależy od sprzętu i tego jak zbudowana jest misja. Czasami warto poeksperymentować :)
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Juliusz »

No, widziałem - cienie wyglądają spoko - poprawne area shadows są w grach ciągle rzadkością. Choć ja osobiście nie prędko się skuszę na Darkmoda, z wielu różnych przyczyn.

Obejrzałem też jeden z video tutoriali Springheela na temat pułapek.

Mam wrażenie, że strasznie dużo ustawiania czegoś, co powinno być o wiele bardziej proste. Już nie wspomnę o tym, że ta pułpka działała tylko raz - nie wracała do pozycji początkowej. Ustawienie pułapki resetującej się pewnie zajęło by dwa razy więcej roboty.

Szkoda, że nie da się połączyć Dark Moda z New Dark'iem jakoś - efekt by zaspokoił wszystkie oczekiwania! :) ;)
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Mam wrażenie, że strasznie dużo ustawiania czegoś, co powinno być o wiele bardziej proste.
Zgadza się. Mam wrażenie, że to jest specjalność ludzi pracujących przy TDM, myślenie o jak najszybszej sprawnej pracy nigdy nie było ich mocną stroną... Wynika to również z tego, że nie siedzą w innych silnikach i nie widzą jak to wszystko poszło do przodu. Tutaj to bardziej tutorial jak to zrobić od zera, a IMO to powinno być w formie wygodnych gotowców: actors / entities, które trzeba tylko wstawić do mapy i zmienić 2-3 wybrane parametry.
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Tego się chyba nikt nie spodziewał. Idtech4 będzie miał shadery PBR.

Dla porównania, stockowe tekstury PBR w Unreal Engine 4 i D3PBR:
Obrazek

To dopiero początek prac, dalsze postępy chyba wkrótce ;)
Wstępne info tutaj: https://www.doomworld.com/forum/topic/1 ... on-shader/
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Juliusz »

PBR - samo w sobie, to dobra wiadomość.

Ale... jakoś patrzę na te screeny i ciężko mi być pod wrażeniem. Co dokładnie tu się dzieje takiego innego, że można to nazwać PBR'em?
Sam highlight wygląda dziwnie na tym Doom3PBR - środek rozbłysków jest czarny (!) - jest to ewidentne na trójkątnych elementach podłogi.

Screeny z tego linka wyglądają... no, powiedzmy łagodnie - mało fizycznie poprawne. To, co mnie drażni w doom engine'ie, to właśnie ten kontrast oświetlenia. Na tych screenach jest on ciągle ekstremalny.

Jednym z wymogów poprawnie działających shaderów PBR jest tzw. linear workflow, czyli obliczenia w skali lineranej, a nie sRGB. To drugie daje takie właśnie drastyczne przejścia pomiędzy światłem i cieniem.

Mam wrażenie, że gość dodał po prostu mapowanie 'metaliczności', co na pewno jest krokiem naprzód, ale same efekty ostateczne nie powalają jeszcze...
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Co dokładnie tu się dzieje takiego innego, że można to nazwać PBR'em?
W ramach materiału są użyte tekstury base color, normalmap, roughness i metallic, które spełniają parametry dla materiałów PBR (właściwy zakres intensywności koloru i właśnie wartości liniowe dla tekstury metallic). Wszystko to wygląda identycznie w Substance Alchemist, UE4 i D3PBR.

W tym momencie problemem jest głównie brak przejścia pomiędzy źródłem światła i hotspotem relatywnie do pozycji gracza, przez co znajduje się on w dziwnym miejscu - gdy podejdziesz do miejsca, w którym jest światło i popatrzysz pod nogi, to nie widać "speculara", jest on dziwnie przesunięty. Dlatego nie ma go również na ścianie po lewej. Poza tym wszystko się zgadza.
Awatar użytkownika
Juliusz
Złodziej
Posty: 2774
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: Juliusz »

OK, porównałem video z Prey z vanilla shaderami do tego z shaderami PBR. Różnica jest w kształcie specularów. Jeśli można sobie ustalać roughness niezależnie od metaliczności, to jest to postęp.

Ciekawi mnie jednak, czy ta fizyczna poprawność obejmuje także refleksje, np. pochodzące z cube maps.

Ale, to, co trochę studzi entuzjazm to fakt, że - jeśli dobrze przeczytałem - gość wprowadza te zmiany dla Doom'a 3, Quake'a 4 oraz Prey'a jednocześnie. I o tyle, o ile silnika dooma jest open source, to tych ostatnich nie. I przez to nie może dodać osobnej tekstury dla metaliczności - stąd wykorzystuje kanał Green mapy specular.
A to z kolei oznacza, że trzeba zmienić istniejące tekstury specular dla wszystkich shaderów na ten nowy format.

No i nie mówiąc o braku możliowści użycia kolorowych map specular'ów (dla metali), ale może kolor jest automatycznie wyciągany z diffuse, w tym przypadku...?

Ale oczywiście fajnie, że coś takiego powstaje.

W Newdarku nieprędku zobaczymy PBR shaders... ;)
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Póki co wiem że shader uwzględnia gołe światła jak i z teksturami/projekcjami, ale chyba niewiele ponadto. Cubemapek nie testowałem z braku czasu, plus autor wspomniał na Discordzie, że chce zrobić reflection probes takie jak w UE4, stąd nie będzie trzeba tworzyć lokalnych cubemapek dla odbić. Z tego co wiem większość prac skupia się jednak na silniku gołego Doom 3, Q4 i Prey to był przykład.

Tekstury trzeba będzie zmienić tak czy inaczej, bo PBR jest niekompatybilny z poprzednim systemem :) Wybór kanałów teksury speculara to chyba raczej kwestia gustu i możliwość szybkich testów (choć na nieprawidłowych danych...). Równie dobrze można by zrobić ze trzy osobne obrazki w skali szarości (roughness / metalic / AO). W sumie chyba też bym tak wolał, bo praca na kanałach w Gimpie jest męcząca. Pakowanie skal szarości do RGBA jest fajne jak masz edytor materiałów w stylu UE4, a nie dzierganie rzeczy w notatniku.

Z kolei kolorowe speculary dla metali nie są potrzebne w ogóle w tym systemie. Jeżeli tekstura base color zawiera odpowiedni kolor metalu, a w teksturze metallic piksele są białe, to specular będzie kolorowy. Podobnie z efektami typu fresnel – to jest kontrolowane automatycznie w shaderach, na podstawie tekstur roughness i metalic.
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

No, będzie się działo przy okazji 2.08. Wejdzie implementacja SSAO, 64-bitowy bufor (co oznacza np. wyeliminowanie bandingu dla gradientów i świateł), nowy prawilny bloom i jeszcze jak dobrze pójdzie to parallax corrected cube mapping :-D
Awatar użytkownika
peter_spy
Złodziej
Posty: 2556
Rejestracja: 14 września 2002, 22:31
Lokalizacja: Łódź
Kontakt:

Re: TDM: nowe funkcje, zmiany, usprawnienia silnika

Post autor: peter_spy »

Kolejna istotna rzecz, w wersji 2.10 zostanie podniesiony, a w zasadzie zniesiony limit obiektów. Do tej pory było to 8192, co bardzo ograniczało możliwości budowania map – zwłaszcza że nie było również możliwości budowania kilku map w ramach jednej misji, tak jak w Thief Deadly Shadows. Od wersji 2.10 limit zostanie podniesiony do 65536, a wartość tę będzie można dalej zwiększać za pomocą komend w konsoli.
ODPOWIEDZ