Efekt kreskówki
dAde, Pią, 2005-04-08 20:26 Quake 3 Arena | Tutoriale | RadiantZastanawialiście się jak otrzymać efekt "kreskówkowy" na mapkach? Przykładem może być moja mapka - dAde_X:

Technika uzyskania takiego efektu jest bardzo prosta. Ydnar do swojego kompilatora q3map2 dodał funkcję tzw. "cel shadingu" (jeśli ktoś jest zainteresowany na czym dokładnie polega ów efekt zapraszam na stronę GameDev.net). W uproszczeniu zasada działania "cel shadingu" w Q3 polega na dodaniu do każdej "ściany" na mapie ściany dodatkowej, pokrytej czarną teksturą, nieco oddalonej i odwróconej o 180o względem oryginału - w ten sposób powstaje złudzenie optyczne: całe otoczenie wokół wydaje się być obrysowane ołówkiem. Oczywiście nie jest to rozwiązanie idealne, a największą z wad tej techinki to wydajność - ilość wyświetlanych w danej scenie obiektów wzrasta dwukrotnie.
Zostawmy sprawy techniczne i przejdźmy do meritum czyli "jak to zrobić". To czego potrzebujecie, to odpowiedni shader, wspomniany wcześniej kompilator (jest on standardowym kompilatorem w nowszych wersjach Radianta), a także chwilka czasu.
Oto treść shadera, zapiszcie go np. do pliku cel.shader:
// ink shader for maps
// to use, add "cel" to shaderlist.txt
// add a "_celshader" key to worldspawn entity with a value of "cel/ink"
textures/cel/ink
{
qer_editorimage gfx/colors/black.tga
q3map_notjunc
q3map_nonplanar
q3map_bounce 0.0
q3map_shadeangle 120
q3map_texturesize 1 1
q3map_invert
q3map_offset -2.0
surfaceparm nolightmap
surfaceparm trans
surfaceparm nonsolid
surfaceparm nomarks
sort 16
{
map gfx/colors/black.tga
rgbGen identity
}
}
Wrzucamy go do folderu ../baseq3/scripts, następnie dopisujemy jego nazwę do pliku "shaderlist.txt". Kolejny etap, to robienie mapki w Radiancie...
Robimy z założenia normalną mapkę. Aby zastosować celshading, zaznaczamy dowolnego, zwykłego brusha, klikamy literkę N na klawiaturze i otwiera nam się okienko - "ViewEntityInfo". Interesują nas dwa pola - "key" i "value". Odpowiednio wpisujemy do pól:
key - _celshader
value - cel/ink
i zatwierdzamy.
Gotowe! Teraz wystarczy skompilować mapkę. Należy liczyć się z tym, że mapka może się kompilować "trochę" dłużej ;), a także, że jej rozmiar zwiększy się... jakoś dwukrotnie (albo więcej) w porównaniu do takiej samej mapki. Jeżeli efekt nie działa tak jak powinien upewnijcie się czy przy kompilator był uruchamiany z parametrem -meta.




