Wczytywanie tekstur w "description.lua"

Wszelkie tematy związane z dodatkowymi modyfikacjami do DCS oraz malowaniami modeli - forum otwarte dla wszystkich
Post Reply
Poko



Komendy wczytywania tekstur w "description.lua" znajdującego się w folderze skórki odbywają się według poniższego klucza:
livery = {
{"nazwa sekcji", nr lub rodzaj warstwy ,"nazwa tekstury", wartość "false" lub "true"};
}
name = "Nazwa Folderu"
countries = {"SKRÓT KRAJU 1", "SKRÓT KRAJU 2"}
Pierwszy fragment to nazwa nadana w 3dsmax, kierująca do konkretnej sekcji modelu.
TEGO NIE ZMIENIAMY!

livery = {
{"nazwa sekcji", nr lub rodzaj warstwy ,"nazwa tekstury", wartość "false" lub "true"};
}
name = "Nazwa Folderu"
countries = {"SKRÓT KRAJU 1", "SKRÓT KRAJU 2"}
Dalej mamy rodzaj warstwy (można stosować zamiennie nr lub pełną nazwę rodzaju warstwy). Ta wartość określa jaki rodzaj tekstury wczytujemy dla danej sekcji, a mogą być to:

DIFFUSE = 0
NORMAL_MAP = 1
SPECULAR = 2
DECAL = 3
DIRT = 4
DAMAGE = 5
PUDDLES = 6
SNOW = 7
SELF_ILLUMINATION = 8
AMBIENT_OCCLUSION = 9
ROUGHNESS_METALLIC = 13

livery = {
{"nazwa sekcji", nr lub rodzaj warstwy ,"nazwa tekstury", wartość "false" lub "true"};
}
name = "Nazwa Folderu"
countries = {"SKRÓT KRAJU 1", "SKRÓT KRAJU 2"}
Kolejny fragment kodu to nazwa tekstury, która ma być wczytana dla tej sekcji.
Wpisanie "empty" zamiast nazwy pliku spowoduje, że dana tekstura nie będzie wczytywana wcale. To może być przydatne np. gdy chcemy wyłączyć numery burtowe w jakimś miejscu (przykładowo na statecznikach, gdy mamy tam dużą customową grafikę). Usunięcie całej linijki kodu spowoduje wczytanie standardowej tekstury dla danej sekcji. Dlatego jeśli chcemy wyłączyć daną teksturę musimy użyć "empty".

livery = {
{"nazwa sekcji", nr lub rodzaj warstwy ,"nazwa tekstury", wartość "false" lub "true"};
}
name = "Nazwa Folderu"
countries = {"SKRÓT KRAJU 1", "SKRÓT KRAJU 2"}
Na końcu linijki jest wartość "true" lub "false":

"True" oznacza, że plik o konkretnej nazwie ma być pobierany z domyślnego folderu lub pliku zip dla danego modułu najczęściej znajdującego się w "...\DCS World OpenBeta\CoreMods\aircraft\<moduł>\Textures\". Tam znajdują się podstawowe tekstury modułu, dlatego grając online nie posiadając u siebie zainstalowanego przez kogoś innego skina widzimy właśnie te skiny wczytane z domyślnej lokalizacji.

"False" oznacza, że plik jest unikatowy i znajduje się albo w tym samym katalogu, w którym znajduje się dany "description.lua" albo w innym folderze jeśli prócz nazwy pliku podamy ścieżkę do niego.
Podanie konkretnej lokalizacji umożliwia nam zatem wczytanie tekstur dla wielu skinów z jednego miejsca. Powiedzmy, że w jakiejś grupie każdy pilot ma swój zmodyfikowany eskadrowy skin, który różni się jedynie pewnym elementem na jednej z tekstur. Nie musimy wówczas kopiować całego folderu i tworzyć nowych katalogów dla poszczególnych pilotów dublując pliki i zwiększając niepotrzebnie wagę paczki malowań całej eskadry. Możemy powtarzające się tekstury wczytać ze wspólnego katalogu eskadry lub z domyślnego dla modułu.



przykłady:

Code: Select all

{"F18C_BORT_NUMBER_NOSE_L_100", ROUGHNESS_METALLIC ,"F18C_1_DIF_RoughMet",true};
:arrow: oznacza, że dla miejsca "F18C_BORT_NUMBER_NOSE_L_100" jest wczytywany standardowy plik rodzaju ROUGHNESS_METALLIC o nazwie "F18C_1_DIF_RoughMet" znajdujący się w folderze z domyślnymi teksturami modułu.

Code: Select all

{"F18C_BORT_NUMBER_NOSE_L_100", DECAL ,"F18C_BORT_NUM_ITAL_RIGHT_LINE_A",false};
:arrow: oznacza, że dla miejsca "F18C_BORT_NUMBER_NOSE_L_100" ma być wczytany customowy plik rodzaju DECAL o nazwie "F18C_BORT_NUM_ITAL_RIGHT_LINE_A", który znajduje się w tym samym katalogu co dany "description.lua"

Code: Select all

{"F18C_BORT_NUMBER_NOSE_L_100", 13 ,"../VFA-313/F18C_1_DIF_RoughMet",false};
:arrow: oznacza, że dla miejsca "F18C_BORT_NUMBER_NOSE_L_100" jest wczytywany plik rodzaju ROUGHNESS_METALLIC (tutaj oznaczony skrótowo nr 13) o nazwie "F18C_1_DIF_RoughMet" umieszczony w katalogu o nazwie "VFA-313" znajdującego się obok w "Liveries\<moduł>".


Jeśli jakaś tekstura o konkretnej nazwie nie będzie znajdować się w podanym miejscu, wówczas DCS wczyta charakterystyczny zielony digital camo.

livery = {
{"nazwa sekcji", nr lub rodzaj warstwy ,"nazwa tekstury", wartość "false" lub "true"};
}
name = "Nazwa Folderu"
countries = {"SKRÓT KRAJU 1", "SKRÓT KRAJU 2"}
Name = tu wpisujemy nazwę folderu, w którym znajduje się ten "description.lua". Pod tą nazwą skin będzie widoczny na liście w payloads.

livery = {
{"nazwa sekcji", nr lub rodzaj warstwy ,"nazwa tekstury", wartość "false" lub "true"};
}
name = "Nazwa Folderu"
countries = {"SKRÓT KRAJU 1", "SKRÓT KRAJU 2"}
Countries = tu można wymienić nacje, dla których skórka ma być dostępna. Na przykład jeśli nasza skórka ma być dostępna jedynie dla USA i załóżmy Kanady to wpisujemy tam trzyliterowe skróty nazw krajów USA i CAN.

przykład:

Code: Select all

countries = {"USA", "CAN"}

Jeśli macie jakieś uwagi do tego co napisałem to śmiało. :)

User avatar
Wikary
Moderator
Posts: 1059
Joined: 2018-11-11 10:35
Contact:

Flights: 136 (356hs)
Specialized in: F/A-18C



Gildia Marshaller

PLMB Pilot

VMFA-117 Commanding Officer

Tegom chciał.

Image

Informacje o statusie rekrutacji dostępne na stronie eskadry
VMFA - 117 Mighty Wombats
User avatar
Torres
Posts: 60
Joined: 2019-10-20 20:32

Flights: 79 (196hs)
Specialized in: F-16C



Gildia Instruktor

333 Pilot

Countries = tu można wymienić nacje, dla których skórka ma być dostępna. Na przykład jeśli nasza skórka ma być dostępna jedynie dla USA i załóżmy Kanady to wpisujemy tam trzyliterowe skróty nazw krajów USA i CAN.

przykład:
KOD: ZAZNACZ CAŁY

countries = {"USA", "CAN"}

Fajnie natomiast należy dodać jak nie wpiszemy nazwy kraju skin będzie dostępny dla każdej nacji 👍

Intel Core i9-9900K, RTX 2080 Ti,32GB DDR4 RAM,1TB M.2 SSD, MSI Z390-A PRO ATX
Poko



paulek wrote: 2020-07-14 10:26Fajnie natomiast należy dodać jak nie wpiszemy nazwy kraju skin będzie dostępny dla każdej nacji 👍
Racja. Można usunąć tą całą linijkę lub "wykomentować" dodając dwa myślniki "--" z przodu. Pisał już o tym Bartek tutaj: viewtopic.php?f=93&t=3288

User avatar
Glow
Posts: 135
Joined: 2019-08-29 23:09




Gildia Spotter

Gilda Post

Dobra robota! Wreszcie mamy dokumentację.

Dwie rzeczy:

#1 Warstwa DECAL

Sposób na dodawanie oznaczeń samolotów na osobnej warstwie, teksturze (napisy, szachownice, numery, itd.) Tego chyba szukacie. Widziałem to w MB339, nie sprawdzałem jak źle/dobrze to działa ale jest i działa. W modzie MB339 malowanie "Factory", ta tekstura ma 8Mpixeli i waży 3MB. Przy eskadrze nawet 16 samolotów, 16 x 3MB = 48MB - do zaakceptowania.

Większość ludzi robi malowania konkretnej, jednej maszyny, a nie całej eskadry podobnych maszyn. Dlatego oznaczenia są nanoszone na teksturę z malowaniem. Przy malowaniu całej eskadry, można to rozdzielić, podobnie jak to jest z generowanymi numerami bocznymi.

Nie sprawdzałem czy jest to możliwe na innych samolotach. Zawsze można cisnąć autorów modułów o update w tym kierunku.

Ta tekstura nie musi mieć 8Mpix. Przypuszczam że do nicka i logo pilota na dziobie czy stateczniku, wystarczy dobrze przygotowana 2Mpix.


#2 Mipmapy i kompresja dds

Czyli przygotowanie tekstury tak, aby kompresja nie zrobiła artefaktów.

Należy sprawdzić mipmapy już po kompresji w dds. Czasem malowanie wygląda dobrze tylko na dwóch dużych mapach, w mniejszych już są artefakty. Plus współdziałanie w połączeniu z innymi warstwami tekstur do obsługi światła.

Należy sprawdzać swoje malowania w warunkach mgły i na rożnych odległościach aby ocenić poprawność kompresji mipmap w połączeniu z wszystkimi innymi warstwami na modelu już w samym symulatorze. Najlepiej również na niższych ustawieniach graficznych. Nie ograniczać się do podglądu w ModelViewer.

Czasem brakuje mipmaps w plikach dds, albo są to tekstury w formacie jpg, tga, bmp lub podobnym, więc należy się spodziewać problemów typu zacięcia, lagi, spadki fps zwłaszcza na starszych kartach. Przy jednoczesnym doczytywaniu wielu takich źle przygotowanych tekstur, być może nawet rozłączenia z serwerem i CTD.

Problem można zaobserwować przy zmianie takich tekstur na modelu w okienku podglądu, w ME. Nawet na szybkim PC zabiera to chwilę.

Na koniec dochodzi jeszcze wiedza o tym jak inne modele kart graficznych radzą sobie z naszymi teksturami. Testy na innych pc.

DDSy z mipmapami są chyba jednak najbezpieczniejszym rozwiązaniem.

Poko



Dobry post. Faktycznie można to tak zrobić. Muszę się pobawić warstwą DECAL w takim razie.
Glow wrote: 2020-07-14 13:13 DDSy z mipmapami są chyba jednak najbezpieczniejszym rozwiązaniem.
Amen! Konieczny tylko exporter, np. najlepiej od nVidii zamiast Intela jako plugin do photoshopa lub oddzielny programik: https://developer.nvidia.com/nvidia-tex ... s-exporter

User avatar
Glow
Posts: 135
Joined: 2019-08-29 23:09




Gildia Spotter

RAPORT:
Warstwa DECALS na modelu "F/A-18C Lot 20"

Mamy dostęp do numerów, które można zmieniać dowolnie jak każdą teksturę.
Problem jest w pozycji i wielkości tych tekstur na modelu, jak przeczytałem na forum.eagle.ru, pozycje są zakodowane "na twardo" w modelu. Nie mamy ułatwionego dostępu do tych parametrów.

Czy można to zrobić inaczej? Prawdopodobnie tak ale wystąpi więcej problemów np. integrity check. Nie sprawdzałem dalej.

