[Radiant] Oświetlenie

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

Moderator: peter_spy

Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

[Radiant] Oświetlenie

Post autor: Dziarsky »

Wielokrotnie podczas gry w Doom3 spotykałem się z sytuacją gdy światło padające przez kratę rzuca cień "w kratkę" na przeciwną ścianę.

Z tego co zauważyłem to kratą tą była zwykła tekstura z transparentem.

Próbowałem w edytorze powtórzyć tę sytuację: światło -> powierzchnia z teksturą kraty -> powierzchnia ze zwykłą teksturą. Tak jak się podziewałem światło traktuje taką teksturę jak przeźroczystość i oświetla w całości finalną powierzchnię. Musiano posłużyć się innym trikiem.

Da się taki efekt cienia w kratę uzyskać przy pomocy projected_light i dostępnej nakładki przypominającej kratę ale wadą tego jest to, że takie światło czasem nie jesteśmy w stanie umieścić tak jak potrzebujemy.
Przykładowo w ścianie z kraty mamy otwory. Światło powinno w miejscu kraty rzucać jej cień a w miejscu otworów już nie. Przy pomocy jednego projected_light uzyskać się już tego nie da (chyba) a stosowanie kilku zazwyczaj nie daje jednolitego efektu.

Czy da się tak podzielić "stelaż" jednego projected_light by powierzchnią padania nie był tylko kwadrat ale i inne geometryczne figury ?
Czy może jednak istnieje możliwość zmuszenie światła do respektowania tekstur krat ?
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2776
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Juliusz »

Hmmm... nie wiem, czy dobrze zrozumiałem - chodzi o to, że Twoja krata, która ma rzucać cień, nie jest jednolicie "kraciasta", bo ma jakieś tam otwory, a tekstura, którą przypisujesz światłu typu projected jest jednolita, tak? Uwtórz zatem nową teksturę, która odpowiada danemu fragmentowi kraty. Po prostu narysuj taki cień, jakiego się spodziewasz.
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Czyli jest to jedyna metoda czy tylko pewne rozwiązanie?
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2776
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Juliusz »

Engine dooma3 na pewno nie oblicza cieni z kanałów alpha, więc wszelkie efekty typu (miękki) cień przechodzący przez kraty czy okna są uzyskiwane poprzez odpowiednią teksturę w światłach typu projected (nie wiem, jaki jest polski zgrabny odpowiednik...). Musisz oczywiście zrobić taki kształt cienia, który wizualnie pasuje do przedmiotu, który ma go rzucać.

Zapodaj może jakiegoś screena, żebym miał pewność, że mówimy o tym samym...
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Tak, mówimy o tym samym.

ps. wiecie gdzie znajdę tutka jak się robi tekstury z przeźroczystością, takie np. kraty ?
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2776
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Juliusz »

Najprościej jakieś kraty zrobić tak, że bierzesz jakąś taksturę metalu i poprawiasz ją kolorystycznie wedele uznania. Następnie robisz kanał alpha - weź zakoloruj osobną warstwę na czarno, a białymi liniami narysuj swoje kraty. Daj tej warstwie tryb nakładania Multiply - tam gdzie było białe pojawi się tekstura metalu.

Teraz wejdź do zakładki Channels (mówię o Photoshopie - nie wiem, jak to jest w innych programach) i utwórz nowy kanał (domyślna nazwa jest dobra - Alpha 1) i wklej sam ten czarnobiały obrazek.

Możesz zrobić także normal mapę - skopiuj warstwę z cz/b. kratami i przekonwertuj filtrem nvidii - daj może większe rozmycie (np. 5x5), żeby ładne okrągłości wyszły.
Na to obrazek w skali szarości (jakieś nierówności) przepuść też tym filtrem - ale dokładnij i delikatniej i nanieś nad w.w. warstwę w trybie Overlay - powinieneś mieć teraz okrągłości kraty plus nierówności metalu.

Specluar mapa to również obrazek w skali szarości - możesz użyć tego samego, co do robienia nierówności.

