• Imagine 3.0 - Kurs obsługi programu - część 3

31.08.2009 19:37, autor artykułu: Sławomir Folkman
odsłon: 3136, powiększ obrazki, wersja do wydruku,

Czym dla prawdziwego grafika i animatora byłyby wszelkie programy 3D, gdyby dysponowały tylko możliwością modelowania brył i ich prostego obrazowania? Ciekawostką, używaną od czasu do czasu. Jednym z ważniejszych powodów, które zdecydowały o tak znaczącej roli tej formy twórczości komputerowej jest możliwość nadawania bryłom realistycznie wyglądających materiałów, oświetlania ich czymś na kształt rzeczywistych świateł i - oczywiście - wykonywania im "zdjęć".

"Imagine" umożliwia bardzo zaawansowane definiowanie parametrów powierzchni obiektów, nakładanie na nie dowolnej ilości tekstur proceduralnych (matematycznych) i zwykłych bitmap, które mogą tworzyć nie tylko wzory kolorystyczne, ale i symulować przejrzystość, czy nierównomierność powierzchni.

Materiały wykonuje się w Edytorze Detali. Opcja Attributes w menu Functions umożliwia dopracowanie ostatecznego wyglądu obiektów poprzez definiowanie materiałów, zapisywanie ich na dysk, wgrywanie oraz - oczywiście - nakładanie ich na bryły. Aby wywołać Attributes Requester (z klawiatury F7), konieczne jest posiadanie jakiegokolwiek wybranego obiektu.

Czy macie jakieś własne grupy brył, wykonane podczas ćwiczeń z poprzednimi odcinkami kursu? Jeśli nie, zanim zaczniecie czytać dalszą część tego artykułu, przygotujcie sobie przykładowe grupy prostaków z pierwszego odcinka tego kursu. Wspólnie stworzymy dla nich dwa materiały - plastik i szkło. Są to bardzo wartościowe atrybuty, które na pewno nieraz przydadzą się w przyszłości. Wybierzcie w Edytorze Detali jakiś pojedynczy obiekt, który według was może być wykonany z plastiku, a następnie wywołajcie panel atrybutów. Waszym oczom ukaże się ekran podobny do tego na obrazku.

Imagine
Panel atrybutów wygląda dość niepozornie, ale jego możliwości tworzenia materiałów wyglądających jak prawdziwe są prawie nieograniczone!

Na samej górze Attributes Requester podaje aktualną nazwę danego elementu (Obj Name). "Imagine" automatycznie nadaje domyślną nazwę każdemu nowostworzonemu obiektowi, numerując je w przypadku wystąpienia kilku brył tego samego typu (np. sphere, sphere.1, sphere.2). Jednak wskazane jest samodzielne nazywanie poszczególnych elementów, gdyż znacznie ułatwia to ich ewentualne wyszukiwanie. Zawsze lepiej jest wiedzieć, że to, czego szukamy, to np. lewe oko, a nie sphere.56. Aby to zrobić, należy kliknąć myszką na pasku obok Obj Name, usunąć starą nazwę i wpisać własną, co następnie należy potwierdzić enterem. Nazwy obiektów nadawane w requesterze atrybutów to nie jest to samo, co nazwy plików z obiektami na dysku (bo przecież jeden plik może zawierać większą ilość obiektów połączonych w grupę, a każdy element grupy nazywa się inaczej). Dlatego mogą one być zupełnie odmienne od siebie, choć nie jest to zalecane. Nazwy wewnętrzne "Imagine" zawierają maksymalnie 17 znaków i w miarę możności przynajmniej nazwy obiektów-matek powinny być zbliżone do odpowiadających im nazwom plików na dysku, dzięki czemu unikniemy niepotrzebnych kłopotów przy pracy z większą ilością elementów.

Obok Obj Name znajduje się funkcja Randomize Colors. Nie będzie ona nam na razie potrzebna, ale aby zaspokoić waszą ciekawość wyjaśnię, że zaznaczenie tej opcji i wpisanie w mały requester o nazwie Random Seed, który się pojawi, dowolnej wartości liczbowej spowoduje, że wszystkie ścianki obiektu otrzymają przypadkowe kolory. Randomize Colors nie działa z takimi obiektami, jak Ground, Axis czy idealna kula, bo te nie posiadają ścianek.

