Weergave optimaliseren in V-Ray

Commentaar uit 2023 - stop met lijden met 3ds Max, Dat is waarom. Het volgende is het originele artikel

In deze les duiken we in de wildernis van V-Ray en analyseren we de meest subtiele instellingen om te leren hoe we de weergave kunnen optimaliseren en in minder tijd een beeld van hoge kwaliteit kunnen krijgen.

vray_optimization_header

Invoering


Deze tutorial is bedoeld om het hele proces van het optimaliseren van V-Ray-instellingen te behandelen en uit te leggen om in minder tijd renders van hoge kwaliteit te produceren.

Er bestaat vaak veel verwarring rond de term V-Ray sampling en wat de “ideale” instellingen zijn. De meeste renderers creëren een “Universele V-Ray-instellingen” waarin ze de Image Sampler (Anti-Aliasing, of AA) Max subdives instellen op een zeer hoge waarde, ongeveer 50 of zelfs 100, en vervolgens eenvoudigweg de ruisdrempelwaarde verlagen tot de render is schoon genoeg en denkt dat dit de beste manier is om de optimale kwaliteit/snelheidsverhouding te bereiken. Maar met een beetje begrip van wat er onder de motorkap van V-Ray zit en hoe het eigenlijk werkt, kun je betere beelden krijgen in minder rendertijd. De methode die ik in dit artikel zal beschrijven, in vergelijking met de meest gebruikelijke die ik hierboven heb beschreven, kan in sommige scènes je weergavetijd 3 tot 13 keer besparen.

Laten we eerst eens kijken naar enkele basiszaken over hoe de weergave zelf en V-Ray-sampling werken. Vervolgens gaan we verder met een specifieke scène om te demonstreren hoe u de weergave kunt optimaliseren om sneller, beter en scherper te zijn. Vervolgens leren we de verschillende soorten ruis in een scène identificeren. En aan het einde laat ik je een stapsgewijze procedure zien waarmee je elke scène kunt optimaliseren om de perfecte balans tussen kwaliteit en snelheid te krijgen.

Als u al weet hoe V-Ray werkt, klik dan hier om direct naar de stapsgewijze optimalisatieprocedure te gaan.

RAYTRACING (raytracing)


Wanneer het renderen begint, worden er stralen vanuit de camera in de scène geschoten om informatie te verzamelen over de geometrie in de scène, die zichtbaar zal zijn in het uiteindelijke beeld. Deze stralen worden van de camera af gericht en worden genoemd Primaire stralen (Soms Camerastralen of Oogstralen) en zijn geconfigureerd in Afbeeldingsvoorbeeld (ook bekend als Anti-Aliasing of AA).

Terwijl de primaire straal de geometrie van de scène doorsnijdt, worden extra stralen vanaf deze snijpunten naar andere delen van de scène afgevuurd om informatie te verkrijgen over verlichting, schaduwen, indirecte verlichting (GI), reflecties, brekingen, ondergrondse verstrooiing (SSS), enz. extra stralen worden genoemd Secundaire stralen en geconfigureerd in V-Ray's DMC-sampler.

vray_optimization_figure_01Figuur 1. Een vereenvoudigd raytracingdiagram: Primaire stralen worden vanuit de camera op de scène afgevuurd, kruisen objecten in de scène en verspreiden secundaire stralen naar andere delen van de scène.

Van nu af aan zullen we naar “Stralen” verwijzen als “Samples”, omdat het doel van een straal (Ray) is om informatie te verkrijgen over de “Sample”-scène. Stralen = Monsters.

Om te begrijpen wat er in de scène gebeurt, moet je een aantal primaire en secundaire samples vrijgeven. Meer Monsters: hoe meer V-Ray informatie over de scène ontvangt, hoe hoger de kwaliteit van de render en hoe minder deze zal bevatten lawaai. Zoals je kan zien, ruis is de reden voor het gebrek aan informatie over de scène. Als er ruis in de scène is, heeft V-Ray niet de mogelijkheid gehad om voldoende informatie over de scène te verzamelen. Het opsommen: Om ruis te verwijderen moet u V-Ray meer informatie geven, en om de renderer meer informatie over de scène te geven moet u de waarde Samples groter maken.

