Data publikacji: 29-01-2021 | Data aktualizacji: 04-03-2024 | Autor: Piotr Kurpiewski
Data publikacji: 29-01-2021 | Data aktualizacji: 04-03-2024 | Autor: Piotr Kurpiewski
Zdecydowana większość użytkowników SketchUpa jest związana z renderingiem CPU.
Nawet jeżeli nie wiesz co oznacza ten termin, to najprawdopodobniej i tak wykonujesz
wizualizacje w tradycyjny sposób licząc je na procesorze; czyli właśnie w technologii CPU.
V-Ray pozwala również na wybór technologii GPU, czyli na wykorzystanie karty graficznej
do wykonywania obliczeń. Jak przekonasz się w tym tekście, wybór ten będzie kluczowy,
jeśli chodzi o czas i jakość pracy nad wizualizacjami.
Artykuł powstał we współpracy z firmą NVIDIA, producentem karty graficznej NVIDIA GeForce RTX 3090, którą wykorzystałem podczas pracy nad tym tekstem. Skupię się w nim na oprogramowaniu SketchUp 2021 i V-Ray 5 oraz na silniku Enscape.
Sam niechętnie wymieniam sprzęt i przywiązałem się już do swojego trybu pracy na CPU. Do tej pory działałem na stacji roboczej, która ma dobre 5 lat i nie czułem potrzeby aktualizacji. Kupiłem sprzęt z wysokiej półki, który w zamyśle miał mi służyć jak najdłużej. Doświadczenia, które opisałem poniżej skutecznie przekonały mnie jednak do zmiany podejścia. Jeżeli wolisz słuchać niż czytać, to obejrzyj ten film, który jest rozwinięciem tekstu:
Próg wejścia jest stosunkowo niski. Jeśli masz PC, na którym renderujesz to jest w nim zamontowana karta graficzna, na której możesz wykonywać obliczenia. V-Ray współpracuje z kartami NVIDIA i wprowadza dedykowane dla nich rozwiązania, więc upewnij się, że korzystasz właśnie z takiego sprzętu. Najlepiej sprawdzą się karty z serii RTX, dla których V-Ray ma nawet oddzielną zakładkę. W Asset Editorze, w ustawieniach łatwo sprawdzisz czy oprogramowanie może skorzystać z zamontowanej w Twoim komputerze karty.
Użytkownicy laptopów bez dedykowanej karty graficznej od NVIDIA będą musieli obejść się
smakiem, a na pewno nie będą mogli liczyć na tak spektakularne różnice między
renderingiem GPU i CPU. Dokładniejsze wymagania sprzętowe V-Raya znajdziesz tutaj.
Zanim zaczniesz pracę nad wizualizacjami, warto też zaopatrzyć się w NVIDIA Studio - specjalne sterowniki stworzone z myślą o branży kreatywnej.
NVIDIA Studio to między innymi zestaw dedykowanych sterowników, które wykorzystują technologie ułatwiające i zwiększające wydajność pracy twórczej. Platforma jest nieustannie aktualizowana, zapewnia największą możliwą stabilność, a nierzadko również wzrost wydajności.
Sterowniki Studio można można pobrać bezpośrednio ze strony NVIDIA.com, lub przez program GeForce Experience. Są one kompatybilne z kartami GeForce GTX serie 10, GeForce RTX serie 20, GeForce GTX serie 16, TITAN V, TITAN RTX, oraz wszystkimi produktami Quadro wydanymi od 2012 roku.
NVIDIA Studio to nie tylko stabilne sterowniki. To również zestaw programistyczny SKD, dzięki któremu twórcy oprogramowania mogą korzystać z akceleracji pracy na kartach graficznych NVIDIA RTX.
To także certyfikowana linia produktów NVIDIA RTX STUDIO obejmująca laptopy i komputery stacjonarne wyposażone w najlepszy sprzęt do pracy kreatywnej.
Największą zaletą tego rozwiązania jest niewątpliwie oszczędność czasu. W każdej scenie, którą do tej pory testowałem wygrywał rendering GPU. W niektórych nawet z 50-krotną (!) przewagą nad CPU. Co prawda to nierówna walka, bo porównuję najlepszą dostępną na rynku kartę graficzną z rozwiązaniem sprzed kilku lat, ale zapewne wielu z Was jest w podobnej sytuacji. Jeśli interesuje Cię natomiast test na nowszym hardwarze, to rzuć okiem na ten artykuł.
Na mnie największe wrażenie zrobił Interactive Rendering na GPU, dzięki któremu właściwie w czasie rzeczywistym widzę wprowadzone w pliku zmiany. Do tej pory zwykłe obracanie mapy HDR wymagało wykonania kilku wizualizacji testowych, ponieważ interaktywność na CPU pozostawia wiele do życzenia. Teraz mogę z łatwością wprowadzać zmiany i widzieć od razu ich efekt. To pozwala mi skupić się na kreatywnej stronie mojej pracy.
Wielką zaletą GPU jest wydajność. Obecnie stosunek ceny do uzyskanych rezultatów jest w ich przypadku znacznie lepszy niż w przypadku procesorów. Co prawda CPU ma niższy pobór prądu, ale żeby wykonać te same operacje musi pracować dłużej niż GPU, więc ostatecznie wcale nie jest taki wydajny. Może to przekonać szczególnie tych, którzy tworzą animacje lub po prostu często renderują.
Karty graficzne dają także dużą swobodę modyfikacji sprzętu w przyszłości. Starą kartę bardzo łatwo wymienisz na nową bez pomocy profesjonalisty. Ja nie jestem typem komputerowego entuzjasty i wcześniej nie zaglądałem do obudowy swojej stacji (o zgrozo!), a poradziłem sobie z wymianą karty w mniej niż 5 minut. Nie porwałbym się za to na wymianę procesora. A przecież wiąże się to często również ze zmianą płyty głównej, RAM-u i chłodzenia.
Karty można ze sobą łączyć. Bez większego problemu zamontujesz dwie w jednym komputerze. Będzie to lepsze rozwiązanie niż składanie dwóch jednostek, w celu korzystania z dwóch procesorów jednocześnie. W ten sposób zaoszczędzisz również na licencjach oprogramowania.
Naturalnie, w przypadku GPU będziesz ograniczony przez chociażby wydajność zasilacza czy zbyt wolny procesor, które ostatecznie wpłyną na efektywność Twojej pracy. Na mojej stacji karta graficzna NVIDIA GeForce RTX 3090 wykorzystuje tylko 70% swoich możliwości w związku z ograniczeniami sprzętu. Mimo to daje rewelacyjne rezultaty, a ja mogę pracować wciąż na tym samym komputerze.
Poniżej znajdziesz porównanie czasów renderingu dwóch scen: wnętrza restauracji i domu jednorodzinnego z zewnątrz. Obliczenia wykonuję na ustawieniach jakości Medium+ dla czterech dostępnych silników: CPU, CPU + GPU CUDA, GPU CUDA i GPU RTX w rozdzielczości Full HD (1920x1080).
Scena wnętrza:
CPU - 5h 18min 48s
CUDA CPU + GPU - 30min 56s
CUDA GPU - 18min 29s
RTX GPU - 16min 23s
Scena z zewnątrz:
CPU - 2h 25min 42s
CUDA CPU + GPU - 7min 19s
CUDA GPU - 5min 10s
RTX GPU - 3min 14s
Wizualizacje oprócz czasu trwania renderingu różnią się od siebie wizualnie, bo są nieco inaczej skonstruowane, ale zasadniczo różnice te ciężko jest zauważyć. Widać za to wyraźnie różnice w czasach renderingu. Karta graficzna użyta w scenie z zewnątrz pomogła mi skrócić go z około 2,5h do 3 minut! Na powyższych wizualizacjach przedstawiłem rendery CPU (po lewej) i RTX GPU (po lewej).
Chociaż, tak jak wspomniałem, w większości przypadków różnice między CPU, a GPU będą znikome: większość projektów, na których pracowałem wyglądała w 95% tak samo, to jednak rendering na kartach graficznych ma pewne ograniczenia. Pełną listę nieobsługiwanych przez karty graficzne funkcji znajdziesz tutaj.
Podstawowym ograniczeniem GPU jest brak obsługi Irradiance Map - metody wykorzystywanej domyślnie do liczenia wizualizacji w pracy na procesorze. Metoda, z której korzysta GPU to Brute Force, który daje bardziej realistyczne rezultaty, ale wydłuża czas renderingu. Ja już od kilku lat nie korzystam z Irradiance Map, uznawanego przez większość środowiska za przestarzały, ale rozumiem, że może to dla kogoś stanowić problem.
Ambient Occlusion to kolejna istotna funkcja, której karty graficzne nie obsługują. Służy do lepszego zdefiniowania płaszczyzn spotykających się ze sobą pod dużym kątem, zaznaczając wyraźnie krawędź połączenia np. ściana-sufit. Można jednak zastąpić ten efekt dodając warstwę Dirt w Extra Texture, w Render Elements. A skoro o nich mowa, to na GPU nie skorzystasz także z Caustics, Lighting Analysis i elementów Raw. Nie są to jednak zbyt popularne warstwy i prawdopodobnie nie zauważysz ich braku.
Renderując na GPU zauważysz za to na pewno różnice w sile Bump i Normal.
Intensywności tych map należy zmniejszyć kilkakrotnie, aby uzyskać taki efekt jak na CPU.
Ponadto niektóre materiały mogą zostać nieodpowiednio odwzorowane, ale dotyczy to
zaawansowanych ustawień Roughness, Translucency i specjalnego materiału SSS.
Dla większości wizualizacji przełączenie się na GPU będzie wymagało dosłownie kilku drobnych poprawek. Sceny, które przedstawiłem w paragrafie z porównaniem czasów zostały wykonane na identycznych ustawieniach V-Ray i chociaż producent zaleca trzymać się od początku do końca jednej technologii: CPU lub GPU, to przełączanie między nimi nie stanowi dużego problemu.
Oprócz ograniczeń związanych z softwarem przeszkodą w korzystaniu z liczenia na GPU może okazać się pamięć RAM. Niestety nie da się zwiększyć pojemności RAM-u karty, więc warto zwrócić na to uwagę przy zakupie. Co prawda niektóre karty można ze sobą łączyć, dzięki czemu ich pamięć się sumuje, ale w przypadku serii GeForce 30 jest to możliwe tylko z najdroższym modelem 3090.
Do czego w ogóle służy pamięć RAM? Jest ona wykorzystywana do przetwarzania geometrii i tekstur występujących w scenie. Im bardziej skomplikowana scena, tym więcej potrzebuje pamięci. Jeśli zajmujesz się głównie wizualizacjami wnętrz to spokojnie wystarczy Ci 8 GB. Zaawansowane pliki, takie jak np. budynki z dużą ilością roślinności są bardziej wymagające i potrzebują nierzadko nawet 32 GB RAM-u.
Pliki można jednak optymalizować pod kątem RAM. Renderując na GPU, V-Ray umożliwia m. in. dostosowanie rozmiarów tekstur na żądanie. Ta opcja pozwala zwolnić pamięć używając mniejszych rozdzielczości bitmap. Jeśli użyłeś tekstury w 8K na oddalonym od kamery fragmencie geometrii, to specjalna opcja On-demand mip-mapped dopasuje rozmiar do faktycznych potrzeb sceny.
V-Ray to nie jedyny silnik renderujący przeznaczony do SketchUpa. Kolejne warte uwagi oprogramowanie to Enscape. Jest bardzo intuicyjny, a jego największą zaletą jest fotorealistyczny podgląd sceny w czasie rzeczywistym. Więcej przeczytasz o nim tutaj - Enscape - co to jest? Sprawdź możliwości tego programu!
To również program, który wszystkie obliczenia wykonuje na GPU. Nie ma tu możliwości zmiany technologii na CPU (w odróżnieniu od V-Raya). W tym przypadku do pracy niezbędna jest więc karta graficzna. Nie musi to być jednak karta z najwyższej półki, chociaż im lepsza, tym Enscape pracuje płynniej i tym szybciej osiągniesz pożądane efekty.
Minimalne wymagania sprzętowe znajdziesz tutaj.
Poniżej przedstawiam porównanie czasów dla kart: Gigabyte GeForce GTX 980Ti i NVIDIA GeForce RTX 3090.
Wizualizacja statyczna:
GTX 980Ti - 9s
RTX 3090 - 3s
10-sekundowe wideo w Full HD:
GTX 980 Ti - 2min 12s
RTX 3090 - 27s
GPU to technologia, która w bliskiej przyszłości zdominuje branżę CGI (robi to już teraz!). Jeszcze kilka lat temu pojedynczy render trwał 3 godziny i był uznawany za coś naturalnego. Dzisiaj te same operacje zajmują kartom graficznym kilka minut. Zapewne wkrótce ten czas zmniejszy się jeszcze bardziej, a etap renderingu będzie właściwie pomijalny.
Pewien problem może stanowić pamięć RAM, który jednak dotyczyć będzie tylko najbardziej wymagających projektów. Niedogodności związane z pamięcią i jeszcze nie obsługiwanymi przez V-Ray funkcjami wynagradzają jednak krótkie czasy renderowania, błyskawiczny feedback i kreatywna swoboda, którą dzięki nim otrzymujesz.
Mam nadzieję, że teraz jest już dla Ciebie jasne dlaczego powinieneś zainteresować się liczeniem na GPU i dlaczego powinieneś to zrobić jak najprędzej ;-)
Liczba dostępnych kursów: 35
Łączny czas trwania kursów: 186 godzin
Liczba dostępnych kursów: 29
Łączny czas trwania kursów: 340 godzin
Liczba dostępnych kursów: 23
Łączny czas trwania kursów: 128 godzin
Liczba dostępnych kursów: 15
Łączny czas trwania kursów: 80 godzin
Szukasz czegoś innego?