(Kliknij na obrazku otwórz w nowej zakładce / oknie dla większej rozdzielczości.)

W DCS mamy więc numery:

Image

Pomysł:
Wprowadzając w edytorze numer 8888 na modelu wyświetlają się ósemki. Nic nie stoi na przeszkodzie aby zamiast ósemki na teksturze dać np. oznaczenia eskadry lub cokolwiek innego, awatary, osobiste logo pilota, itp. Ograniczeniem jest 10 cyfr, od 0 do 9 na warstwie ale można użyć kilka takich tekstur nawet dla jednego samolotu. W jednym miejscu ustawić zamiast cyfry 8 odznakę eskadry, np na stateczniku a na kadłubie zamiast 8 mieć osobiste logo.

Rozmiar tego pliku 616KB na dziewięć odznak. Czyli 16 pilotów w eskadrze, po dwa elementy na pilota daje 4 pliki po 615KB = 2.5MB w paczce, 40 odznak. 25MB przy 10 eskadrach, 400 odznak. Pliki można zrobić niezależne od malowań i instalować przez OvGME na inne malowania lub używać bez malowań.

Efekty:

Image

Image

Image



Ustawienia średnio-niskie z rozdzielczością 1680x1050 dla lepszego zobrazowania jakości.

Nie wszystkie miejsca muszą być wykorzystywane jednocześnie, niepotrzebne można ustawić puste.

Miejsca dla F18 to:

- dziób duże z obu stron prawa i lewa, zresztą jak wszystkie nawet komora podwozia;
- dziób małe poniżej
- drzwi komory przedniego koła
- statecznik pionowy duże
- statecznik pionowy małe
- statecznik pionowy na samej górze małe
- bok silnika małe
- klapa skrzydła małe

Co ciekawe, jak widać to na zrzutach ekranu, można zachować numery razem z odznaczeniami, można rozdzielić. Każdy numer może być czytany z innej tekstury "decals". Numer wbity w edytorze to 1234567890.

Image

Image

Image

Image


Lekki bałagan z odznaczeniami, eksperymentowałem, to wszystko tylko dla zobrazowania co można mieć. Tekstury również wymagają większej precyzji przy układaniu na szablonie aby nie wyglądały na pocięte na modelu.

Taka tekstura z odznakami czy numerami nie różni się chyba między modułami, więc łatwo ją kopiować do innych samolotów i helek.

Jakość tych oznaczeń jest wyraźnie lepszej jak jakość tekstur na modelu, które podlegają kompresji w .dds oraz są zależne od ustawień w menu grafiki. To plik .tga ale oznaczenia dostają prawdopodobnie inny zewnętrzny RoughMet.

Image

Jeszcze się zastanawiam czy lokalizacja tych miejsc jest zależna od narodowości ustawionej w menu. Wygląda że nie jest dla F/A-18C, sprawdziłem, być może zależy od producenta modułu DCS, w innych modułach może być inaczej.

Warto rzucić okiem na darmowego MB339, gdzie decays są na warstwie 8x8 MPix. Szkoda że wszystkie moduły nie mają takiej ekstra warstwy, może kiedyś się to zmieni. Nie ma ograniczonych miejsc na ich pokazywanie na modelu, samolot czyta całą warstwę naraz.

Ciekawostka: Arma3 ma możliwość czytania takiej warstwy z godło eskadry bezpośrednio z linka.


Linki do paczki z przykładowym malowaniem

Linki na Sharemods.com więc mogą wyskakiwać okna z reklamami przy ściąganiu.

To tyle, mam nadzieję że się przyda.

Poko



Wczoraj właśnie się bawiłem tymi warstwami "decal" w Hornecie i też niestety z przykrością stwierdzam, że nie da się dodać takiej warstwy gdziekolwiek – tylko w wyznaczonych przez EDków powierzchniach.

User avatar
spartan
Posts: 9
Joined: 2020-12-01 15:43




Gildia Spotter

Co jest nie tak:
livery = {
{"mig29_tex1", 0 ,"mig-29_tex01_pol",false};
{"mig29_tex2", 0 ,"mig-29_tex02_pol",false};
{"mig29_tex3", 0 ,"mig-29_tex03_pol",false};
{"mig29_tex4", 0 ,"mig-29_tex04_pol",false};
{"mig29_tex5", 0 ,"mig-29_tex05_pol",false};
{"mig29_tex5_BN31", 0 ,"mig-29_tex05_pol",false};
{"mig29_tex5_BN31", 3 ,"empty",true};
{"mig29_tex5_BN32", 0 ,"mig-29_tex05_pol",false};
{"mig29_tex5_BN32", 3 ,"empty",false};
{"mig29_tex6", 0 ,"mig-29_tex06_pol",false};
{"mig29_tex7", 0 ,"mig-29_tex07_pol",false};
{"mig29_tex8", 0 ,"mig-29_tex08_pol",false};
{"mig29_metal", 0 ,"mig-29_metal",true};
{"mig29_nose", 0 ,"mig-29_nose_pol",false};
{"mig29_nose_BN31", 0 ,"mig-29_nose_pol",false};
{"mig29_nose_BN31", 3 ,"empty",true};
{"mig29_nose_BN32", 0 ,"mig-29_nose_pol",false};
{"mig29_nose_BN32", 3 ,"empty",true};
{"pilot_mig29_body", 0 ,"pilot_MiG",false};

}
name = "Polish SPARTAN"
countries = {}






Image


---------------------------------------------------------------------------------------------
livery = {
{"mig29_tex1", 0 ,"mig-29_tex01_pol",false};
{"mig29_tex2", 0 ,"mig-29_tex02_pol",false};
{"mig29_tex3", 0 ,"mig-29_tex03_pol",false};
{"mig29_tex4", 0 ,"mig-29_tex04_pol",false};
{"mig29_tex5", 0 ,"mig-29_tex05_pol",false};
{"mig29_tex5_BN31", 0 ,"mig-29_tex05_pol",false};
{"mig29_tex5_BN31", 3 ,"mig-29_numbers_pol",false};
{"mig29_tex5_BN32", 0 ,"mig-29_tex05_pol",false};
{"mig29_tex5_BN32", 3 ,"mig-29_numbers_pol",false};
{"mig29_tex6", 0 ,"mig-29_tex06_pol",false};
{"mig29_tex7", 0 ,"mig-29_tex07_pol",false};
{"mig29_tex8", 0 ,"mig-29_tex08_pol",false};
{"mig29_metal", 0 ,"mig-29_metal",true};
{"mig29_nose", 0 ,"mig-29_nose_pol",false};
{"mig29_nose_BN31", 0 ,"mig-29_nose_pol",false};
{"mig29_nose_BN31", 3 ,"empty",true};
{"mig29_nose_BN32", 0 ,"mig-29_nose_pol",false};
{"mig29_nose_BN32", 3 ,"empty",true};
{"pilot_mig29_body", 0 ,"pilot_MiG",false};

}
name = "Polish SPARTAN"
countries = {}
Image



Jak zlikwidować te numery taktyczne w pliku description.lua

User avatar
spartan
Posts: 9
Joined: 2020-12-01 15:43




Gildia Spotter

No cóż nie było pomocy ale temat sam rozwiązałem.


Image

User avatar
Czart
Posts: 88
Joined: 2018-06-18 14:29

Flights: 20 (38hs)
Specialized in: F/A-18C



Gildia Pilot

Czy jest możliwość edytować odległości między cyframi w numerach burtowych?
W MiG-21 odstęp między nimi jest zdecydowanie za duży.

W powietrzu są tylko myśliwce reszta to cele powietrzne.
User avatar
Mentos
Posts: 24
Joined: 2020-01-04 16:15

Flights: 16 (88hs)
Specialized in: MiG-21bis



Gildia Pilot

SGPSz Pilot Mi17

Niestety miejsca numerów burtowych nie można zmieniać ani przenosić w żadnym samolocie. Możesz po prostu usunąć bortnumber i na malowaniu wpisać numer burtowy. Ale wtedy nie będzie on zmienny tylko stały.
Możesz spróbować zwiększyć czcionkę lub zmienić na inną:
Image

Post Reply