Aantal primaire monsters, geregeld door waarden Min. onderverdelingen, Maximale onderverdelingen, En Kleurdrempel in de Image Sampler-opties. Het aantal secundaire monsters wordt bepaald door de waarde Onderverdelingen individueel in elke lichtbron, GI, materiaal en instellingen Geluidsdrempel DMC Sampler-waarde. (Geluidsdrempel in Maya wordt adaptieve drempel genoemd)

Laten we dus de basisvoorwaarden herhalen:

Straal = monster

Primaire samples = samples aangepast door V-Ray's Image Sampler (ook bekend als Anti-Aliasing of AA), ontworpen om de geometrie van de scène te bepalen en informatie te verzamelen zoals texturen, scherptediepte (DOF) en bewegingsonscherpte).

Secundaire monsters = monsters die kunnen worden aangepast door V-Ray's DMC Sampler, ontworpen om informatie te verzamelen over verlichting, GI, schaduwen, reflecties, brekingen en SSS

Lawaai = lawaai of gebrek aan informatie

Subdivs = vierkantswortel van het werkelijke aantal monsters. Onderverdelingen^2 = Voorbeelden. Voorbeeld: 8 subdivs = 64 monsters. (8^2 = 64)

In deze zelfstudie bekijken we hoe u deze primaire en secundaire voorbeelden het beste kunt gebruiken om in korte tijd een ruisvrij beeld te krijgen.

Definitie HET SAMPLERATE RENDER-ELEMENT


Het SampleRate-renderelement is een van de belangrijkste tools die we zullen gebruiken om de weergave te optimaliseren. Dit is V-Ray's manier om ons te laten zien wat de Image Sampler (AA) doet op een bepaalde pixel. Dit gebeurt door elke pixel te markeren met een kleur die overeenkomt met het aantal primaire monsters (AA) dat de pixel bevat. Deze afbeelding kan worden bekeken in het renderelement SampleRate)

*Blauwe kleur betekent een kleine hoeveelheid primaire monsters (AA) in deze pixel.

*Groene kleur betekent het gemiddelde aantal primaire monsters (AA) in deze pixel.

*Rode kleur betekent een groot aantal primaire monsters (AA) in deze pixel.

vray_optimization_figure_02Figuur 2. Het renderelement SampleRate (rechts) laat zien hoeveel primaire monsters er in elke renderpixel zijn gebruikt (links)

Dus voor een scène met Image Sampler (AA) 1 min en 10 max subdivs (1 min en 100max primaire samples):

*Blauwe kleur betekent 1 primaire monster (AA) in deze pixel.

*Groene kleur betekent 50 primaire monsters (AA) in deze pixel.

*Rode kleur betekent 100 primaire monsters (AA) in deze pixel.

En voor een scène met Image Sampler (AA) 1 min en 100 max subdivs (1 min en 10000max primaire samples):

*Blauwe kleur betekent 1 primaire monster (AA) in deze pixel.

*Groene kleur betekent 5000 primaire monsters (AA) in deze pixel.

*Rode kleur betekent 10.000 primaire monsters (AA) in deze pixel.

Scènevoorbeeld - hoe werkt V-RAY?


In deze tutorial gaan we werken met een eenvoudige scène bestaande uit: een vlak met verschillende bollen erop, verschillende eenvoudige materialen (waaronder diffuse, glanzende reflectie, glanzende breking en SSS), twee oppervlaktelichten en een lichtkoepel met HDRI. GI ingeschakeld in Brute Force + Light Cache-modus. U kunt dit bestand downloaden Hier.

We beginnen met de basis renderinstellingen met de volgende waarden:

  • Afbeeldingssampler (AA) = 1min en 8max subdiv.
  • Lichten, GI en materialen allemaal 8 onderverdelingen.
  • Geluidsdrempel s= 0.01.
  • Ook alle overige instellingen laten we standaard staan.

vray_optimization_figure_03Figuur 3. Basisweergave.
1min en 8max subdivs = Image Sampler (AA)
8 Subdivs = Lichten, GI en alle materialen

Laten we nu eens nader bekijken wat er gebeurt tijdens een eenvoudige weergave. Via de renderinstellingen vertel je de render ongeveer:

“Ik sta je toe om maximaal 64 (8 subdivs) primaire samples (AA) in elke pixel te gebruiken, zodat je begrijpt wat daar in de scène gebeurt en niet zoveel ruis maakt als de ruisdrempel toelaat... Maar voor elke Van deze primaire monsters kun je slechts één secundair monster maken om te begrijpen wat er is in termen van licht, schaduwen, GI en materialen.”