Zapisz tekstury jako .tga:
- metal z czarnymi lukami w trybie 24 bitów: jako nazwa.tga - to będzie tekstura widoczna w edytorze (opcjonalne)
- sam metal (bez wastwy Multiply, żeby nie pojawiała się czerń na granicy przezroczystości) w trybie 32 bitów (czyli z kanałem alpha) - nazwa_d.tga - to będzie tekstura widoczna w grze.
- normal mapa - tga 24 bity - nazwa_local.tga
- specular mapa - tga 24 bity - nazwa_s.tga


Materiał by wyglądał mniej więcej tak:

Kod: Zaznacz cały

ścieżka/dostępu/do/tekstury/nazwa
{
metal

qer_editorimage ścieżka/dostępu/do/tekstury/nazwa.tga

{
blend diffusemap
map             ścieżka/dostępu/do/tekstury/nazwa_d.tga
alphatest 0.5
}

bumpmap     ścieżka/dostępu/do/tekstury/nazwa_local.tga
specularmap ścieżka/dostępu/do/tekstury/nazwa_s.tga

}
Natomiast teksturę do map dla świateł - po prostu rozmyj tą warstwę czarno białą trochę. Jeśli cień ma padać na podłogę (powierzchnię prostopadłą), a nie na ścianę (pow. równoległą) to możesz bardziej rozmyć górną część, która będzie rzutowana dalej - w ten sposób zasymulujesz rozmycie cienia wraz z odległością.

Kurcze - chciałem dwa zdania napisać... a tylko obrazków jeszcze brakuje... ;)

Mam nadzieję, że zadziała, bo pisałem na sucho - bez sprawdzania.
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Juliusz pisze:Daj tej warstwie tryb nakładania Multiply - tam gdzie było białe pojawi się tekstura metalu.
Gdzie się nadaje ten tryb Multiply ?
Juliusz pisze:Teraz wejdź do zakładki Channels (mówię o Photoshopie - nie wiem, jak to jest w innych programach) i utwórz nowy kanał (domyślna nazwa jest dobra - Alpha 1) i wklej sam ten czarnobiały obrazek.
I co dalej. Zapisać to jako *_d.tga z warstwą tekstury i kanałem alpha ?
Juliusz pisze:Możesz zrobić także normal mapę - skopiuj warstwę z cz/b. kratami i przekonwertuj filtrem nvidii - daj może większe rozmycie (np. 5x5), żeby ładne okrągłości wyszły.
Na to obrazek w skali szarości (jakieś nierówności) przepuść też tym filtrem - ale dokładnij i delikatniej i nanieś nad w.w. warstwę w trybie Overlay - powinieneś mieć teraz okrągłości kraty plus nierówności metalu.
Za duży skrót. tego nie kumam. Co to jest to Overlay (mam photoshopa pl)?
Mam zrobić normal dla tych krat i dla tekstury i jakoś to scalić by na białej części kraty dodany był efekt normal z tekstury ?
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2776
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Juliusz »

Zrobię dzisiaj jakieś zrzuty, to będzie jaśniej.