Pierwszym atrybutem, który stworzymy, będzie plastik. Jednak zanim to uczynimy, małe wyjaśnienie. W panelu atrybutów znajdują się cztery suwaki. Trzy z nich - Red, Green i Blue - służą do wybierania poszczególnych składowych koloru według modelu barw RGB - czerwonego, zielonego i niebieskiego, dla takich opcji jak: Color, Reflect, Filter i Specular. Czwarty, Value, odpowiedzialny jest za wartości liczbowe w zakresie 0-255 dla takich opcji jak: Dithering, Hardness, Roughness i Shininess. Po lewej stronie każdego z nich znajdują się ponadto okienka umożliwiające precyzyjne ustawienie parametrów poprzez wpisywanie wartości liczbowych.

ImagineImagine
Posiadaczom wolniejszych maszyn „Imagine” ułatwia życie poprzez możliwość włączenia opcji QuickEdges lub Fastdraw, co znacznie przyspiesza pracę edytorów.

Najpierw wyznaczymy kolor naszego materiału. Po zaznaczeniu "krzyżykiem" guzika Color można za pomocą opisanych powyżej suwaków ustawić kolor powierzchni obiektu. Proponuję, aby był to czerwony. W tym celu przesuwamy do końca w lewo suwaki Green i Blue.

Są różne rodzaje plastików - jedne są matowe, inne połyskliwe i mają właściwości nieco odbijające. Nasz plastik będzie należał do tej drugiej grupy.

Za współczynnik odbicia światła - czyli tworzenie efektów lustrzanych - odpowiedzialna jest funkcja Reflect. Ustawiamy zatem poszczególne suwaki na wartości: 80, 80, 80.

Pomijamy Filter. Kolejna opcja, która nas w tej chwili interesuje, to Specular. Za jej pomocą definiuje się efekt odblasków występujących na obiekcie w momencie, gdy światło pewnej części swojego spektrum jest odbijane od obiektu bez pochłaniania. Podobnie jak i w wypadku trzech powyższych funkcji, tak i Specular reguluje się poprzez zmianę trzech składowych RGB. W tym wypadku będą to wartości: 255, 180 i 157.

Imagine
Aby obrazki wykonywane techniką ray-trackingu wyglądały ciekawiej, muszą posiadać odpowiednio stworzone materiały, nałożone na obiekty. Przykładowy obrazek wykonany w programie "Imagine".

Musimy teraz określić, w jaki sposób odblaski świetlne mają się rozkładać na powierzchni obiektów. W opcji Hardness przy mniejszych wartościach światło rozkłada się miękko, rozlewa na powierzchni obiektu, przy większych odblaski są mniejsze, ale za to ostrzejsze. I o takie nam właśnie chodzi. Przy pasku Value wpisujemy zatem 255 lub przeciągamy suwak do końca w prawo.

Być może zechcecie, aby niektóre plastikowe elementy były "chropowate". Tu z pomocą przyjdzie opcja Roughness. Czym większa wartość w linii Value, tym bardziej porowaty będzie obiekt po wyrenderowaniu. Funkcja Roughness jest bardzo przydatna w przypadku renderowania pojedynczych obrazków, ale pamiętajcie, że nie powinna być stosowana w animacjach, ponieważ dla każdej klatki porowatość jest generowana losowo. Uzyskany efekt będzie taki, jakby po obiekcie łaziło mnóstwo mrówek!

Brak nam jeszcze jednego parametru, aby materiał, który tworzymy, był stuprocentowym plastikiem - połyskliwość obiektu: Shininess. Tutaj z kolei wpisujemy 100.

Nasz plastik jest gotowy. Nie pozostaje teraz nic innego, jak zapisać na dysku stworzony materiał (do katalogu attribs/plastic pod nazwą czerwony.atr), a następnie obłożyć nim inne obiekty. Częste nadawanie tych samych atrybutów na różne elementy poprzez przepisywanie wartości poszczególnych opcji jest bardzo niewygodne, dlatego niezwykle przydatne okazują się guziki Load i Save w panelu atrybutów - pozwalają na zapisywanie na dysku i ponowne wgrywanie atrybutów wraz ze wszystkimi ustawieniami brushy i tekstur (ale oczywiście bez nazwy obiektu).

"Pokrywając" plastikiem inne elementy grupy obiektów, poeksperymentujcie z ustawianiem różnych kolorów, a także nadajcie niektórym elementom porowatość. Ponadto możecie część obiektów pozostawić wygładzonymi i zaokrąglonymi, a niektórym nadać strukturę ściankową (tak jak na oszlifowanym diamencie) - służy do tego opcja, o której pisałem już w poprzednim odcinku - Phong Shading (cieniowanie Phonga). Dla każdego obiektu jest domyślnie załączona i aby usunąć wygładzanie z bryły, należy opcję Phong wyłączyć.

Imagine
Panel ustawiania parametrów świateł. W „Imagine’ie” każdy dowolny obiekt może być lampą. W połączeniu z opcją Bright można tworzyć widoczne źródła światła.

Teraz zajmiemy się szkłem. Jest to bardzo przydatny materiał, choć dosyć trudny do uzyskania i wymaga kilku sztuczek, aby sprawiał wrażenie realistycznego. Na szczęście "Imagine" dosyć dobrze sobie z nim radzi. Szkłem można "pokryć", jakieś drobne elementy naszej grupy obiektów. A więc kolor: zwykłe szkło będzie miało wartości 0, 0, 0. Ponieważ jednak chcemy zrobić kolorowe szkło, może to być np. kolor niebieski (0, 0, 240).

W szkle konieczna jest przejrzystość, a więc używamy opcji Filter. Obiekty "Imagine’a" mogą być częściowo lub całkowicie przezroczyste. Poprzez tą funkcję można ustawić współczynniki przejrzystości dla poszczególnych składowych RGB. Im wyższa wartość, tym więcej światła danego koloru przenika przez bryłę. Aby obiekt stał się całkowicie przezroczysty, należy ustawić 255, 255, 255. Dobra przezroczystość wymaga dosyć wysokich wartości, przy małych efekt nie jest zbyt dobrze widoczny. Najlepsze rezultaty uzyskuje się poprzez stosowanie wartości z zakresu 180-255. Dla naszego szkła będzie to przejrzystość następująca: 0, 0, 240.

Kolejne opcje: Reflect - 50, 50, 55, Specular - 255, 255, 255, Hardness - 255.

Wykonując szkło nie można zapomnieć o współczynniku załamania światła przechodzącego przez obiekt - Index of Refraction. Obiekty z zastosowanym współczynnikiem zniekształcają leżący za nimi obraz, a bryły wykonane na wzór soczewek wraz z odpowiednimi atrybutami naprawdę powiększają! Im większy współczynnik, tym większe ugięcie światła. Wartość 1,0 oznacza brak załamania i tak jest w powietrzu. Natomiast 2,9 to niemalże nierzeczywiste załamanie światła. Dla szkła współczynnik ten wynosi 1,5. Index of Refraction stosuje się tylko w przypadku korzystania z opcji przezroczystości obiektów, inaczej nie uzyska się zamierzonego efektu.

Rodzaj szkła, które właśnie skończyliśmy przygotowywać, jest jednym z wielu możliwych do uzyskania. Nadajcie teraz ten atrybut innym małym elementom i wykonajcie Quick Render. Jeśli szkło będzie zbyt mało widoczne, zmieńcie kolor tła w ustawieniach programu (menu Project/Preferences, strona Misc, linia BGRD - background color).

Imagine
Na obiekty można nakładać m.in. zwykłe obrazki w formatach Targa, TIFF i IFF ILBM. Nie powinno być zatem kłopotów z umieszczeniem w "wirtualnym świecie Imagine’a" uprzednio zeskanowanej swojej podobizny, czy też własnoręcznego "wiekopomnego dzieła" narysowanego w dowolnym programie graficznym. Widoczny na rysunku requester pozwala na wszechstronne określenie parametrów nałożenia na obiekt takiego obrazka.

Pozostały jeszcze inne funkcje w panelu atrybutów, których dotąd nie wyjaśniłem:

  • czasami zachodzi konieczność wykonania "zamglonego" obiektu czy dymku unoszącego się z papierosa. Za pomocą opcji Fog Length ustawia się wartość "zmętnienia" danego obiektu, który symuluje efekt mgły.
  • włączenie funkcji Bright spowoduje, że obiekt będzie sprawiał wrażenie, jakby świecił własnym światłem (ale nie będzie oświetlał otoczenia!). Opcja ta jest pomocna przy tworzeniu np. żarówek, neonów i innych widocznych źródeł światła.
  • szybkie przerysowywanie - Fastdraw. Zaznaczenie tej opcji spowoduje "wpisanie" do obiektu informacji, że w edytorach należy pokazywać go za pomocą uproszczonych prostopadłościanów, aby przyśpieszyć proces odrysowywania w oknach widoków Top, Front i Right. Opcja jest zalecana przy wolniejszych komputerach lub przy bardzo rozbudowanych obiektach, tym bardziej, że w oknie widoku perspektywicznego wszystkie elementy będą przedstawione we właściwej formie. Użycie opcji Fastdraw nie wpływa w żaden sposób na wygląd wyrenderowanego obiektu.
  • obiekty programu "Imagine" mogą być równocześnie źródłami światła. Zaznaczenie opcji Light spowoduje przejście do panelu ustawień lamp. Liczba dostępnych tam funkcji jest całkiem spora, dlatego omówieniem ich zajmę się w kolejnym odcinku kursu.
  • włączenie opcji QuickEdges wraz z uprzednim użyciem opcji Functions/Make/MakeQuickEdges pozwoli programowi wyświetlać obiekty w oknach widoków tylko za pomocą wskazanych przez nas krawędzi. QuickEdges nie zmienia wyglądu obiektów, a jest tylko udogodnieniem przyspieszającym pracę w edytorach.
  • pod niepozornym guzikiem Add Txtr kryją się przeogromne możliwości polegające na nakładaniu na powierzchnię obiektów tekstur proceduralnych, będących niczym innym, jak specjalnymi algorytmami, których jedynym celem jest pokrywanie obiektów odpowiednimi wzorami. Tekstury mogą ponadto wyznaczać przezroczystość, porowatość czy kąt odbicia promieni świetlnych. Na niektóre ich parametry można wpływać w panelu, ukazującym się po wybraniu żądanej tekstury. Dla uzyskania lepszych efektów można jednocześnie na jeden obiekt nakładać wiele tekstur. Pliki tekstur znajdują się w podkatalogu Textures i jest ich ponad sto. Dokładniej zapoznamy się z nimi w kolejnym odcinku.
  • z kolei guzik Add Brsh pozwala na nakładanie na obiekty bitmap, wykonanych za pomocą dowolnego programu graficznego. Także i z tym tematem zapoznamy się już wkrótce.
  • nałożone na obiekty brushe i tekstury można porównać z warstwami farby olejnej na wielokrotnie pomalowanej ścianie. Tam gdzie farba złuszczy się i zacznie odpryskiwać, uwidocznią się kolory poprzednich warstw. Tak samo jest z materiałami w "Imagine", z tą różnicą, że tutaj "dziury" uwidaczniające inne warstwy są jak najbardziej zamierzone, i że warstwy te można dowolnie zamieniać kolejnością. Służy do tego gadżet Priority. Czym większa wartość wpisana w requester Desired Priority, tym dana warstwa jest dalej od powierzchni obiektu. Wartość "1" oznacza warstwę bezpośrednio przylegającą do ścianek obiektu.
  • po zaznaczeniu w oknie Textures/Brushes dowolnej pozycji, kliknięcie na opcji Info spowoduje przejście do panelu ustawień właściwych dla wybranego brusha lub tekstury.

Imagine
Każda tekstura proceduralna posiada właściwy sobie szereg parametrów, które można dowolnie zmieniać. Niemożliwością byłoby zatem opisanie ich wszystkich ze szczegółami, dlatego każdy musi poeksperymentować na własną rękę. Pewne podpowiedzi i porady otrzymacie w kolejnym odcinku kursu.

Kilka dodatkowych uwag dotyczących tworzenia materiałów: Bardzo częstym błędem użytkowników "Imagine’a" jest ustawianie zbyt dużych wartości w opcji Reflect. Tworząc lustra czy materiały chromopodobne należy pamiętać, aby zbytnio nie przesadzić, ponieważ może to spowodować, że dany element będzie odbijał zbyt dużo światła i stanie się przez to niemal niewidzialny! Zamiast obiektu, zobaczycie idealnie odbity w nim obraz "świata", a nie o to przecież chodzi. Jest to szczególnie widoczne w przypadku płaskich luster. Należy pamiętać, że efekt lustrzanych odbić na obiektach jest możliwy tylko w trybie trace.

Jeśli nie planujecie renderować obrazków w trybie True Color, można skorzystać z funkcji Dithering w panelu atrybutów. Jest ona przydatna przy generowaniu obrazków w mniejszej ilości kolorów niż posiadają standardowe 24 bity, ponieważ symuluje za pomocą mieszania z sobą poszczególnych kolorów większą ilość barw obiektu niż jest dostępnych w danym momencie. Ja jednak nie polecam używania tej opcji i raczej należy generować obrazki w 16 milionach kolorów, a następnie za pomocą jakiegoś innego programu przekonwertować na np. 256, z jednoczesnym użyciem ditheringu w programie graficznym. Ta opcja jest w głównej mierze trochę już niepotrzebną pozostałością z przeszłości programu, zresztą w wersji 4.0 już nieobecną.

Użycie opcji Filter z jednoczesnym zastosowaniem połyskliwości (Shininess) powoduje, że obiekt traci jakąkolwiek przejrzystość! Zwracam na to uwagę, ponieważ jest to bardzo częsty powód zdziwień typu: ustawiłem przejrzystość na maksimum, a tu nic nie widać przez ten obiekt; to pewnie jakiś błąd w programie! Jeżeli więc chcemy, aby obiekt zachował przezroczystość, Shininess musi koniecznie posiadać wartość zerową; nie małą, ale zerową!

Po takiej dawce wiedzy o tworzeniu atrybutów i po pewnej dozie własnych eksperymentów nie powinniście mieć już większych problemów z kreowaniem nowych materiałów do swoich obiektów. A jeśli takowe nadal będą... zawsze do czasu, kiedy sami tego nie opanujecie, możecie korzystać z gotowych atrybutów, które można znaleźć w Internecie.

W następnym odcinku zapoznamy się bliżej ze sposobami nakładania brushy, definiowaniem świateł i teksturami matematycznymi oferowanymi przez program "Imagine". Stosowanie ich znacznie podniesie realizm renderowanych scen i ułatwi tworzenie efektów, o jakich Wam się dotąd nie śniło. A na razie - przyjemnej zabawy z grafiką 3D!

Refraction Index - lista niektórych współczynników załamania światła

Aceton - 1,36
Alkohol - 1,329
Alkohol etylowy - 1,36
Bursztyn - 1,54
Diament - 2,417
Granat - 1,73-1,89
Kryształ - 2,00
Kwarc (1) - 1,644
Kwarc (2) - 1,553
Lód - 1,309
Opal - 1,44-1,46
Polistyren - 1,55
Powietrze (standardowe ciśnienie i temperatura) - 1,00029
Rubin - 1,77
Sól - 1,644
Szafir - 1,77
Szkło - 1,5
Szmaragd - 1,57
Topaz - 1,61
Woda (temp. 20oC) - 1,333

Creative Commons License
Kurs Imagine by Sławomir Folkman (1996, 2009) is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne 2.5 Polska License.

    
dodaj komentarz
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem