Data publikacji: 08-01-2021 | Data aktualizacji: 04-03-2024 | Autor: Mateusz Ciećwierz
Data publikacji: 08-01-2021 | Data aktualizacji: 04-03-2024 | Autor: Mateusz Ciećwierz
Jeśli zajmujesz się wykonywaniem wizualizacji, to na pewno nie raz słyszałeś o renderowaniu z wykorzystaniem kart graficznych (GPU). O co dokładnie w tym chodzi? Zamiast wykorzystywać do obliczeń standardowo procesor (CPU) naszego komputera możemy użyć do tego celu karty graficzne. Jeśli tylko aplikacja, z której korzystamy na to pozwala i mamy odpowiednio wydajną kartę graficzną, to istnieje duża szansa na to, że wykona to samo obliczenie szybciej. Albo dużo szybciej, o czym zaraz się przekonamy.
Tekst ten powstał we współpracy z firmą NVIDIA, ale nie wpłynęło to jakkolwiek na moją ocenę przydatności GPU w renderingu. Korzystałem z tej metody już od pewnego czasu i nikt nie musiał mnie namawiać, abym napisał na ten temat kilka zdań :)
W tym artykule będę skupiał się konkretnie na silniku renderującym V-ray 5 dla programu 3ds Max. V-ray od dłuższego czasu pozwala na na renderowanie z wykorzystaniem GPU, ale przyznam, że sam podchodziłem do tego z dużą rezerwą. Nie spieszyłem się z zakupem nowej karty graficznej specjalnie do tego celu. W dużej mierze była to po prostu kwestia przyzwyczajenia do renderowania na CPU.
Jeśli wolisz bardziej słuchać niż czytać, to zachęcam do obejrzenia filmu poniżej, który przygotowałem o tej samej tematyce :)
NVIDIA Studio to platforma programowa i sprzętowa wykorzystująca technologie ułatwiające i zwiększające wydajność pracy twórczej. A co to znaczy dla nas użytkowników w praktyce?
NVIDIA na bieżąco jest w kontakcie z twórcami i cały czas dba o to aby aplikacje, z których korzystamy jak najlepiej wykorzystywały w pełni potencjał oraz moc obliczeniową kart graficznych. Dzięki temu możemy korzystać z dedykowanych sterowników NVIDIA Studio, które cały czas są aktualizowane i zapewniają największą stabilność, a nierzadko wzrost wydajności.
Dodatkowo NVIDIA posiada linię produktów NVIDIA RTX STUDIO, które przeznaczone są dla osób zajmujących się pracą kreatywną i cały czas wykorzystują moc obliczeniową komputera w różnych aplikacjach takich jak np. 3ds Max, Blender, Adobe Premiere Pro, Photoshop i wiele wiele innych. Korzystając z tych produktów mamy pewność, że zostały one przetestowane i zatwierdzone przez NVIDIĘ co daje nam pewność, że spełnią nasze oczekiwania.
Czemu w takim razie warto zainteresować się liczeniem z wykorzystaniem GPU? Powodów jest kilka, a według mnie najważniejsze z nich to:
Przejdźmy teraz do porównania czasów renderowania z wykorzystaniem karty graficznej NVIDIA GeForce 3090 RTX, a procesorem Ryzen 3950X na przykładzie wizualizacji wnętrz. Będę również dodawał informacje ile RAM-u zostało wykorzystane w danej scenie.
Poniższa scena została wyrenderowana w rozdzielczości 1920x1080 z limitem Noise Threshold ustawionym na 0,007 na 5 różnych sposoby z wykorzystaniem silników V-ray 5 oraz V-ray GPU 5.
V-ray GPU zawsze wychodzą identycznie niezależnie, czy do obliczeń wykorzystamy CPU, czy GPU (CUDA lub RTX). Różnice natomiast możemy zauważyć jeśli porównamy wizualizacje wyrenderowane z wykorzystaniem V-ray 5, a V-ray GPU 5. Zazwyczaj te różnice są drobne co będziesz mógł zaobserwować na przykładach poniżej.
Na powyższej wizualizacji najwięcej zmian można dostrzec w odbiciach świateł w szybie, gdzie w przypadku V-raya CPU wyglądają nieco naturalniej. Czas renderowania dla tych 5 wariantów wygląda następująco:
Wykorzystana pamięc RAM karty graficznej - 4959 MB
Jak widzicie zdecydowanie najlepszy czas udało się osiągnąć wykorzystująć kartę graficzną z ustawionym Engine na RTX. Mimo tego, że w wypadku wykorzystania Engine - CUDA mamy możliwość renderingu hybrydowego GPU + CPU, to w praktyce zdecydowanie lepszy czas udało się osiągnąć tylko z jedną kartą wykorzystującą RTX.
Przejdźmy teraz do kolejnego przykładu wnętrza.
Rozdzielczość: 1440 x 1920, Noise Threshold: 0,007
Przejdźmy teraz do bardziej wymagającej sceny gdzie mamy zdecydowanie więcej geometrii i zobaczymy jak karta poradzi sobie na takim przykładzie.
Rozdzielczość: 4000 x 2260, Noise Threshold: 0,01
Wykorzystana pamięć RAM karty graficznej - 7562 MB
Tutaj widoczne są różnice w trawie oraz w szkle barierki. Jednak nadal cała scena w 95% wygląda identycznie i bez problemu możemy w razie potrzeby przełączać się między jednym a drugim silnikiem bez obaw, że uzyskamy zupełnie inny efekt.
Reasumując, różnice w finalnych renderach między CPU i GPU są zauważalne, choć zazwyczaj nie duże. Czy to znaczy, że licząc na GPU zawsze będzie wszystko działać? Niestety nie. Są pewne funkcje, które nie są jeszcze obsługiwane przez V-ray GPU. Pełną listę możecie znaleźć pod tym linkiem. Z istotniejszych rzeczy, o których warto wspomnieć:
Jakie jeszcze ewentualne ograniczenia mogą nas spotkać podczas korzystania z GPU? Jednym z najważniejszych jest na pewno pamięć RAM. W tym wypadku niestety nie możemy dokupić kolejnych kości pamięci i zwiększyć w ten sposób pojemności RAM-u naszej karty.
Dodatkowo jeśli np. posiadamy w komputerze 3 karty graficzne z czego dwie z nich będą miały po 10 GB pamięci, a trzecia 6 GB, to będziemy ograniczeni do pamięci karty, która posiada jej najmniej, czyli w tym wypadku - 6 GB. Ewentualnie niektóre karty możemy połączyć ze sobą sumując w ten sposób ich pamięć, ale w wypadku GeForce’ów z serii 30 jest to tylko możliwe z modelem - 3090.
Pamięć ta wykorzystywana jest do wszystkich obiektów oraz tekstur, które są w scenie. Czyli im bardziej skomplikowana scena tym więcej RAM-u będziemy potrzebować. W wypadku standardowych wizualizacji wnętrz w 100% wystarczające będzie 8-10 GB pamięci. Natomiast przy wizualizacji architektury wszystko zależy od tego jak bardzo złożona będzie to scena. Im więcej pamięci posiadamy tym na więcej obiektów, roślinności, tekstur będziemy mogli sobie pozwolić.
Dodatkowo możemy skorzystać z bardzo przydatnej opcji w Render Settings -> Preferences -> Textures i ustawić w Mode: On-demand mip-mapped. Dzięki temu V-ray sam będzie dostosowywał rozmiar tekstur z jakich będzie korzystał. Przykładowo jeśli korzystamy z tekstury 4096x4096, która widoczna jest tylko na niewielkim obiekcie w tle, to nie będzie wykorzystywana w pełnej rozdzielczości, a jedynie w takiej, aby uzyskać dobrą jakość. Dzięki temu możemy zaoszczędzić dużo pamięci na inne istotniejsze rzeczy.
W momencie przygotowywania tego artykułu najnowszymi kartami dostępnymi na rynku są GeForce’y od firmy NVIDIA serii 30. Jest kilka modeli, które różnią się od siebie mocą obliczeniową oraz ilością pamięci.
Tak jak wspomniałem powyżej w wypadku wizualizacji wnętrz wystarczające będą karty z 8-10 GB pamięci, więc możemy wybierać między dowolnymi modelami w zależności od tego jakim budżetem dysponujemy.
Sytuacja staje się trochę bardziej skomplikowana jeśli wykonujemy bardziej złożone sceny i potrzebujemy więcej pamięci. W takim wypadku najlepszym wyborem będzie NVIDIA GeForce 3090 ponieważ posiada aż 24 GB RAM-u. Dodatkowo jeśli chcemy mieć jeszcze więcej pamięci możemy zaopatrzyć się w dwie karty 3090 i połączyć je ze sobą dzięki SLI. Dzięki czemu pamięć kart się zsumuje i będziemy mogli korzystać z 48 GB co powinno być wystarczające dla większości scen. Jeśli oczywiście zachowamy podstawy optymalizacji scen :)
Podsumowanie
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?