U vraagt zich misschien af: “Wacht, slechts één secundair monster voor licht, GI en alle materialen? Ja jij rijdt! Er zouden 64 samples (8 subdivs) moeten zijn, hebben we er niet zoveel gespecificeerd?” Het is belangrijk op te merken dat IC's (lichten), GI's en materialen elk een waarde hebben van 64 samples (8 subduiken). V-Ray deelt deze waarde door het aantal AA Max-samples in je scène. Ondanks de waarde van 64 monsters voor lichten en materialen, moet u er rekening mee houden dat deze waarde wordt gedeeld door de waarde van AA Max = 64 monsters (8 subdivs), wat resulteert in slechts één secundair monster voor lichten, GI en materialen. (64 secundaire monsters / 64 primaire monsters = 1 secundair monster).

De reden dat V-Ray dit doet is vanwege de interne formule die het heeft opgesteld om deze twee waarden in balans te houden. De logica van de ontwikkelaars is als volgt: hoe meer primaire samples, hoe verhoudingsgewijs minder secundaire samples nodig zijn om te begrijpen wat er in de scène gebeurt (we zullen snel zien dat dit niet altijd waar is). Deze evenwichtsoefening tussen Image Sampler en DMC Sampler is in eerste instantie misschien niet duidelijk, maar dat is het punt. De conclusie is dat wanneer u de Image Sampler (AA)-waarde verhoogt, V-Ray probeert te compenseren door de DMC Sampler-waarde proportioneel te verlagen. Later, als je nog niet in slaap bent gevallen, kun je evalueren DMC-calculator, geschreven door de auteur van dit artikel, dat ik om 5:02 uur 's ochtends zo ijverig vertaal, bijna zonder een woordenboek te gebruiken =) Dankzij gymnasium nr. 32 in Ivanovo, waar ik 8 lessen Engels per week kreeg.

En laten we dus terugkeren naar onze papegaaien:

V-Ray wordt zo cool mogelijk weergegeven, maar ik ben gealarmeerd door het enorme aantal rode pixels in het renderelement SampleRate). Dit is wat hij ons vertelt:

“Ik kon er niet achter komen wat er in de scène gebeurde, omdat je me ernstig beperkte in de geluidsdrempel. Ik heb lange tijd primaire monsters met slechts één secundair monster gebruikt, maar het gaf me niet genoeg informatie over deze gebieden."

Als we naar de weergave kijken, zullen we merken dat hoewel de objecten (de randen van objecten) er redelijk goed uitzien, er nog steeds enkele ruisgebieden in de afbeelding zijn met schaduwen en reflecties. We hebben een luidruchtige basisweergave en we hebben twee opties om de ruis te verminderen om de gewenste kwaliteit te krijgen.

* Optie 1 - verhogen AA Max. onderverdelingen - zodat V-Ray de scène beter kan zien, maar opnieuw met slechts één secundair monster voor licht, GI en materialen.

* Optie 2 - Aantal verhogen Onderverdelingen in materialen, verlichting en GI. Vertel V-Ray om het aantal primaire monsters te behouden, maar in plaats daarvan toe te staan dat er meer secundaire monsters worden gebruikt.

Scènevoorbeeld - optie 1 - verhoging van de waarde van AA MAX SUBDIVS


Laten we het eerst proberen, op de manier waarop scheve visualisaties gewoonlijk doen om een minder luidruchtige weergave te krijgen.

  • We verhogen Image Sampler (AA) 1 minuut & Maximaal 100 subdiv.
  • We laten IP, GI en materialen aan staan 8 onderverdelingen.
  • Verlaag de ruisdrempel naar 0.005 om V-Ray te vertellen dat we zonder ruis willen renderen.

vray_optimization_figure_04Figuur 4. Optie 1 - uitbreiding van het aantal onderverdelingen in AA Max
1min en 100max subdivs = Image Sampler (AA)
8 Subdivs = BC, GI en alle materialen
0,005 = Geluidsdrempel.

Laten we eens kijken wat er met deze instellingen gebeurt. Nadat we deze instellingen hebben ingesteld, vertellen we V-Ray:

