Iluminare pentru vizualizarea arhitecturală în UE4.18 pentru VR

Există mai multe comenzi de strălucire. De exemplu, dacă doriți să schimbați luminozitatea luminii (Luminozitate), puteți introduce un număr nou în loc de „1,000000 „. Sau țineți mouse-ul între cele două săgeți negre din dreapta. Faceți clic și trageți mouse-ul în sus sau în jos și veți schimba luminozitatea în mod dinamic.


Aproape de câmp LightColor(culoare deschisă), puteți face clic pe lupă pentru a deschide paleta de culori, De asemenea, puteți extinde această filăLightColorprin deschiderea setării de culoare înRGB. De asemenea, puteți face clic pe pictograma cursorului mouse-ului pentru a obține o culoare pe care o puteți selecta cu mouse-ul undeva pe hartă. Încercați în ambele moduri acum.

Iată o listă cu cele mai importante proprietăți.Asigurați-vă că le încercați pe fiecare pe cont propriu.


Luminozitate(luminozitate) - totul este destul de evident.
FalloffExponent- asprimea luminii sau degradarea pe raza sa. Mutați lumina aproape de perete și jucați-vă cu această valoare și veți vedea cum funcționează.
LightColor- culoarea luminii.
Rază- zona de lumina.
Alte proprietăți sunt cel mai bine lăsate neschimbate, dar vom discuta unele dintre ele mai târziu.
Să facem portocaliul deschis, cu o luminozitate suficient de mare și o rază mare pentru a umple camera. Asigurați-vă că „reconstruiți (reconstruiți)” (Construiește Lumină) iluminare pentru a modela în sfârșit lumina.


4) SportLight

Cazare În lumina reflectoarelor puțin mai complicat decât plasarea punct de lumină– îl poți găsi în Actor'Oh Generic'o. Deschideți browserul ( Generic) și accesați fila Cursuri de actori. Deschide " Aprinde", și selectați Sport Light. (Veți vedea două subcategorii, SpotLightMovabilŞi SpotLightToggleable. Acestea sunt folosite în principal în animație sau conectate la joc, așa că nu le vom atinge deocamdată.)
Faceți clic dreapta pe scena dvs. și selectați " Adaugă SpotLight aici„Veți vedea un reflector alb arătând în jos. Mutați-l astfel încât să pară să arunce undeva un cerc de lumină.

Sport Lightau toate aceleași proprietăți (culoare, luminozitate, rază, declin), totuși au mai multe proprietăți suplimentare. Asigurați-vă că reflectorul este selectat și deschideți proprietățile acestuia. Găsiți două proprietăți noi.


OuterConeAngle- unghiul exterior al conului (unghiurile de aici sunt de la axa conului la generatrice, de la 0 la 90 de grade).
InnerConeAngle- Control hotspot în mijlocul conului. Dacă 0, atunci va fi lumină „moale”. Dacă aceasta este aceeași rază, este egală cuOuterConeAngle, reflectorul va avea un cerc luminos de lumină. (Lucrați cu această valoare și veți vedea cum funcționează)


Puteți roti reflectorul folosind instrumentul standard de rotație din editor. De asemenea, îl puteți controla în modul prima persoană (făcând clic pe „Blocați actorii selectați în cameră " în partea de sus a vizualizatorului de perspectivă.


Schimbați unghiul conului În lumina reflectoarelor pentru a acoperi zone mai largi. Reglați iluminarea pentru a obține aspectul final.

5) Lumină direcțională

Această lumină afectează toate zonele nivelului, atât în ​​interior, cât și în exterior, va exista o umbră de pe pereții camerei sau de orice altceva. Această lumină este cel mai bine folosită niveluri deschise.

Puteți găsi această lumină în același loc cu SportLight. S-ar putea să nu fie un bug mare atunci când vă deplasați în jurul nivelului, luminile de pe pereți pot „pâlpâi”. După „reconstruirea” luminii sau aprinderea luminii, pâlpâirea de obicei dispare.

Întoarceți lumina astfel încât să nu strălucească drept în jos. Întoarce-te Directional Light o puteți face în același mod cum este descris în secțiune SportLight. Dar în loc de acel con de lumină care indică direcția, va exista o mică săgeată albastră.
Dacă aveți mai multe obiecte apropiate, atunci cu o anumită rotație a luminii va apărea o umbră din obiecte.

Când „reconstruiți” lumina, umbrele pot arăta astfel:

Această umbră nu arată foarte bine, dar poate fi văzută de la mare distanță.


Dar dacă bifezi caseta, stricibForceDynamicLightîn setări de lumină șibCastDynamicShadowsîn setări obiectul dorit, apoi după „reconstruirea” luminii, umbra va fi clară:

Dar această umbră va dispărea pe măsură ce vă depărtați de obiecte (Puteți observa că umbra de la diferite obiecte dispare la distanțe diferite). Dar astfel de umbre ca pe hărțile lui Epic nu sunt obținute cu acești parametri. Le-au făcut manual.
Dacă nu aveți nevoie de umbre, atunci dezactivați „CastShadows„pe obiectul de care ai nevoie, din care să nu existe umbră, sau pe sursa de lumină dorită, dacă nu vrei deloc umbre din această lumină.

6) Lumina cerului

Această lumină luminează totul, peste tot, fără a crea umbre (din această cauză, cădere minimăFPS), deci este mai bine să-l folosiți pe niveluri deschise sau să vă asigurați că nu există locuri întunecate în nivel.
Să-l adăugăm (o poți găsi înGeneric'e, in Aprinde'Oh).

Imediat nivelul devine mult mai luminos (cu excepția tavanului, care este neschimbat.) Suprafețele sunt iluminate „de sus”, astfel încât podeaua primește multă lumină, pereții o cantitate medie de lumină, iar tavanul rămâne neluminat.Există două setări aici (este greu de descris ceea ce fac).

Luminozitate scăzută- luminozitate (amestec de culori, așa ceva, ce este Hz oricum) (implicit 0)LowerColor- culoare (culoare secundara pentru zonele mai putin iluminate, pereti si mai ales tavanul).

Prin ajustarea proprietățilorLumina cerului, obținem culoarea de mai jos este roșu aprins, iar culoarea de mai sus este albastru strălucitor (cu un aspect destul de strălucitorLuminozitate scăzută, este evident.)Se remarcă ca roșu și albastru dar s-au unit și au făcut un zid violet. Acest lucru ar trebui să fie evident dacă eliminațiPointLight.

Și ultimul lucru este icoana pentru Lumina cerului este foarte mic și cel mai probabil îl vei pierde la un nivel mare. În proprietăți, în Afişa categorii, schimbare DrawScale pe 10 .

7) Am pus totul împreună


Să vedem cât de diferitAprindeobiectele sunt folosite în scenă.
Să deschidem (Unreal Tournament 2007\UTGame\CookedPC\Private\Maps\DM-RisingSun.ut3), astfel încât să puteți vedea cum Epic a folosit aceste tipuri de lumini într-un cadru practic.
Încărcați harta și veți vedea ceva de genul acesta:

Privește în jur. Știi ce fel de lumină luminează ce? Sunt o grămadăPointLightŞi SportLightîn apropiere sunt lămpi și uși strălucitoare. Dar ce luminează activitatea rocilor din fundal? Să aflăm.
Faceți clic pe ";Comutați Afișare steaguri„butonează și pornește”Influențe ușoare". Selectați stâncile și veți vedea două linii albastre ieșind din ele.

Rândurile vor duce la douăDirectional Light pe scena.

Vei vedea că ambeleDirectional Lightîndreptate în direcții opuse. Și dacă te uiți la proprietăți, vei vedea ce fac ei pe scenă. O luminozitate (Luminozitate) 2.5 si emite galben- se comportă ca soarele. Luminozitate diferită 0.25 și emite o culoare albastru pal - lumină ca din cer. Dacă ați șters totul (pentru a face acest lucru, faceți clic dreapta pe orice sursă de lumină și selectațiSelectați Toate luminile), cu excepția acestor două surse de lumină, spațiul va arăta în continuare bine, cu excepția a câteva zeci de obiecte care au fost iluminate în mod special de alte surse de lumină.

8) Caută

Puteți selecta lumini în ferestrele de vizualizare 2D sau 3D pentru a afla ce fac, dar să aruncăm o privire la instrument - " Caută actori". Îl puteți deschide făcând clic pe pictograma binoclului din partea de sus a ferestrei - faceți acest lucru acum.

Caută actori deschide o fereastră cu o listă cu tot ce este de pe hartă. Dar vrem doar să ne uităm la lumină. Faceți clic pe " Conținând" și apoi în secțiunea " Caută", introduceți" light„. Numărul de obiecte găsite este afișat în partea de jos a afișajului, de exemplu „ 11 obiecte găsite".

Deci ce avem? Unele lumini direcționale, lumini direcționale, Și reflectoarelor. Notificare luminator. Dacă faceți dublu clic pe o lumină din lista care este utilizată în scenă, camera va sări la acea lumină.
Luați câteva minute și uitați-vă la proprietățile fiecărei surse și aflați rolul fiecăreia în scenă.



9) Volumul PostProcess


Afectează aspect si nivelul de iluminare. Volumul postprocesului este situat în jurul întregii scene. Dacă micșorați fereastra 3D, veți observa modificări subtile de culoare în arenă. Volumul PostProcess controlează luminozitatea și o grămadă de alte efecte atâta timp cât camera se află în interiorul acesteia.
Selecta Volumul PostProcessși deschide proprietățile sale. (Arată ca un câmp violet în proiecția 2D, sau îl puteți găsi prin Caută actori.)

Dezvoltam showroom-uri virtuale pentru imobiliare. În acest articol vă voi spune cum am configurat iluminatul în proiectele noastre.

Pregătirea scenei

Mai întâi ne-am configurat Rezoluția hărții luminoase toate obiectele din scenă. Pentru jocuri, rezoluția Light Map este de obicei lăsată albastră sau mărită la verde (dacă este vizualizată în modul Lightmap Density). Dar va trebui să facem cea mai mare Hartă luminoasă posibilă, deoarece vom folosi doar lumină statică. De exemplu, pentru o cameră am setat rezoluția Light Map de la 1024 la 2048, pentru un tabel - 512-1024. Dacă rezoluția este insuficientă, apar umbre „pixelate”, dar nu vrem asta. Cel mai important lucru este să găsiți un echilibru între un rezultat bun și o construcție care nu este supraîncărcată. Este mai bine să evitați datele de construcție mai mari de 512 MB, altfel pot apărea probleme cu compilarea executabilului.

Mod Densitate Lightmap

Amplasăm pe scenă Box Reflections, Lightmass Portals, Lightmass Importance Volume.

Caseta Reflecții O asezam in fiecare camera in functie de marimea ei pentru a obtine reflexii pe podea si obiecte metalice. Folosim Planar Reflection doar pe oglinzi, pe care le aducem la propriul nivel și apoi le încărcăm prin Level Streaming Volume, deoarece acest lucru afectează foarte mult FPS. Și în VR cel mai important lucru este stabil 90 FPS!

Portaluri de masă luminoasăÎl punem pe ferestre și uși. Portalurile măresc timpul de construcție, astfel încât pot fi plasate doar în zone întunecate pentru a crește cantitatea de lumină.

Volumul importanței masei luminoase fă-l cât mai mare posibil, astfel încât să nu se intersecteze cu învelișul exterior, altfel pot fi evidențiate pe obiectele mobile. Principalul lucru aici este să experimentați cu dimensiunea volumului importanță în sine și cu cantitatea de dimensiune a celulei cu detalii volumetrice ale hărții de lumină. Folosim valoarea Lightmap Detaliu Dimensiunea celuleiîn intervalul 25-50 —   Mai mult poate da tranziții aspre la negru, mai puțin — da un efect de vânătăi.

Uneori apar probleme cu apariția punctelor chele (scurgeri) la construirea celulelor, atunci puteți modifica parametrul MinBrickError=0 din fișierul BaseLightmass.ini.

Reflectii cutie, Portaluri de masă luminoasă, Volumul importanță al masei luminoase

Verificați-vă materialele la modă Complexitatea Shader. Dacă există materiale roz deschis, corectează-le.

Complexitatea Mode Shader

Iluminat

Așezați o sferă cu materialul cerului. Dimensiunea sferei este de aproximativ R=15000m. Realizam materialul Unlit.

Material pentru cer

O punem pe scenă Lumina cerului, fă-l Static. Dezactivează caseta de selectare Emisfera inferioară din ea. Nu uitați să ajustați Sky Distance Treshhold, dacă valoarea sa este prea mare și sfera exterioară este prea mică, lumina de la SkyLight nu va fi calculată corect și întreaga scenă va fi neagră. Intensitatea este lăsată la unu.

punem Volumul post-proces. Dezactivați ocluzia ambientală - afectează FPS, deoarece SSAO este construit deasupra imaginii. Vom crea umbre subtile folosind setările Lightmass. Configurarea expunerii. Schimb totul după cum doriți după construirea luminii, în principal balansul de alb și contrastul.

Setări SkyLight și post proces

Aranjam surse de lumina locale. Toate lămpile sunt statice! Pentru un realism mai mare, puteți folosi valori de temperatură precum cele ale becurilor reale. 2700 Kelvin — alb cald, 4000 Kelvin — alb rece.

Directional Light  — În acest apartament am decis să nu plasăm soarele pentru a obține mai multă iluminare naturală pentru clima noastră :) SkyLight produce chiar și lumină difuză, care corespunde cu vederea de iarnă de la fereastră. Dar voi lăsa apusurile de soare mai jos pe care le folosesc de obicei.

Directional Light

Setări Lightmass

  1. Scala de nivel de iluminare statică. Această opțiune creează umbre frumoase, dar pot apărea artefacte din cauza acesteia. Folosim o valoare de 0,2-0,3. Este important să rețineți că, cu cât valoarea este mai aproape de 0, cu atât construirea durează mai mult. Dacă doriți totul super frumos, utilizați o valoare de 0,1, dar apoi construirea va dura mai mult, trebuie să creșteți și valoarea Calității Iluminării Indirecte.
  2. Iluminarea indirectă și a cerului sări  — mizăm pe 10 sărituri. Cred că acest lucru este optim valoarea minima. Puteți face sărituri indirecte = 100 și Sky Bounces = 15, dar nu văd o diferență semnificativă între 100 și 10. Numai primele 3 sărituri contează mult timp.
  3. Calitatea iluminatului indirect  — Folosim valoarea 10, dă întotdeauna un rezultat bun. În general, se crede că valorile înmulțite Scala de nivel de iluminare staticăŞi Calitatea iluminatului indirect ar trebui să fie egal cu 1, sfătuiesc cel puțin să nu folosiți valori mai mici decât atât.
  4. Netezimea iluminatului indirect. Nu trebuie să modificați acest parametru; o valoare de 0,75 face imaginea mai clară.
  5. Dezactivați Utilizați ocluzie ambientală. Dezactivează caseta de selectare Comprimați Lightmass — acest lucru crește foarte mult timpul de construcție, dar nu va exista nisip pe pereți.

Setări Lightmass

Concluzie

Toate ușile dulapurilor de bucătărie sunt mobile. Lumina a fost considerată destul de uniformă, există un ușor degrade pe ușile albe, dar acest lucru se întâmplă întotdeauna cu alb, dacă este posibil este mai bine să folosiți tonuri mai închise.

Apropo, fiți atenți la masă și la umbrele din farfurii. Umbrele sunt neclare, plăcile par să leviteze. Acest lucru s-a întâmplat din cauza faptului că acest tabel are o mapare UV incorectă și, în plus, o rezoluție a hărții luminii insuficient de mare - 64. Pentru prima dată, puteți pur și simplu să creșteți rezoluția hărții luminii la 512, dar aceasta încă nu va funcționa. rezultat bun. Scanarea este ciupită undeva, întinsă undeva, iar densitatea nu va fi uniformă, ceea ce poate duce la artefacte. Voi scrie despre cum să pregătiți corect conținutul 3D în articolul următor.

Informații suplimentare

Despre iluminare:

Vă recomand să îl vizionați pe YouTube Academia Iluminată Unreal. Canalul este găzduit de artistul senior de iluminat Dice Tilmann Milde, care este responsabil cu iluminarea în Battlefront. Videoclipuri foarte utile, dar în engleză și de mai mult de o oră.

Umbrele oferă obiectelor un sentiment de contact cu o suprafață, oferind astfel un sentiment de adâncime și spațiu tipuri de bază umbre care sunt în Motor ireal 4.

Lumini Statice

Iluminarea statică aruncă umbre și lumini complet statice, ceea ce înseamnă că acest tip de iluminare nu are efect direct asupra obiectelor dinamice (iluminarea statică este coaptă în memoria cache de iluminare indirectă, deci are un anumit efect), ca în exemplul de mai jos.

Personajul din poza de mai sus, cel din stânga, stă sub o lumină statică, lumina și umbrele nu interacționează cu el în niciun fel; iar cel din dreapta stă sub o sursă de lumină staționară.

Iluminare directă cu hărți de umbre în cascadă (umbrirea întregii scene)

Lumini Direcționale Staționare- surse speciale de lumină, deoarece ele suportă umbrirea întregii scene prin Hărți în umbră în cascadă, în momentul utilizării umbririi statice Acest lucru este foarte convenabil pe niveluri cu multă vegetație animată; vrei să muți umbre în jurul playerului, dar nu vrei să plătești pentru prea multe cascade pentru a acoperi distanțe mari de vizualizare Pe măsură ce distanța crește, umbrele dinamice se dizolvă atât de mult încât tranziția este aproape imperceptibilă această oportunitate, schimbați doar valoarea Distanța de umbră dinamică Lumină staționară V DirectionalLightStationary pentru a modifica distanța de dizolvare.

Umbrele surselor de lumină staționare

Obiecte dinamice (cum ar fi StaticMeshComponentsŞi SkeletalMeshComponents cu mobilitate setata la Mobil) trebuie să fie integrate în lumea umbririi statice la distanța câmpurilor de umbrire ale hărții. Acest lucru se realizează folosind umbre pentru fiecare obiect în mișcare. iar al doilea pentru a controla umbra proiectată în restul lumii. Cu această configurație, umbrirea pentru luminile staționare vine de la obiectele dinamice pe care le afectează Dacă există un număr suficient de obiecte dinamice, va fi mai eficient să utilizați iluminarea mobilă. În scena de mai jos, sferele sunt obiecte în mișcare și toate primesc umbre din lumea statică și își proiectează propriile umbre, care se conectează cu alte umbre din depărtare Per obiect sunt afișate și umbre pentru fiecare obiect în mișcare.

Per obiect umbrele sunt folosite pentru mutarea componentelor folosind o hartă de umbre a limitelor obiectului, astfel încât limitele trebuie să fie precise. Pentru ochiurile de schelet, aceasta înseamnă că trebuie să aibă atuul fizicii. Pentru particule, orice casetă de delimitare fixă ​​trebuie să fie suficient de mare pentru a conține toate particulele.

Umbre dinamice

Sursele de lumină în mișcare proiectează umbre (și iluminare) complet dinamice pe toate informațiile de iluminare nu vor fi incluse în hărți de lumină, rețelele scheletice, efectele etc. vor primi și proiecta umbre dinamice de la sursele de lumină în mișcare.

Umbrele dinamice sunt cele mai consumatoare de resurse.

Previzualizare umbră

Când editați iluminarea staționară sau statică, umbrele pot deveni „necoapte” Previzualizare Shadowing vă arată cum vor arăta umbrele după coacere.

Astfel de umbre (adică necoapte) sunt afișate în editor cu textul „ Previzualizare„, pentru a le recunoaște printre alte umbre.

Dacă vă testați jocul în editor înainte de a reaprinde iluminarea, previzualizările umbrelor vor dispărea, deoarece acestea există doar în modul de editare, și nu în modul de joc în editor.

Pentru a obține umbre din previzualizarea umbrelor, trebuie să selectați opțiunea Construiți iluminat din meniu Construi.

Puteți dezactiva previzualizările umbrelor debifând Previzualizare umbre Indicatorîn fereastra de vizualizare Afișați/Vizualizați meniu.

Dacă doriți să schimbați materialul text al funcției de iluminare care proiectează acest text, atunci îl puteți găsi în: Motor/EditorMaterials/PreviewShadowIndicator.

Toți împreună

Când toate umbrele sunt reunite, fiecare își aduce pe ale sale punctele forteși compensează punctele slabe alții – impresionează prin aspectul lor.

Simulează iluminarea cerului prin captarea unei imagini panoramice (numită și Cubemap) părți îndepărtate ale scenei (care sunt mai departe decât parametrul SkyDistanceThreshold), și folosind-o ca iluminat. Aceasta înseamnă că iluminarea de la va fi similară cu împrejurimile scenei. Acest lucru va captura, de asemenea, obiecte laterale, cum ar fi norii suprapusi pe skybox sau munții din jurul scenei. De asemenea, puteți instala manual un Cubemap, care va ilumina spațiul.

Imaginea se va schimba doar atunci când recalculați iluminarea sau actualizați scena folosind comanda Construi -> Actualizați capturile de reflecție. De asemenea, puteți actualiza Lumina cerului folosind butonul Recapturați scenaîn parametri. Vă rugăm să rețineți că dacă modificați textura cerului sau mediul dincolo de parametrul SkyDistanceThreshold, iluminarea nu se va schimba automat.

Poate fi folosit în schimb Ambient Cubemap, deoarece Sky Light acceptă umbrirea locală, ceea ce împiedică luminatorul să ilumineze spațiile interioare.

Există două tipuri în funcție de mobilitate:

Reflexiile de mediu funcționează prin captarea unei scene statice în multe puncte și reproiectarea lor în forme simple, ca în sferele de reflexie. Utilizatorul selectează punctul de captură plasând un ector ReflectionCapture Reflecțiile sunt actualizate în timp real pentru a ajuta la ajustarea poziției lor, dar sunt statice atunci când sunt redate ReflectionCapture ectorii îi depășesc pe cei mari, astfel încât să puteți rafina reflexiile în zone după cum este necesar. De exemplu, puteți plasa o prindere în centrul camerei și apoi să-i rafinați reflexiile prin plasarea unor dispozitive de prindere mai mici în colțurile camerei.

Materialele cu strălucire diferită sunt susținute prin crearea de mipmaps neclare din hărți cube capturate.

Cu toate acestea, folosind doar reflexiile cubemap pe suprafețe foarte aspre are ca rezultat reflexii prea luminoase, care au scurgeri semnificative din cauza lipsei de ocluzie locală. Acest lucru este rezolvat prin utilizarea datelor lightmap create de Masa luminii.Reflecțiile cubemap sunt amestecate împreună cu o hartă luminoasă de specularitate indirectă bazată pe rugozitatea materialului. Materialul foarte gros (complet difuz) va converge cu rezultatul hărții de lumină. detaliu ridicat (hărți cube) și frecvență joasă (hărți luminoase) Pentru ca acest lucru să funcționeze corect, harta luminoasă poate avea doar iluminare indirectă. Aceasta înseamnă că numai iluminarea difuză de la sursele de lumină staționară poate îmbunătăți calitatea reflexiilor pe o suprafață rugoasă Tipul de iluminare statică nu poate fi utilizat împreună cu reflexiile mediului, deoarece va oferi iluminare directă hărții luminoase.

Vă rugăm să rețineți că, pentru a vedea rezultatul acestei amestecări, harta luminoasă trebuie construită cel puțin o dată, iar harta trebuie să aibă iluminare difuză indirectă semnificativă.

Forme de captare a reflexiei

În prezent, există 2 forme de captură de reflexie: sferă și casetă. Forma de captură este foarte importantă, deoarece controlează ce parte a scenei va fi capturată în harta cubului, cum va fi reproiectată forma scenei în reflexii. a scenei va putea primi reflexii din harta cubului (influența zonei).

Forma sferei

Forma sferei este cea mai folosită. Nu se potrivește niciodată cu forma geometriei reflectate, dar nu are rupturi sau colțuri, prin urmare distorsiunea este uniformă.

Punctele de captură cu o rază mai mică suprascrie datele din punctele de captură mai mari.

Forma cutie

Forma cutiei este destul de limitată în aplicare și este folosită în principal pentru coridoare și încăperi dreptunghiulare Motivul este că doar pixelii din interiorul cutiei pot capta reflexii și, în același timp, toată geometria din interiorul cutiei este proiectată în funcție de. forma chiar a acestei cutii, creând artefacte semnificative în multe cazuri.

Când este selectată o casetă, aceasta are un contur portocaliu în jurul formei de proiecție.

Editare

Este important de reținut că captarea reflexiilor nu se realizează în mod automat atunci când se încarcă harta, se editează direct sau se reface iluminarea Dacă modificați luminozitatea luminii sau mutați geometria în scenă selectați punctul de captură și faceți clic pe Actualizare capturi pentru a actualiza captura de date.

A fost adăugat un mod de afișare Reflection Override pentru a facilita vizualizarea modului în care sunt configurate reflexiile. Acest mod anulează toate valorile normale prin netezirea vârfurilor normale și face ca toate suprafețele să fie complet speculare și complet netede (ca o oglindă). limitări și artefacte, așa că merită să treceți Uneori la acest mod pentru a vedea cum se comportă reflexiile în condiții normale.

Au fost adăugate câteva noi steaguri utile pentru a izola unele componente de iluminare:

Reglarea nivelului pentru a utiliza reflexiile ambientale


Probleme de performanță

Costul reflectării mediului depinde doar de câte capturi afectează un pixel de pe ecran. Acest lucru este foarte asemănător cu iluminarea amânată iar reflexiile aspre sunt mici.

Restricții

  • Reflecțiile care utilizează această metodă sunt aproximative, în special, reflectarea unui obiect se potrivește rareori cu forma reală a obiectului din scenă, datorită proiecției acestuia pe forme simple Cubemaps sunt amestecate împreună cu suprafețe plate, netede reflexii speculare, va afișa erorile în mod mai vizibil.
  • Capturarea unei scene în hărți cub este un proces lent care trebuie făcut în afara jocului. Aceasta înseamnă că obiectele dinamice nu pot fi afișate în reflexii, dar pot primi reflexii dintr-o scenă statică.
  • Pentru a reduce eroarea, este surprins doar suprafețele pur speculare (metale) ca și cum ar fi difuza lor.
  • Umbrire

    Luminile în mișcare sunt configurate pentru a arunca umbre dinamice, care au un impact semnificativ asupra performanței. Este de remarcat faptul că resursele consumate cresc în principal din numărul de obiecte iluminate de surse de lumină în mișcare, precum și din complexitatea geometriei de pe acestea. Se pare că o sursă de lumină cu o rază mică va afecta performanța mult mai puțin decât cu o rază mare, deoarece, de obicei, mult mai puține obiecte cad în raza mică.

    In categoria " Transforma„În setările oricărei surse de lumină puteți găsi parametrul” Mobilitate"("Mobilitate"). Schimbați-l în " Mobil"("Mobil"). Această proprietate afectează și sursele de lumină adăugate la plan.

Introducere

Numele meu este Lasse Rohde și sunt reprezentant al studioului xoio. Suntem o mică agenție specializată în randarea și ilustrarea lucrărilor de arhitectură și marketing. Lucrăm de obicei într-un fel de mediu 3D „tradițional”, folosind aplicații precum 3ds Max și altele asemenea. Testăm în mod constant noi motoare de randare și în prezent favorizăm Corona Renderer, V-Ray și Octane. Fiecare „motor” are punctele sale forte și încercăm întotdeauna să le folosim pe fiecare în scopurile noastre În opinia mea, există câteva tendințe principale în industria noastră: dorința de realism foto și rezultate rapide - dacă nu vorbim de timp real. . A nu aștepta ca rezultatul să fie gata în ferma de randare a fost întotdeauna un vis pentru noi - mai ales atunci când cream animație Principalul dezavantaj al „timpului real”! pentru o lungă perioadă de timp nu a existat o calitate insuficientă în comparație cu imaginile și animațiile „pre-rendate”. Așa că, deși părea foarte interesant, aplicarea sa într-un context de vizualizare părea greu de imaginat - și, sincer, să arăți „gamey” a fost o vânzare dificilă pentru clienții exigenți din domeniul arhitecturii și al întreprinderilor. Dar lucrurile s-au schimbat dramatic. Rezultatele create în „motoarele în timp real” astăzi sunt foarte frumoase și convingătoare!

De ce Unreal Engine?

Lansarea UE4 a primit multă atenție în industria noastră și posibilitățile păreau nesfârșite. Sistemul de materiale PBR (Physical Rendering) și fluxul de lucru simplu pentru crearea unui model în Unreal Engine au fost motivul cel mai convingător pentru noi să încercăm - pentru că este posibil să obținem calitate suplimentară! Dacă ați văzut lucrarea lui Koola (disponibilă și pentru descărcare pe Unreal Engine Marketplace), care a devenit virală în urmă cu câteva săptămâni, probabil că veți fi la fel de convins ca și noi că Unreal Engine 4 este capabil de o calitate impresionantă , Vreau să vă ofer o scurtă prezentare a fluxului de lucru pentru crearea unei scene de apartament din Berlin, pe care o puteți descărca de pe Marketplace (magazinul de marcă Unreal) și să vedeți câteva dintre tehnicile și tehnicile pe care le-am întâlnit în timp ce lucram la scenă. Unele dintre ele le-am găsit pe cont propriu, în timp ce altele sunt derivate din informații pe care le-am găsit pe internet. În Unreal Engine, forumurile și documentația sunt resurse extinse și extinse, la fel ca și conținutul de bază care vine cu „motorul” și seturile de scene pe care le puteți obține de pe Piață.

apartament din Berlin

Am creat o serie de imagini cu acest apartament într-o clădire istorică din Berlin din 2013 folosind 3ds Max cu Corona Renderer. Este o modalitate flexibilă de a gestiona maparea culorilor care a ajutat cu adevărat la evidențierea dispoziției ușoare a acestei scene. Acesta a fost și motivul pentru care am ales UE4 pentru testare. Am observat că UE4 a fost folosit cu succes în scene cu iluminare capricioasă și texturi zgomotoase. Bănuiam că nu ar fi atât de ușor să obții o umbră precisă și GI (Iluminare globală) într-un interior ultra-alb. Și sincer să fiu: nu este o sarcină ușoară!

Fig 1.

Mai sus este randarea originală realizată în 3ds Max și Corona Renderer. Pentru a vedea alte imagini, faceți clic pe .

Mai jos este un videoclip cu scena finală

Voi începe de la început:

Scena originalăModelarea a fost făcută în 3dsmax în grabă. Așa că voi intra în detaliu doar asupra părților care se reflectă în imaginile finale. Desigur, această abordare nu este posibilă în medii în timp real. Pentru a schimba scopul țintei atunci când a fost folosit în Unreal Engine, a trebuit să reduc puțin, deoarece mobilarea și detalierea întregului spațiu ar fi luat prea mult timp pentru a testa.


Fig 2

Am decis să export doar două camere: le puteți vedea în partea de jos a capturii de ecran de mai sus.

Export geometrie pentruIreal Motor-aceasta este o sarcină foarte dificilă DACĂ aveți mai multe idei. Are sens să împărțiți aceste idei în părți. Deoarece Lightmass se calculează într-o hartă separată pentru fiecare obiect, este bine să fii puțin atent cu valorile mari în special la obiectele mari plate precum pereții și tavanele. Din această cauză, am exportat doar suprafețele interioare ale pereților pe care le vedem de fapt, am adăugat puțin și în partea de sus și de jos a pereților pentru a le intersecta cu tavanul ulterior. Cred că asta este cale bună pentru a preveni „scurgeri de lumină” - artefacte ușoare care apar atunci când geometria nu este închisă sau nu se intersectează. Nu este o problemă atunci când este o scenă întunecată care implică cantitate mare texturi - dar din moment ce ne dorim un spațiu super-alb, este important să creăm GI (iluminare globală) cât mai precisă, mai ales în colțuri.


Fig.3

Al doilea lucru cel mai important— creați o scanare coordonată pentru canalul GI, care va fi salvată pentru calculul masei luminii în UE. În 3ds Max, acesta ar fi canalul UV 2. Canalul 1 este pentru utilizarea tuturor celorlalte texturi, cum ar fi difuzia, rugozitatea, normalele etc. Unreal Engine calculează canalele începând de la 0, ceea ce poate fi puțin confuz la început - dar odată ce înțelegi, este simplu. Pentru un canal de textură, poate funcționa orice tip de mapare, cum ar fi cubic sau cilindric. În cele mai multe cazuri, operația de aplatizare a maparii în 3ds Max cu modificatorul Unwrap (obținerea unei maturi în care pot fi setate pragul și gradul de desfășurare) este suficientă pentru a obține coordonatele UV.


Fig 4

Dacă doriți să obțineți toate obiectele din scena în UE4 așa cum au fost în scena dvs. maximă, atunci trebuie să modificați modelele pentru a le insera în locurile în care au fost în timpul exportului. Pentru obiecte individuale, cum ar fi scaunele, este convenabil să exportați o dată în Unreal Engine și să îl copiați în interior. Pentru a face acest lucru, trebuie să mutați obiectele mai aproape de centru în scena dvs. 3ds Max, deoarece centrul obiectului (pivotul) în UE va fi acolo.

Fig 5


Fig 6

Vedeți că folosesc geometrie high poly fără simplificare LOD (nivel de detaliu). Acest lucru este, desigur, recomandat doar în scene mici ca aceasta, dar din moment ce am experiență în netezirea geometriei și nu vreau margini zimțate pe mobilierul meu, are sens pentru mine. Deși nu am nicio îndoială că camera are nevoie de optimizare ;). Asigurați-vă că geometria dvs. va fi combinată într-un singur obiect și că elementele au un ID de material diferit pentru procesarea diferitelor materiale mai târziu în UE4 rezoluție și treceți la editorul Unreal Engine! Import înIreal Motor 4 Importarea fișierelor FBX în Unreal Engine 4 funcționează destul de bine! Am făcut acest lucru în mai multe etape Am pregătit diverse fișiere, în această ordine: - Geometria camerei într-un fișier FBX separat. - Fișiere diferite pentru modele, fiecare cu mai multe obiecte în ele. Asigurați-vă că debifați caseta de selectare Combinați rețele pentru a separa obiectele și nu le combinați într-un singur obiect!

Fig 7

Materiale

Sunt destul de deschis și un mare fan. instalatii simple! Deci exemplele de shader sunt foarte simple, constând dintr-o hartă difuză, desaturată și amestecată cu negru. Aceeași hartă este corectată de culoare și inversată în canalul de rugozitate. Gata.


Fig 8

O hartă normală ar fi exagerată aici, dar nu te limita la a explora materialele din scenă.


Fig 9

Aici vezi materialul lemnos folosit pentru scaune si masa - lemnul inchis cu o reflexie mat dezvaluie structura si textura lemnului In imaginea urmatoare vezi de doua ori mai multe materiale care pot fi de interes, perdele, iluminate din spate lumina soarelui– din material pe două fețe.


Fig 10

Trebuie să setați modelul de umbrire la „Subsurface” și să adăugați un nod constant cu o valoare mai mică de 1 și să faceți legătura cu proprietatea de opacitate a materialului dvs. pentru a obține acest efect. Sticla din prim-plan are un material de sticlă foarte simplu aplicat:


Fig 11

El are destul culoare închisă difuzie, rugozitate zero și specularitate ridicată. Am aplicat și un nod Fresnel cu o valoare de 1,5 pentru a controla opacitatea și refracția ca în viața reală. Mai sunt multe moduri complicate obținerea unui pahar mai realist - dar sincer am avut probleme cu controlul parametrilor, așa că această sticlă simplă pare să funcționeze destul de bine. fila din panoul din stânga.


Fig 12

Materialul pe care vreau să îl arăt este materialul care a fost aplicat pe podea, vreau să îl arăt pentru că este singurul material care are o hartă normală aplicată.


Fig 13

Aici vedeți un material cu culoare difuză, textură aspră și o hartă normală. Culoarea este gri deschis, cu valoarea 4. Rugozitatea pare ceva mai complexă: În stânga vedeți aceeași hartă, de trei ori mai mare, cu un nod TexCoord. Canalul roșu este înmulțit cu celelalte și apoi conectat ca alfa în interpolarea nodului liniar (Lerp) pentru a le amesteca valorile. 0,3 și 0,2 în acest exemplu, obținem o reflexie subtilă zgomotoasă pe podeaua plăcilor. Apoi îl modificăm cu nodul „Putere” pentru a obține cantitatea necesară rugozitatea, iar acest material a ieșit bine și Normal este din nou expus la TexCoord și apoi desfășurat prin nodul „FlattenNormal” pentru a obține doar un relief subțire pe material. Pregătirea modeluluiÎnainte de a adăuga obiecte la scena dvs., este întotdeauna cel mai bine să vă împrăștiați geometric materialele. Trebuie să faceți acest lucru o singură dată și puteți aplica diferite materiale. Este un proces rapid: aici puteți vedea cât de important este să aplicați diferite ID-uri de materiale obiectelor dvs. pentru a plasa diferitele materiale acolo unde le aparțin!


Fig 14

Construirea scenei Pe scurt, importați totul împreună. În primul rând, trebuie să trageți geometria în cameră. Cel mai bun mod, asamblați o scenă – trageți și plasați într-o scenă goală.


Fig 15

Poligoanele părții exterioare a pereților nu sunt vizibile aici - așa cum am explicat mai sus: sunt doar unilaterale pentru un calcul mai bun al Masei luminii. În astfel de cazuri, ar fi bine să setați rezoluția Lightmap (obținută prin scanare). obiecte mari cu valoare mare, pentru pereți, de exemplu, am setat valoarea la 2048.

Fig 16

După cum am menționat mai sus, „scurgerea luminii” poate fi o problemă. Pentru a preveni acest lucru, am plasat cutii negre în jurul întregii scene. Pare puțin dezordonat la exterior, dar este curat la interior ;)


Fig 17

Iluminatul și parametrii acestuia

Configurarea luminii este, de asemenea, destul de simplă: am folosit „metoda Koola” - o combinație de soare și pete de lumină în fața ferestrei pentru a simula fluxul de lumină. Este foarte eficient și ușor de gestionat! Acum doar câteva setări sunt importante pentru calcularea iluminării globale

Fig 18

Am crescut semnificativ razele reflectate și calitatea luminii. Am scăzut și netezirea la 0,6. Detaliile sunt mai bine definite și umbrele nu se spală la fel de mult Am ajustat și iluminarea directă în umbra dinamică pentru a obține umbre mai bune. Acest lucru este important și pentru mișcarea luminii mai târziu în animație!

Fig 19

Ultimul pas înainte de a face clic pe „Creare” este să setați calitatea luminii la „Producție”.

Fig 20

Acest lucru ar trebui să aibă ca rezultat o iluminare mai fină de fapt, când am ajuns prima dată în acest punct, am fost încântat! Aceasta este de fapt partea tare a acestui motor: să te entuziasmezi! A fi capabil să mă mișc în interiorul „rendarii” mele în timp real a fost un moment cu adevărat fericit! Post-procesare Una dintre cele mai mari caracteristici este capacitatea de a aplica corecția culorilor și efectele camerei chiar în editor. Acest lucru se poate face cu PostProcessVolume în setările globale. Am făcut câteva ajustări la saturație, franjuri și vignetare, croma și am dezactivat expunerea automată setând valorile minime și maxime la 1 și am crescut luminozitatea generală setând compensarea expunerii la aproximativ 1,42. Am adăugat și un punct culminant, care mi se pare uimitor pentru că totul se întâmplă în timp real!


Fig 21

Setări de animație Capacitatea de a se mișca liber în cadrul scenei face din animație o sarcină foarte ușoară și plăcută datorită momentului feedback medii în timp real. Cum utilizator frecvent software Pentru compoziție, nu mi-a luat mult să mă adaptez la instrumentele integrate și să configurez animația. Primul lucru de făcut a fost să creez un Matinee Actor (un set de instrumente pentru crearea secvențelor video).

Fig 22

Când deschideți Matinee, veți vedea o fereastră cu o secțiune de urmărire și un editor de curbe.


Fig 23

Configurarea camerei și a animației este simplă. Mișcarea este controlată cu cadre cheie și curbe la fel ca în alte programe de animație. Lucrările de editare se efectuează numai în editorul Matinee.


Fig 24

Puteți vedea calea camerei doar în editor și puteți controla editarea din mers După ce animația brută este făcută în Matinee, export animația ca .AVI și o termin în Premiere și o potrivesc la muzică!

Concluzie

Întregul proces, de la exportul din 3ds Max și importul în Unreal Engine 4, lucrul cu umbre și iluminare, crearea de animație și apoi postarea lui pe YouTube, mi-a luat aproximativ o zi. Această viteză este nemaiauzită în ArchVIZ și reflectă potențialul cheie care se află în centrul utilizării Unreal Engine 4 pentru a reda lucrările. Rezultatul rapid al acțiunilor noastre este o adevărată revoluție Testăm și ne gândim în mod constant la posibilitățile de utilizare a acestui tip de creație! proces tehnologicîn munca noastră de zi cu zi Există multe aplicații posibile și ne-ar plăcea să le explorăm! Lasse, xoio