[ Dodano: 12 Listopad 06, 17:13 ]
Kurcze, nie mam za bardzo czasu, żeby przysiąść i zrobić z tego jakiś zgrabny tutorial ze zrzutami (a w sieci nie kojarzę, choć są zapewne jakieś - sprawdź tą stronę: http://www.doom3world.org/phpbb2/viewtopic.php?t=3017).
Postaram się zatem słownie coś wyjaśnić:
Dziarsky pisze:Gdzie się nadaje ten tryb Multiply ?
Jak masz zakładkę Warstwy to pierwsze "coś" pod słowem Warstwy to jest właśnie tryb nakładania kolejnych warstw na siebie. Multiply jest u mnie czwarte od góry (drugie pod pierwszą kreską)

Dziarsky pisze:I co dalej. Zapisać to jako *_d.tga z warstwą tekstury i kanałem alpha ?
Tak, napisałem zresztą o tym dalej - wszystkie mapy zapisujesz jako TGA 24bity, tylko tą mapę diffuse, która pojawi się w grze zapisujesz jako 32 bity - czyli z kanałem Alpha 1.

Za duży skrót. tego nie kumam.
Sorka, normal mapy wspomniałem szybko, bo to nie istota tego tutorialu, który miał być bardziej o cieniach...

Dziarsky pisze:Co to jest to Overlay (mam photoshopa pl)?
Nie wiem, jak to będzie po polsku - (wg. słownika nakładka przezroczysta...?). Ideą tego jest to, że nie zmienia się jasność całego obrazka - a więc możesz łączyć normal mapę dla okrągłości krat z normal mapą dla nierówności metalu.
U mnie jest on 11 od góry (1szy pod trzecią kreską) na liście trybów nakładania się warstw.
Dziarsky pisze:Mam zrobić normal dla tych krat i dla tekstury i jakoś to scalić by na białej części kraty dodany był efekt normal z tekstury ?
Tak, robisz 2 normale obydwa korzystając z filtra nVidii. Normal dla krat robisz na podstawie tej czarnobiałej warstwy, którą robiłeś na początku (i którą wykorzystałeś do kanału Alpha1). Skopiuj ją oczywiście, żeby nie stracić. Żeby brzgi były zaokrąglone dajesz większe samplowanie, np. 5x5 (zakładam, że masz ten filtr nVidii, tak?)

drugi normal robisz wykorzystując jakąś czarnobiałą teksturę z nierówną, organiczną strukturą, pasującą do nierówności metalu. Tu zależy nam na detalu, więc samplowanie dajesz na 4. Skala może być mała.

I teraz tak - masz dwie normal mapy. Daj np. kraty pod spód (tryb nakładania Normal), a nierówności powyżej i tryb nakładania Overlay - czyli ta Nakładka czy jak tam po polsku. Powinny się pojawić na kratach bez rozjaśniania lub ściemniania całości obrazka.
Nie przejmuj się, jeśli nierówności są pomiędzy kratami - silnik i tak ich nie wyrenderuje.


Mam nadzieję, że teraz brzmię jaśniej. :)
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Mam filtr nvidii. Tekstury z normal mapą i błyszczeniem do doom3 już robię od jakiegoś czasu i działają (oczywiście zabawy z normal map jest co nie miara bo nie zawsze się "wybrzusza" w dobrą stronę :) ).
Pomęczę twoje opisy i może uda mi się coś zdziałać. Dzięki za pomoc.

EDIT:

Odnośnie pliku *_d.tga
Mam mieć warstwę z teksturą i kanał alfa z "kratą" ale tą kratę mam skopiować z innej zrobionej warstwy w pliku? Ta warstwa ma zostać przy zapisywaniu ? ma być wyżej czy niżej tej warstwy z teksturą i te multiply robię dla tej warstwy z teksturą ?
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2776
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Juliusz »

Dziarsky pisze:Odnośnie pliku *_d.tga
Mam mieć warstwę z teksturą i kanał alfa z "kratą" ale tą kratę mam skopiować z innej zrobionej warstwy w pliku? Ta warstwa ma zostać przy zapisywaniu ? ma być wyżej czy niżej tej warstwy z teksturą i te multiply robię dla tej warstwy z teksturą ?
Ta czarnobiała warstwa z kratami ma być wyżej niż tekstura metalu i właśnie tej cz.b. przypisujesz Multiply - efektem tego jest zaczernienie luk pomiędzy kratami - i takie coś możesz zapisać jako nazwa.tga - jako tekstura wyświetlana w edytorze.

Trzymanie tej warstwy ma znaczenie głównie dla łatwości pracy. Równie dobrze mógłbyś kanał alpha edytować mając go zaznaczonego w zakładce Kanały - tam byś mógł rysować te białe kraty na czarnym tle. Ale mając je na osobnej warstwie daje Ci to więcej możliwości, bo możesz wykorzystywać ją do różnych celów.

Dlatego zostaw ją w roboczym pliku PSD. Natomiast zapisując plik nazwa_d.tga lepiej ją zrobić niewidoczną. Jeśli będzie widoczna, to tekstura metalu na krawędziach z przezroczystością będzie czarna, co da nieporządaną czarną obwódkę. Jeśli chcesz jednak, żeby plik _d.tga nie był jednolicie metalowy, tylko miał te kraty jakoś zaznaczone, to daj te czarne przerwy przezroczyście (Krycie mniejsze niż 100) albo w jednolitym kolorze - byleby nie odróżniały się wielce od metalu. (żeby zapobiec efektowi ramki).
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Mam dodatkowe pytanie odnośnie światła.
Czy da się przy pomocy projected light (czy inaczej) uzyskać źródło światłą w postaci płaszczyzny ? Znaczy by nie punkt był światłem ale np. powierzchnia prostokąta.
Jest dodatkowe miejsce w projected_light "explicit start/end point" ale nie wiem czy to to i nie mumie tego obsługiwać.

Chcę zrobić światło o brzegach sześcianu ale by źródłem światła nie był punkt w środku ale powierzchnia jednego boku.
Obrazek
Awatar użytkownika
Bukary
Homo Rhetoricus
Posty: 5569
Rejestracja: 12 sierpnia 2002, 18:15
Lokalizacja: Gildia Topielników (przy tawernie Pod Rozszalałym Wichrem)

Re: [Radiant] Oświetlenie

Post autor: Bukary »

Dziarsky pisze:Chcę zrobić światło o brzegach sześcianu ale by źródłem światła nie był punkt w środku ale powierzchnia jednego boku.
Nie za bardzo wiem, o co ci chodzi. Tu masz o rodzajach świateł:
http://www.quake3bits.com/htm/tutorials ... utdoor.htm
Jak chcesz np., żeby część ściany była oświetlona i światło miało kształt prostokąta, używasz projected light i ustawiasz sobie wedle woli parametry X, Y i Z w oknie Inspektora Światła [J].
Thief Antologia PL: od 20 X 2006 w sklepach!
Zagraj w FM Old Comrades, Old Debts i zobacz moje zrzuty.
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Bukary pisze:Jak chcesz np., żeby część ściany była oświetlona i światło miało kształt prostokąta, używasz projected light i ustawiasz sobie wedle woli parametry X, Y i Z w oknie Inspektora Światła [J].
Tak ale to dotyczy powierzchni padania a mi chodzi o źródło.

Narysowałem przykład. Sorki, że taki słaby ale się spieszyłem :) Rzuty z góry.
Obrazek
Tutaj światło to punkt i cień z granatowych kolumn będzie się rozchodził na boki.

Obrazek
To chcę uzyskać. Linię albo płaszczyznę światła, gdzie padający cień będzie prostopadły.

Czy da się w projected_light wierzchołek (punkt) światłą zamienić w płaszczyznę, tak bym osiągnął zamierzony efekt.
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2776
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Juliusz »

Z linka podanego przez Bukarego wynika, że są w Doomie światła równoległe (czyli o takie, jakie Tobie chodzi), natomiast nie jestem pewien, czy można przypisać im teksturę. Jeśli nie, to spróbuj przesunąć źródło rzucania cienia jak najdalej poza obszar światła, tak, żeby cienie były w miarę lekko się rozchodzące - zawsze to jakiś kompromis.
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Juliusz pisze:natomiast nie jestem pewien, czy można przypisać im teksturę.
Być może nie trzeba przypisywać im tekstury.

Dodatkowe pytanie.
Czy jest w Radiancie tekstura, która zachowuje się jak ściana dla światła ale w grze widoczna nie jest ?
Obrazek
Awatar użytkownika
Juliusz
Złodziej
Posty: 2776
Rejestracja: 04 stycznia 2004, 11:28
Lokalizacja: Dublin
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Juliusz »

Dziarsky pisze:Czy jest w Radiancie tekstura, która zachowuje się jak ściana dla światła ale w grze widoczna nie jest ?
Pierwsze, co mi przychodzi do głowy to trik ze zwyczajną teksturą, ale kanałem alpha całym czarnym - tak więc traktowana by była jako normalna ściana, ale całkiem przezroczysta.
Awatar użytkownika
Dziarsky
Garrett
Posty: 4861
Rejestracja: 02 listopada 2003, 12:26
Lokalizacja: Gliwice
Kontakt:

Re: [Radiant] Oświetlenie

Post autor: Dziarsky »

Juliusz pisze:trik ze zwyczajną teksturą, ale kanałem alpha całym czarnym
Dobre, nie pomyślałem o tym. Dzięki :)
Obrazek
ODPOWIEDZ