“Ik sta je toe om tot 10.000 (100 subdivs) Primary Samples (AA) per pixel te gebruiken om te begrijpen wat er in de scène gebeurt en om ruis zoveel mogelijk te minimaliseren bij een gegeven ruisdrempel. Maar voor elke primaire sample kun je slechts één secundaire sample maken om te begrijpen wat er in de scène gebeurt met licht, GI en materialen.”

Dat onthouden we omdat Elke IC, materiaal en GI hebben 64 samples (8 subdivs). V-Ray deelt deze waarde door AA Max Samples. Hoewel de waarde 64 monsters is, wordt deze gedeeld door AA Max. 10.000 monsters (100 subdivs), wat resulteert in een minimumaantal van slechts één secundair monster voor lichten, GI en materialen. (64 secundaire monsters / 10.000 primaire monsters = 1 secundair monster).

V-ray voltooit het renderen van de afbeelding en zegt:

“Ik kon alles wat er in de scène gebeurde, achterhalen dankzij de kwaliteit en helderheid van de foto die je had opgegeven. Maar om de scène te testen, moest ik op sommige plaatsen maar liefst 10.000 primaire monsters gebruiken met 1 secundaire monsters voor licht, GI en materialen.”

We kijken naar optie 1 en zien dat de hoeveelheid ruis aanzienlijk is afgenomen in vergelijking met de basisweergave. Renderingtijd verhoogd tot 11 min. 44 mec (9,8 keer langer). Maar we hebben geen lawaai. De meeste mensen zullen op dit punt denken dat dit het beste resultaat is dat kan worden behaald en dat het klaar is.

Maar wat als we naar optie 2 kijken, waar we het eerder over hadden? Wat zou er gebeuren als we, ondanks het verhogen van de AA Max-subdivs, in plaats daarvan de subdiv-waarden in IS, GI en Materialen zouden verhogen. Dat zoeken we uit.

Scènevoorbeeld - optie 2 - verhoging van het aantal onderverdelingen in IS, GI en materialen


Laten we nu iets nieuws proberen. Laten we de waarde voor Primaire steekproeven instellen op wat deze was in de basisinstellingen, maar secundaire steekproeven toevoegen.

  • We laten Image Sampler (AA) op de basisinstellingen staan 1 minuut & 8max onderverdelingen.
  • We breiden het aantal onderverdelingen in IP, GI en materialen uit 80 onderverdelingen elk.
  • Laat de ruisdrempel staan 0.01

vray_optimization_figure_05Figuur 5. Optie 2 - enthousiast aantal onderverdelingen in IS, GI en materialen.
1min en 8max subdivs = Image Sampler (AA)
80 subdivs = elk Licht, GI en Materialen.
0,01 = Geluidsdrempel.

En laten we dus eens kijken naar wat er gebeurt in de tweede optie. Door renderparameters op deze manier in te stellen, vertelt u V-Ray:

"Ik sta toe dat je maximaal 64 (8 subdivs) primaire samples (AA) per pixel gebruikt om te begrijpen wat er in de scène gebeurt, en maximaal 100 secundaire samples."

Bedenk dat GI, materialen en licht elk 64.000 monsters (80 onderverdelingen) zijn. V-Ray verdeelt elk van deze waarden automatisch op basis van de AA Max Samples die in uw scène zijn ingesteld. En ondanks 64.000 monsters is het verdeeld in AA Max 64 monsters (8 onderverdelingen) en slechts 100 secundaire monsters voor verlichting, GI en materialen (elk). Secundaire monsters / 64 primaire monsters = 100 secundaire monsters).

V-Ray is klaar met renderen en zegt:

“Ik kon zien wat er in de scène gebeurde op basis van het kwaliteitsniveau van de ruisdrempel dat je had ingesteld. Meestal moest ik alle 64 primaire monsters per pixel gebruiken. En 100 secundaire monsters voor licht, materialen en GI."

We zien dat de ruis verdwenen is, maar de weergavetijd is 4,5 keer toegenomen (4m 38s) vergeleken met de basisweergave.

Maar als we het vergelijken met optie 1, zien we dat optie 2 ons schonere resultaten opleverde en 2,2 keer sneller opleverde.

vray_optimization_figure_06

Figuur 06. Optie 1 aan de linkerkant en optie 2 aan de rechterkant. Hieronder ziet u een afbeelding die vier keer is vergroot om het verschil in ruis beter te zien.

Waarom is dat? Waarom is het verhogen van de DMC Sampler-instellingen (lichten/GI/subdivs-materialen) beter dan het verhogen van de Sampler (AA)? Het resultaat is een snellere en schonere weergave.

Hoe optimalisatie werkt


In de basisweergave zien we dat de randen van het object er goed uitzien, de ruis zit vooral in reflecties en schaduwen. Als je je herinnert wat we eerder hebben geleerd: “Primaire monsters (AA) zijn gemaakt om de belangrijkste geometrie van de scène, texturen, DOF en bewegingsonscherpte in de scène te ‘onderzoeken’. Terwijl Secondary Samples GI, licht, materialen en schaduwen ‘onderzoeken’.

En dus, om van de ruis af te komen, is het kiezen tussen optie 1 en 2 geen gemakkelijke taak. Waarom een schroevendraaier gebruiken om het werk van een hamer te doen? Image Sampler (AA) heeft al gedaan waarvoor het is ontworpen: geometrische details (de randen van objecten) schoon en stil maken. Dus in plaats van een aantal extra Primary Samples (AA) in de scène te schieten om ruis te verwijderen, is het beter om samples toe te voegen aan de DMC Sampler (lichten/GI/Material Subdivs), en hem te laten doen waarvoor hij is ontworpen: ruis verwijderen in de schaduwen, verlichting, GI, reflecties en brekingen. Hier is ons antwoord!

Nu kunnen we zien waarom de "Universele V Ray-instellingen" van 1min en 100max AA over het algemeen niet de meest efficiënte methode zullen zijn om een scène weer te geven - sterker nog, het was nooit de bedoeling om de meest efficiënte methode te zijn! De universele instellingen van V-Ray zijn ontworpen om V-Ray toegankelijk en gemakkelijk te maken voor gebruikers die niets geven om optimalisatie en zich niet druk maken over hoe V-Ray onder de motorkap werkt. Het is gewoon een manier om V-Ray op de automatische piloot te zetten. Hierdoor kan de gebruiker de volledige weergavekwaliteit controleren door slechts één parameter aan te passen: de ruisdrempel. Als er te veel ruis in de render zit, verlaag dan eenvoudigweg de ruisdrempel, en V-Ray blijft Primary Samples (AA) afvuren totdat het uiteindelijk de ruisdrempel bereikt.

Maar optie 2 kunnen we nog verder optimaliseren! Van 5min 58s voor 4min 53s. Met een lichte toename van het geluid.

vray_optimization_figure_07

Figuur 07. Optie nr. 1. Aan de linkerkant en optie nr. 2 De weergave is nog verder geoptimaliseerd: aan de rechterkant. Rendersnelheid verhoogd met 2,7x!

Hier is nog een voorbeeld van optimalisatie, dit keer meer gericht op scèneprestaties.
Geoptimaliseerde weergave (rechts) zou bijna 35% sneller zijn dan de generieke weergave-instellingen (links), terwijl de ruis wordt verminderd en de weergavekwaliteit wordt verbeterd. Merk ook op hoe de reflecties nauwkeuriger zijn geworden - merkbaar op de vloer aan het einde van de gang.

vray_optimization_figure_08

Figuur 08. “Universele V Ray-instellingen” aan de linkerkant, en geoptimaliseerde weergave aan de rechterkant.

Wordt vervolgd…

11 reacties op “Оптимизация рендера в V-Ray

  1. Het artikel is onzin. De weergavetijd bij dezelfde kwaliteit zal korter zijn als u de onderverdelingen op het minimum zet en de kleuruitsnede op het maximum zet. Ja, de helft van de afbeelding is rood. Dus. De AA-sampler bestrijdt ruis beter dan onderverdelingen op elk element. Het is een feit.

    1. In ieder geval twijfelde iemand aan de juistheid, anders krijg je het gevoel dat alle bovenstaande opmerkingen zijn geschreven door bots of door mensen die niet begrepen waar ze over schreven, nadat ze het artikel één keer hadden gelezen.

      1. alsof het artikel is geschreven door een kerel van Blur, als je weet wat het is, het origineel is van Akin Bilgic. Het lijkt mij dat er geen dwazen in Blur zijn om zulke dingen te schrijven))

    1. in 2016, met de komst van Corona Render, is dit artikel niet langer relevant. Ik ben er nooit aan toegekomen het artikel te vertalen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *