Skocz do zawartości

Uniwersalne kompilatory poziomów x64


Gość Diegtiariow

Rekomendowane odpowiedzi

Gość Diegtiariow

 splash_compiler.png.81a7631d74369253ec16a572044af9ff.png

Uniwersalne kompilatory poziomów x64

Oryginalne kompilatory poziomów: GSC Game World
Poprawki kompilatora i paczka: SkyLoader
Podziękowania: Abramcummer, K.D.
Aktualna wersja: 1.3

 

Do pracy potrzebny jest Microsoft Visual C++ 2017 Redistributable x64.

UWAGA: w danym kompilatorze domyślnie wyłączono statyczne światła i statyczne cienie słońca. Dla włączenia tych komponentów należy użyć odpowiedniego klucza, który jest w opisie kluczy.

 

OPIS ZMIAN, KOMPILATORÓW I TROCHĘ PORAD:

Spoiler

Zestaw kompilatorów:

Spoiler
  • Kompilator geometrii [SoC, CS, CoP]
  • Kompilator trawy [SoC, CS, CoP]
  • Kompilator siatki AI [SoC, CS, CoP]
  • Zbieracz spawnu [SoC, CS, CoP]

 

Główne zmiany:

Spoiler
  • Wsparcie x64
  • Wsparcie podstawowych gier serii
  • Wszystkie kompilatory zostały połączone w jedną aplikację
  • Interfejs został w pełni przepisany w WinForms
  • Dodano menu kompilatora, w którym można wybrać projekt poziomu, ustawić pewne konfiguracje i uruchomić kompilację
  • Dodano system zapisów i wczytywania ustawień ostatnich projektów
  • Liczby tworzonych wątków nie jest już ustalona. Zależy to od ilości rdzeni procesora
  • Przejście na bibliotekę DirectXTex w celu zamiany przestarzałych FreeImage i nvDXT
  • Usunięto błędy obliczeniowe parametrów oświetlenia RGB i Sun; pozostawiono tylko Hemi
  • Przeprowadzono prace nad rozdzieleniem niektórych faz kompilacji na wątki i kodu zewnętrznych bibliotek
  • Zintegrowano Discord Rich Presence w celu śledzenia statusu kompilacji na zdalnym PC
  • Dodano możliwość automatycznego wyłączenia PC po kompilacji
  • Wykonano pasek postępu na panelu zadań dla wyświetlenia stanu obecnej fazy kompilacji, gdy aplikacja jest zminimalizowana
  • Dodano klucze dla przyspieszonej kompilacji poziomów w celach testowania
  • Dodano eksperymentalne klucze dla wyłączenia niektórych faz kompilacji i ustawienia parametrów z pominięciem parametrów SDK
  • Dodano podstawowe zmiany poprzednich kompilatorów
  • Rozszerzono wyjście informacji o niektórych błędach
  • Poprawiono niektóre wyloty oryginalnych kompilatorów

 

Niektóre niuanse i porady:

Spoiler

Można nie ustawiać klucz -version. W takim wypadku wyjściowy format danych będzie następujący: dla poziomu z SoC SDK – SoC format, dla poziomu CS/CoP SDK – CoP format.

Dla poziomów, zebranych przez SoC SDK, będzie automatycznie zastosowane SoC wygładzanie, co oznacza, że nie ma obowiązku używania klucza -nosmg (z wyjątkiem zmodyfikowanych SoC SDK, dodających grupy wygładzania).

Na etapie wczytywania plików .thm najpierw następuje próba otwarcia pliku wzdłuż ścieżki $game_textures$ (gamedata\textures), jeśli jej nie ma – wzdłuż ścieżki $textures$ (rawdata\textures). Powinni to wziąć pod uwagę ludzie, pracujący z SoC.

Dla częściowej poprawy często spotykanych problemów z pojawieniem się czarnych poligonów, zmieniono przesunięcie pozycji wiązki światła przy pieczeniu cieniowania od hemisfery. W związku z tym, przy modelowaniu geometrii budynków zalecane jest nie tworzyć two-side geometrii dla ścian (jak, np. w statkach na Zatonie), a zachować określoną ich grubość. Jeśli chcesz pozostawić geometrię jak jest, to można przywrócić przesunięcie pozycji wiązki światła na oryginalną wartość przy pomocy klucza -hemi_bias 0.001, ale wtedy ilość czarnych trójkątów będzie tak, jak przy użyciu starych kompilatorów. 

W wersji produkcyjnej wersji poziomu nie jest zalecane używanie klucza -skipthm, ponieważ z powodu brakujących tekstur i plików .thm na powierzchniach może nieprawidłowo wypalić się światło.

Nie warto ustawiać Weld distance na 0. Czasami to prowokuje tworzenie krzywych fake'owych cieni od jakiejś geometrii. Lepiej ustawić małą wartość, ale więcej od 0.

W przypadkach, kiedy na poziomie trzeba poprawić tylko kolizję poziomu lub rozstawić fake'i dla aktora, można użyć klucza -cform. Będzie się kompilowała tylko colision-geometria poziomu bez pieczenia oświetlenia, tym samym znacząco zmniejszy się czas kompilacji.

Dla analizy tego, jak kompilator zmienił geometrię poziomu pod grę, można wspomóc się kluczami -saveobj_base, -saveobj_lmap i -saveobj_cform. Geometria zostanie zapisana w ścieżce temp\geom… do plików z rozszerzeniem .obj dla dalszego przeglądu ich 3D edytorze. Również klucz -saveobj_lmap może pomóc w ręcznym edytowaniu lightmap tekstur, jeśli na nich zostały wykryte problemy.

 

 

OPIS KLUCZY:

Spoiler

Główne klucze:

Spoiler
  • W celu kompilacji geometrii poziomu:
    start bin\compilers_sky_x64\xrCompiler.exe -geometry -f nazwa_poziomu -version nazwa_wersji (shoc/cs/cop)

 

  • W celu kompilacji detail'ów (trawy):

    start bin\compilers_sky_x64\xrCompiler.exe -details -f nazwa_poziomy -version nazwa_wersji (shoc/cs/cop)

 

  • W celu kompilacji siatki AI:
    start bin\compilers_sky_x64\xrCompiler.exe -aispawn -f nazwa_poziomu -version nazwa_wersji (shoc/cs/cop)

 

  • W celu kompilacji zebrania spawnu:
    start bin\compilers_sky_x64\xrCompiler.exe -aispawn -s nazwa_poziomu1,nazwa_poziomu2,nazwa_poziomu3 -out all

 

 

 

Klucze do kompilacji geometrii:

Spoiler

-skipthm – nie przerywaj kompilacji, gdy brakuje tekstur i plików .thm

-removeinvalid – nie przerywaj kompilacji przy znalezionych invalid faces i usuń je

-skipinvalid – nie przerywaj kompilacji przy znalezionych invalid faces i pomiń je

-tex_rgba – nie używać kompresji dla zapisanych tekstur

-tex_bc7 – użyj kompresji BC7 dla zapisanych tekstur (format wspierany tylko na DX11)

-silent – automatycznie zamknij aplikację po zakończeniu kompilacji

-sleep – wyłącz komputer po zakończeniu kompilacji

-nohemi – wyłącz oświetlenie hemi. Znacząco przyspiesza kompilację. Przeznaczony do testowania geometrii

-underground – kompilować poziom jako podziemny. Przyspiesza kompilację

-static – włączyć statyczne oświetlenie (nie działa z kluczem -nohemi)

-cform – eksportować tylko kolizję poziomu

-noise – wyłączyć tworzenie Progressive geometrii. Przyspiesza kompilację, ale nie tworzy uproszczonej geometrii dla poziomu i Multiple Usage obiektów

-nosmg – nie używać grupy wygładzania

-notess – wyłączenie teselacji geometrii

-noweld – wyłączenie weldingu małych trójkątów

-nomerge – pominąć fazę Merging geometry

-nostrip – wyłączyć optymalizację i stripification geometrii

-dx_opt – włączenie optymalizacji geometrii środkami D3DX optimizer zamiast NvTriStrip

-gi – włączyć fazę Radiosity

-no_mt_mu – nie włączać obliczenia/rozliczenia oświetlenia dla Multiple Usage obiektów równolegle do głównej kompilacji

-high – bardzo wysoki priorytet dla wątków

-saveobj_base – zapisać całą geometrię poziomu do plików .obj (podstawowa transformacja)

-saveobj_lmap – zapisać całą geometrię poziomu do plików .obj (transformacja lightmap)

-saveobj_cform – zapisać całą kolizję poziomu do pliku .obj

-qual_draft – ustawić jakość sceny w Draft (nie wpływa na zastosowane shadery)

-qual_high – ustawić jakość sceny w High (nie wpływa na zastosowane shadery)

-ppm liczba – ustawić jakość lightmap zamiast wartości w SDK

-weld_dist liczba – ustawić Weld distance zamiast wartości w SDK

-hemi_bias liczba – ustawić przesunięcię pozycji wiązki światła przy użytym hemi (domyślnie: 0.1, w oryginale: 0.001)

 

 

Klucze do kompilacji trawy:

Spoiler

-skipthm – nie przerywać kompilacji, gdy brakuje tekstur i plików .thm

-silent – automatycznie zamknąć aplikację po zakończeniu kompilacji

-sleep – wyłączyć komputer po zakończeniu kompilacji

-nohemi – wyłączyć (pieczenie) oświetlenie hemi

-static – włączyć (pieczenie) statyczne oświetlenie (nie działa z kluczem -nohemi)

 

 

Klucze do kompilacji siatki AI:

Spoiler

-draft – nie obliczać ukrycia dla AI-siatki

-verify – sprawdź AI-siatkę pod kątem błędów

-noverbose – nie wyprowadzać informacji o pojedyńczych węzłach (z kluczem -verify)

-skipthm – nie przerywać kompilacji, gdy brakuje tekstur i plików .thm

-silent – automatycznie zamknąć aplikację po zakończeniu kompilacji

-sleep – wyłączyć komputer po zakończeniu kompilacji

 

 

Ogólne klucze do wszystkich kompilatorów:

Spoiler

-help – wywołanie informacji z listą wszystkich kluczy startowych

-t liczba – ustawić ilość wątków dla wielowątkowych operacji (nie działa z kluczem -tbb)

-fsltx nazwa_pliku – użyć swój .ltx zamiast fsgame.ltx.

-log_name nazwa_pliku – stworzyć plik logu z daną nazwą. Przydatne dla kompilacji lokacji kolejno

-discord – włączyć Discord Rich Presence z wyprowadzeniem nazwy poziomu i statusu kompilacji

-discord_s – włączyć Discord Rich Presence z wyprowadzeniem tylko statusu kompilacji

-tbb – uzyć wielowątkowości TBB (nie jest zalecane)

 

 

Przykłady plików .bat:

Spoiler

Przyspieszona kompilacja poziomu dla testowania geometrii bez "upieczonego" oświetlenia:

start bin\compilers_sky_x64\xrCompiler.exe -geometry -f zaton -nohemi -noise
start bin\compilers_sky_x64\xrCompiler.exe -details -f zaton -nohemi
start bin\compilers_sky_x64\xrCompiler.exe -aispawn -f zaton -draft

 

Kompilacja podziemnego poziomu, całkowicie zamkniętego geometrią nosun:

start bin\compilers_sky_x64\xrCompiler.exe -geometry -f labx8 -underground

 

Kompilacja tylko kolizji:

start bin\compilers_sky_x64\xrCompiler.exe -geometry -f zaton -cform

 

Kompilacja lokacji kolejno z ostatnią instrukcją wyłączenia PC:

start /wait bin\compilers_sky_x64\xrCompiler.exe -geometry -f zaton -log_name zaton_geometry -silent

start /wait bin\compilers_sky_x64\xrCompiler.exe -details -f zaton -log_name zaton_detail -silent

start /wait bin\compilers_sky_x64\xrCompiler.exe -aispawn -f zaton -log_name zaton_aimap -silent

start /wait bin\compilers_sky_x64\xrCompiler.exe -geometry -f jupiter -log_name jupiter_geometry -silent

start /wait bin\compilers_sky_x64\xrCompiler.exe -details -f jupiter -log_name jupiter_detail -silent

start /wait bin\compilers_sky_x64\xrCompiler.exe -aispawn -f jupiter -log_name jupiter_aimap -silent -sleep

 

 

 

SCREENY:

Spoiler

compiler_main.png.919ff9db0634c7f1e51806compiler_menu.png.1d7b9376ef7abf7623bd7f

 

LINKI DO POBRANIA:

 

ŹRÓDŁO:

ap-pro.ru

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.