Blender 2.80 – przegląd nowościcz.1: Eevee i Cycles

Świetny darmowy program do grafiki 3D, Blender 2.80, został wydany, pora więc opisać nowości. Zaczniemy od Eevee – nowego silnika do renderowania w czasie rzeczywistym oraz od usprawnień dodanych do Cyclesa.

Eevee – nowy silnik renderujący

Eevee jest silnikiem podobnym do tych z gier komputerowych, jak Unreal Engine czy Unity. Działa płynnie, można w nim odtwarzać animację w czasie rzeczywistym, ale tak samo jak silniki gier robi to kosztem dokładności. W porównaniu do Cyclesa ma gorsze cienie, odbicia, efekty wolumetryczne (dym, ogień, mgła), załamania światła przechodzącego przez szkło, rozproszone światło odbite od ścian i wiele innych rzeczy. Jednak w dobrze przygotowanej scenie nie widać tych uproszczeń. W każdym razie grafika generowana przez Eevee może wyglądać lepiej niż w nowych topowych grach.

Eevee to świetna rzecz z masą zastosowań. Dzięki nowemu silnikowi można np.:

  • łatwiej przygotować w Blenderze modele do gier (efekty świetlne i cieniowanie są zbliżone do Unreal Engine’u, więc nie będzie trzeba ich poprawiać),
  • wyrenderować animację kilkadziesiąt razy szybciej niż w Cyclesie,
  • przygotować szybki podgląd sceny dla Cyclesa (oba silniki wspierają PBR, przez co dają zbliżone rezultaty).

Cechy Eevee

  • Oświetlenie i cieniowanie zgodne z PBR (z fizyką) (dzięki czemu obraz uzyskany w Eevee jest zbliżony do innych silników renderujących wspierających PBR: Cyclesa, Unity, Unreala i wielu innych).
  • Wspiera NPR (nierealistyczne cieniowanie). Pozwala na zrobienie kreskówkowego shadera.
  • Wspiera te same nody i shadery co Cycles (z kilkoma wyjątkami).
  • Szybkie przełączanie między Eevee a Cyclesem w Blenderze.
  • Kilka typów lamp: sun, spoot, area oraz point. Lampy obsługują rozmiar i cienie.
  • Rzucanie cieni. Obsługa miękkich i kaskadowych cieni.
  • Wolumetryka, czyli mgła, dym i ogień. Wsparcie dla efektów świetlnych i cieni wewnątrz mgły.
  • Motion blur. W tej chwili obsługuje tylko ruch kamery.
  • Głębia ostrości.
  • Screen Space Reflections (czyli fejkowanie odbić lustrzanych). Jest jeszcze refrakcja.
  • Cube maps dla odbić (kolejna technika fejkowania odbić).
  • Włosy.
  • Global illumination (światło odbite od ścian i innych obiektów). Musi zostać wypalone.
  • Postprocessing: ambient occlusion, bloom, subsurface scattering.
  • Wspiera blenderowego Compositora.

Eevee i Workbench (nowy silnik dla okna 3D, o nim w następnym wpisie) wymagają nowszej wersji biblioteki OpenGL. Karty graficzne muszą wspierać OpenGL w wersji 3.3. Dla Nvidii minimum to karty serii GTX 200, dla AMD karty z rdzeniami GCN1, a dla Intela integry od Haswella (4xxx) wzwyż.

Więcej o Eevee.

Cycles – nowości i usprawnienia

Nowe i ulepszone shadery

Principled Hair – Łatwy w obsłudze shader dla włosów. (Eevee jeszcze nie wspiera.)
Filmik o Principled Hair od jednego z developerów

Principled Volume – Prosty w obsłudze shader dla mgły, dymu i ognia.

Random Walk dla shadera Subsurface Scattering – Nowa metoda obliczania tego, jak światło rozchodzi się wewnątrz obiektu (np. pod skórą lub w półprzeźroczystych przedmiotach). Pozwala lepiej wydobyć drobne detale.

Bevel shader – Cieniuje ostre krawędzie tak, jakby były skrawane. Przydatne szczególnie na grawerach. Pozwala na uproszczenie siatki skomplikowanych przedmiotów.

Ambient Occlusion Shader – Dodano nowe opcje dla tego noda.

Principled BSDF – dodano dwie właściwości: Alpha (przeźroczystość) i Emission (emitowanie światła).

Cryptomatte

Ogromna nowość przydatna w postprocessingu, która tworzy coś w rodzaju masek dla wszystkich obiektów. Pozwala to potem łatwo zaznaczać obiekty na wyrenderowanym obrazie. Jeżeli korzystałeś z REnder Layers do oddzielania obiektów, to Cryptomatte jest czymś podobnym, ale 100 razy lepszym. Nie trzeba ręcznie przypisywać obiektów do warstw – wystarczy włączyć jedną opcję przed renderingiem, a potem w Compositorze kliknąć dowolny obiekt. Rozmycie ruchu, głębia ostrości, przeźroczystość i wygładzanie krawędzi są lepiej wspierane.

Cryptomatte jest standardem branżowym i obsługuje go np. Houdini, RenderMan i After Effects. Eevee póki co nie wspiera tego udogodnienia.

Filmik o Cryptomatte od jednego z developerów.

Lampy

Area lights mogą mieć teraz owalny kształt

IES – Coś w rodzaju tekstury światła, szczególnie przydatne dla wizualizacji architektonicznych. Do tej pory lampy w Cyclesie emitowały jednolite światło. Teraz można zrobić lampy, które emitują nierównomierne światło z miejscami jaśniejszymi i ciemniejszymi, tak jak to robią w rzeczywistości halogeny i inne. Eevee jeszcze nie wspiera tego ficzera.

Pobierz darmowe tekstury IES dla lamp.

Subdivision i Displacement

  • Subdivision Surface używa teraz tylko OpenSubdiv libary (było wcześniej, ale jako opcja).
  • Dodano opcje zapobiegające pojawianiu się artefaktów siatki podczas animacji, kiedy jest używany Displacement.
  • Nowy nod Vector > Displacement, który jest obowiązkowy podczas używania Displacementu w materiale na wyjściu. Do plików zapisanych w starszych wersjach będzie on dodawany automatycznie. Zmiana jest konieczna, ponieważ do Blendera 2.80 został dodany lepszy rodzaj przemieszczenia…
  • Vector Displacement. O ile normalny Dsiplacement przemieszcza powierzchnię wzdłuż jednej linii (normal), to wektorowa odmiana przemieszcza wzdłuż trzech osi. Pozwala więc na skomplikowane i wklęsłe kształty.

Wydajność i technikalia

  • Poprawiona wydajność od kilkunastu do kilkudziesięciu procent – zależy od konkretnej sceny.
  • Jednoczesne renderowanie na CPU i GPU.
  • Na GPU można renderować z użyciem mniejszych prostokącików (tiles). Wcześniej GPU wymagało np. 256x256px, teraz 32x32px mogą działać szybciej na niektórych scenach.
  • Cycles (tylko dla CUDA) automatycznie wykrywa, kiedy zaczyna brakować pamięci na GPU i przerzuca tekstury i modele do RAM-u procesora. Obniża to wydajność. Jeżeli same tekstury są przeniesione, to wtedy spada o 20-30%. Jeżeli modele i inne obiekty, wtedy dużo bardziej i w pewnym momencie renderowanie na samym CPU jest szybsze.
  • OpenCL teraz szybciej kompiluje się, co skutkuje szybszym startem, a złożone sceny krócej są przeliczane.
  • Rendering CUDA na kartach z czasów GTX 480 i 580 nie jest wspierany. Nvidia porzuciła wsparcie w swoich narzędziach dla programistów dla starszych wersji i teraz wymagane są karty obsługujące Compute capability 3.0 i wyżej. Sprawdź swojego GTX-a (rozwiń zakładkę CUDA-Enabled GeForce and TITAN Products)
  • Porzucono wsparcie dla OpenCL na komputerach Apple’a z powodu błędów kompilatora. Apple już nie wspiera OpenCL, więc programiści Blendera nie mogą tego naprawić.

Inne

  • Bump- i normalmapy mające wysokie wartości nie powodują już czarnych plam.
  • Obiekty z włączonym shadow-catcherem już nie rzucają cienia na inne obiekty.

Więcej o zmianach Cyclesie.

Porzucony Internal i BGE

Sporo osób się wkurzy, bo ekipa zdecydowała, aby porzucić silnik Internal (Blender Render) i Blender Game Engine. Szef szefów, Ton Roosendaal, tłumaczy decyzję tym, że oba silniki są przestarzałe i zawsze wymagają wiele pracy, aby dostosować je do kolejnych wersji Blendera, a mają ograniczoną liczbę programistów.

Alternatywą dla BGE może być opensource’owy Armory 3D. Dla Internala ciężko znaleźć odpowiednik.

Wszystkie nowości po angielsku znajdziecie na oficjalnej stronie.

Warto też zajrzeć do manuala, aby lepiej poznać nowe rzeczy.

Pobierz program do grafiki Blender 2.80.

P.S. Górny obrazek pochodzi ze strony blender.org. Scenka na nim pochodzi z filmu Spring stworzonego przez Instytut Blendera, który możecie obejrzeć na Youtubie.