Fl-ewwel parti, fejn nagħtu ħarsa aktar fil-fond lejn il-ħolqien tal-logħob 3D, aħna niffokaw kompletament fuq l-istadju ta 'fuq tal-proċess. Dan ifisser li tkaxkar il-kotba tal-matematika tagħna, tfarfar fuq alġebra lineari, matriċi, u trigonometrija - oh yeah!

Aħna ser inħaddmu kif il-mudelli 3D huma trasformati u kif is-sorsi tad-dawl huma kkalkulati. Id-differenzi bejn shaders tal-kantuniera u tal-ġeometrija jiġu investigati bir-reqqa u tara fejn taqbel it-tessellazzjoni. Biex ngħinu spjegazzjonijiet, aħna nużaw dijagrammi u eżempji ta 'kodiċi biex nuru kif il-matematika u n-numri huma mmaniġġjati f'logħba. Jekk m'intix lest għal dan kollu, tinkwetax - tista 'tibda. Rendiment tal-Logħob 3D 101. Madankollu, ladarba jkun issettjat, aqra għall-ewwel idea tagħna fid-dinja tal-grafika 3D.

X'inhu l-iskop?

Fid-dinja tal-matematika, punt huwa sempliċement pożizzjoni f'qasam ġeometriku. M'hemm xejn iżgħar minn punt peress li m'għandux daqs, u għalhekk jistgħu jintużaw biex jiddefinixxu b'mod ċar fejn jibdew u jispiċċaw oġġetti bħal linji, pjani u volumi.




Għal grafika 3D, din l-informazzjoni hija kruċjali biex tiddetermina kif se jidher kollox, peress li dak kollu muri huwa linja, pjan, eċċ. Ġbir. L-immaġni hawn taħt hija screenshot mir-rilaxx tal-2015 ta 'Bethesda. Fallout 4:




Jista 'jkun xi ftit diffiċli biex tara kif dawn huma biss munzell kbir ta' punti u linji, allura aħna ser nuruk kif tidher l-istess xena fil-modalità 'wireframe'. Il-magna li tirrendi 3D taqbeż in-nisġa u l-effetti magħmula fl-istadju tal-pixel u ma tiġbed xejn ħlief linji kkuluriti li jgħaqqdu t-tikek.







Kollox jidher differenti ħafna issa, imma nistgħu naraw diversi oġġetti, l-ambjent, u l-linji kollha li jingħaqdu flimkien biex joħolqu l-isfond. Xi wħud huma biss numru żgħir ta 'linji, bħal blat fit-tagħrif miksub, filwaqt li oħrajn għandhom linji biżżejjed biex jidhru sodi.

Kull punt fil-bidu u fit-tmiem ta 'kull linja ġie maħdum b'ħafna matematika. Uħud minn dawn il-kalkoli huma veloċi u faċli ħafna; oħrajn huma ħafna iktar diffiċli. Hemm qligħ sinifikanti fil-prestazzjoni billi naħdmu flimkien fuq gruppi ta 'punti, speċjalment f'forma ta' trijangolu, allura ejja nagħtu ħarsa aktar mill-qrib lejn dawn.




X'inhu meħtieġ għal trijanglu?

Isem trijanglu jgħidilna li l-forma għandha 3 angoli interni; Għal dan għandna bżonn 3 kantunieri u 3 linji li jgħaqqdu l-kantunieri. Isem korrett tal-kantuniera għoljiet (il-punti huma l-kelma plural) u kull wieħed huwa definit minn punt. Peress li aħna bbażati fuq dinja ġeometrika 3D, Sistema ta 'koordinati Kartesjani għall-punti. Dan ġeneralment jinkiteb flimkien bħala 3 valuri, per eżempju (1, 8, -3) jew b'mod aktar ġenerali (X ve Z).

Minn hawn, nistgħu nżidu żewġ vertiċi oħra biex niksbu trijanglu:




Innota li l-linji murija mhumiex verament meħtieġa - jista 'jkollna biss punti u nistgħu ngħidu lis-sistema li dawn it-3 vertiċi jagħmlu trijanglu. Id-dejta kollha tal-vertiċi hija maħżuna fi blokka kontigwa ta 'memorja msejħa a bamper tal-kantuniera; Informazzjoni dwar il-forma li se jagħmlu hija kkodifikata direttament fil-programm ta 'rendering jew maħżuna fi blokka oħra tal-memorja. buffer tad-direttorju.

Fil-każ tal-ewwel, jissejħu forom differenti li jistgħu jiġu ffurmati mill-kantunieri primittiv Direct3D jippreżenta roster, strixxi u fannijiet f'forma ta 'tikek, linja u trijangolu. Użati b'mod korrett, strixxi trijangulari jgħinu biex itejbu l-prestazzjoni billi jużaw kantunieri għal trijangoli multipli. Fl-eżempju t'hawn taħt, nistgħu naraw li huma meħtieġa biss 4 kantunieri biex jingħaqdu 2 trijangoli - li kieku kienu separati, ikollna bżonn 6 vertiċi.

Jekk trid tkopri kollezzjoni akbar ta 'kantunieri, eż. mudell NPC fil-logħba, imbagħad a - din hija blokka oħra ta 'memorja, iżda tikkonsisti minn buffers multipli (vertiċi, indiċi, eċċ.) u riżorsi ta' nisġa għall-mudell. Microsoft tipprovdi introduzzjoni malajr għal dawn l-użi tal-buffer. dokumenti onlajn sors.

Għalissa, ejja niffukaw fuq dak li jsir għal dawn l-irkejjen f'logħba 3D, kull darba li jinħoloq qafas ġdid (jekk m'intix ċert xi jfisser dan, erġa 'ħu kenn malajr) tirrendi 101). Fi kliem sempliċi, waħda jew żewġ affarijiet isiru lilhom:

  • Mexxi l-vertiċi għal post ġdid
  • Ibdel il-kulur tal-kantuniera

Lest għal xi matematika? Tajjeb! Għax hekk isir.

Daħħal il-vettur

Immaġina li hemm trijanglu fuq l-iskrin u tagħfas buttuna biex tmexxih lejn ix-xellug. Naturalment (X ve Z) in-numri ta 'kull vertiċi jvarjaw kif xieraq u huma; iżda, Kif Dan jista 'jidher ftit mhux tas-soltu. Il-maġġoranza l-kbira tas-sistemi ta 'rendering tal-grafika 3D, aktar milli jibdlu l-koordinati, jużaw għodda matematika speċifika biex jagħmlu x-xogħol: vetturi.

Vettur jista 'jitqies bħala vleġġa li tipponta lejn post speċifiku fl-ispazju u jista' jkun kwalunkwe tul meħtieġ. Il-kantunieri huma attwalment deskritti bl-użu ta 'vetturi bbażati fuq il-koordinati Karteżjani b'dan il-mod:

Innota kif il-vleġġa blu tibda f'post (f'dan il-każ, Oriġini) u testendi sal-quċċata. Aħna użajna dak li kien jissejjaħ cnotazzjoni olumn biex tiddeskrivi dan il-vettur qdif in-notazzjoni taħdem ukoll. Tinduna wkoll li hemm valur ieħor żejjed - ir-raba 'numru ġeneralment ikun bil-komponent w u jintuża biex jindika jekk il-vettur huwiex użat biex jiddeskrivi l-pożizzjoni ta 'vertiċi ( pożizzjoni tal-vettur) jew aspett ġenerali (a lejl vettur). Fil-każ ta 'dan tal-aħħar, se jidher hekk:

Dan il-vettur jindika fl-istess direzzjoni u għandu l-istess tul bħall-vettur tal-pożizzjoni preċedenti, allura (X ve Z) il-valuri jkunu l-istess; Iżda w-vetturi komponenti huma żero minflok 1. L-użu ta 'vetturi tad-direzzjoni se jkun iċċarat aktar tard f'dan l-artikolu, imma għal issa ejja nikkunsidraw il-fatt li l-punti kollha tal-kantunieri fix-xena 3D se jiġu definiti b'dan il-mod. Għaliex? Minħabba li b’dan il-format, isir ħafna iktar faċli li tibda ċċaqlaqhom.

Matematika, matematika u aktar matematika

Ftakar li għandna trijanglu bażiku u rridu nimxuh lejn ix-xellug. Kull vertiċi huwa definit b'vettur tal-pożizzjoni, għalhekk għandna bżonn nagħmlu l- "matematika li tiċċaqlaq" ( konverżjonijiet) għandu jaħdem fuq dawn il-vettori. Daħħal il-vettura li jmiss: serje (jew omm għal waħda minn dawn). Din hija serje ta 'valuri miktuba bħala ringieli u kolonni, daqsxejn bħal spreadsheet ta' Excel.

Għal kull tip ta 'trasformazzjoni li rridu nagħmlu, hemm matriċi assoċjata biex tmur magħha, u huwa biss il-każ li timmultiplika l-matriċi tat-trasformazzjoni u l-vettur tal-pożizzjoni flimkien. Aħna ma nidħlux fid-dettalji speċifiċi ta 'kif u għaliex jiġri dan, imma nistgħu naraw kif jidher.

Mexxi vertiċi fi spazju 3D traduzzjoni u l-kalkolu meħtieġ huwa:

x0eċċ. il-valuri jirrappreżentaw il-koordinati oriġinali tal-vertiċi; delta-x Il-valuri jindikaw kemm il-quċċata trid timxi. Il-komputazzjoni tal-vettur tal-matriċi tirriżulta sempliċement fiż-żieda tat-tnejn flimkien w il-komponent jibqa 'mhux mittiefes, għalhekk it-tweġiba finali għadha vettur tal-pożizzjoni).

Minbarra li ċċaqlaq l-affarijiet madwarna, aħna nistgħu nixtiequ ndawru t-trijangolu jew nagħmlu skala għal daqs ikbar jew iżgħar - hemm trasformazzjonijiet għat-tnejn li huma.

Għodda grafika mħaddma mill-WebGL Websajt ta 'Rendiment f'Ħin Real biex tara dawn il-kalkoli fuq figura sħiħa. Nibdew b'kubojde f'post default:

F'din l-għodda onlajn, il-punt mudell jirreferi għall-vettur tal-pożizzjoni, il-matriċi tad-dinja hija l-matriċi tat-trasformazzjoni, u l-punt spazjali tad-dinja huwa l-vettur tal-pożizzjoni għall-vertiċi trasformat.

Issa ejja napplikaw diversi trasformazzjonijiet għall-kubu:

Fl-immaġni ta 'hawn fuq, il-figura traduzzjoni 5 unitajiet f'kull direzzjoni. Nistgħu naraw dawn il-valuri fil-matriċi l-kbira tan-nofs, l-aħħar kolonna. Il-vettur tal-pożizzjoni oriġinali (4, 5, 3, 1) jibqa ’kif suppost, iżda l-vertiċi trasformat issa huwa tradott bħala (9, 10, 8, 1).

F'din it-trasformazzjoni, kollox ġie skalat darbtejn: il-kubu issa għandu ġnub darbtejn itwal. L-aħħar eżempju li wieħed iħares lejh huwa punt ta 'bidla:

Il-kubu huwa mdawwar f'angolu ta '45 °, iżda l-matriċi tagħhom ve kosinu angoluha. Verifika mgħaġġla fuq kwalunkwe kalkulatur xjentifiku mingħajr (45 °) = 0.7071 ... tondi għall-valur 0.71 muri. Aħna jkollna l-istess tweġiba kosinu valur.

Matriċi u vettori m'għandhomx għalfejn jintużaw; alternattiva komuni għall - immaniġġar ta 'rotazzjonijiet partikolarment kumplessi, numri kumplessi u kuaterniyonlar. Din il-matematika hija pass kbir 'il fuq mill-vettori, allura aħna se ngħaddu minn trasformazzjonijiet.

Il-qawwa tal-quċċata shader

F’dan l-istadju, irridu nikkunsidraw li dawn kollha jridu jiġu solvuti mill-persuni li jipprogrammaw il-kodiċi tal-bini. Jekk żviluppatur tal-logħob qed juża magna ta ’parti terza (bħal Unity jew Unreal), dan diġà jsir għalihom, imma kull min jagħmel il-kalkoli tiegħu stess mill-bidu għandu jkun jaf liema rkejjen għandhom jagħmlu.

Allura kif jidher dan f'termini ta 'kodiċi?

Aħna nużaw eżempji mill-websajt eċċellenti biex ngħinu f'dan. Braynzar Soft. Huwa post sabiħ biex titgħallem l-affarijiet bażiċi u affarijiet aktar avvanzati jekk trid tibda l-ipprogrammar 3D int stess.

Dan l-eżempju huwa t-trasformazzjoni 'kollox f'waħda'. Joħloq il-matriċi ta 'trasformazzjoni korrispondenti bbażati fuq input tat-tastiera u mbagħad japplikahom għall-vettur tal-pożizzjoni oriġinali f'operazzjoni waħda. Ftakar li dan dejjem isir f'ċertu ordni (skala - dawwar - flip) minħabba li kwalunkwe mod ieħor iħassar ir-riżultat kompletament.

Dawn it-tipi ta 'blokki tal-kodiċi huma msejħa hill shaders u jistgħu jvarjaw ħafna skont dak li jagħmlu, id-daqs u l-kumplessità tagħhom. L-eżempju ta 'hawn fuq huwa daqstant sempliċi u ma jistax jiġi miċħud daqs kemm ġejjin biss shader għax ma jużax in-natura programmabbli għal kollox tal-shaders. Firxa aktar kumplessa ta 'shaders tista' tittrasformaha fi spazju 3D, tikkalkula kif ix-xena tidher fuq il-kamera tagħha, u mbagħad tittrasferixxi dik id-dejta għall-istadju li jmiss fil-proċess ta 'rendering. Se nħarsu lejn aktar eżempji hekk kif ngħaddu mis-sekwenza tat-tirqim tal-kantuniera.

Naturalment jistgħu jintużaw għal ħafna aktar, u ftakar li kull darba li tilgħab logħba li tintlagħab fi 3D, il-movimenti kollha li tista 'tara jsiru mill-proċessur tal-grafika, wara l-istruzzjonijiet fil-shaders tal-kantunieri.

Madankollu, dan mhux dejjem kien il-każ. Meta mmorru lura sa nofs l-aħħar tad-disgħinijiet fiż-żmien, il-kards tal-grafika ta 'dik l-era ma kellhomx il-ħila li jimmaniġġjaw il-kantunieri u l-primittivi nfushom, kollha magħmula kompletament fuq is-CPU.

Wieħed mill-ewwel proċessuri li jipprovdi aċċelerazzjoni ddedikata tal-ħardwer għal dan it-tip ta 'pproċessar GeForce oriġinali ta ’Nvidia ġiet rilaxxata fl-2000 u din il-proprjetà ġiet ttikkettata Konverżjoni u Dawl tal-Ħardwer (jew Hardware TnL fil-qosor). L-operazzjonijiet li dan il-hardware seta 'jimmaniġġja kienu stretti ħafna u kostanti f'termini ta' kmandi, iżda li malajr inbidlu hekk kif ġew rilaxxati ċipep grafiċi ġodda. Illum, m'hemm l-ebda hardware separat għall-ipproċessar tal-kantunieri u l-istess unitajiet jimmaniġġaw kollox: punti, primittivi, pixels, nisġa, eċċ.

Nitkellmu dwar dawl, għandu jiġi nnutat li dak kollu li naraw huwa naturalment ikkawżat mid-dawl, allura ejja naraw kif dan jista 'jiġi mmaniġġjat fl-istadju tal-quċċata. Biex tagħmel dan, aħna nużaw xi ħaġa li semmejna qabel f'dan l-artikolu.

Magna tal-kamera tad-dwal!

Immaġina din ix-xena: l-attur qiegħed f'kamra mudlama mdawwla minn sors ta 'dawl wieħed fuq il-lemin. Fin-nofs tal-kamra hemm tepot ġgant f'wiċċ l-ilma. Ok, probabbilment ikollna bżonn ftit għajnuna biex nidhru hekk Websajt ta 'Rendiment f'Ħin Real, biex tara xi ħaġa bħal din fl-azzjoni:

Issa innota li dan l-oġġett huwa ġabra ta 'trijangoli dritti meħjutin flimkien; Dan ifisser li l-pjan ta 'kull trijanglu se jindika f'ċerta direzzjoni. Uħud qed iħarsu lejn il-kamera, oħrajn għan-naħa l-oħra, filwaqt li oħrajn huma mgħawġa. Id-dawl mis-sors jolqot kull pjan u jaqbeż f'ċertu angolu.

Jiddependi minn fejn sejjer id-dawl, il-kulur u l-luminożità tal-pjan se jinbidlu, u dawn kollha jeħtieġ li jiġu kkalkulati u kkalkulati biex jiżguraw li l-kulur tal-oġġett jidher korrett.

Biex nibdew, irridu nkunu nafu lejn liema direzzjoni qed iħares il-pjan u għal dan vettur normali ajruplan. Din hija vleġġa oħra iżda b'differenza mill-vettur tal-pożizzjoni, id-daqs ma jimpurtax (fil-fatt, huma dejjem jeskalaw wara l-kalkolu u għalhekk huma eżattament twal 1) u dejjem dik pjan (angolu rett).

In-normal tal-pjan ta 'kull trijanglu, il-prodott tal-vettur taż-żewġ vetturi tad-direzzjoni (p ve q Muri hawn fuq) jiffurmaw il-ġnub tat-trijanglu. Fil-fatt huwa aħjar li taħdem għal kull vertiċi u mhux għal kull trijanglu, iżda meta wieħed iqis li dejjem ikun aktar minn dak ta 'qabel meta mqabbel ma' dan tal-aħħar, huwa aktar mgħaġġel li tagħmel dan biss għat-trijangoli.

Wara li tilħaq in-normal ta 'wiċċ, tista' tibda tqis is-sors tad-dawl u l-kamera. Id-dwal jistgħu jkunu ta 'tipi differenti fir-rendering 3D, iżda għall-iskop ta' dan l-artikolu biss direzzjonali dwal, eż. attenzjoni. Bħall-pjan ta 'trijanglu, il-spotlight u l-kamera se jindikaw f'ċerta direzzjoni, forsi xi ħaġa bħal din:

Il-vettur tad-dawl u l-vettur normali jistgħu jintużaw biex isibu l-angolu li fih id-dawl jolqot il-wiċċ (billi tuża r-relazzjoni bejn il-prodott dot tal-vettori u l-prodott tad-dimensjonijiet tagħhom). Il-vertiċi tat-trijangolu se jġorru informazzjoni addizzjonali dwar il-kuluri u l-materjali tagħhom - fil-każ tal-aħħar, jispjega x'jiġri mid-dawl meta jolqot il-wiċċ.

Wiċċ lixx u metalliku jirrifletti kważi d-dawl kollu li jidħol fl-angolu li ġej minnu u bilkemm jibdel il-kulur. B'kuntrast, materjal mhux maħdum u matt iferrex id-dawl b'mod inqas prevedibbli u jibdel il-kulur b'mod sottili. Biex tieħu kont ta 'dan, il-punti tal-kantunieri għandu jkollhom valuri addizzjonali:

  • Bażi tal-kulur oriġinali
  • Propjetà tal-materjal ambjentali - valur li jiddetermina kemm jista 'jassorbi u jirrifletti d-dawl' fl-isfond 'li l-vertiċi jista' jassorbi
  • Propjetà ta 'materjal imxerred - valur ieħor iżda din id-darba li turi kemm hu oħxon il-quċċata, dan jaffettwa kemm id-dawl imxerred huwa assorbit u rifless
  • Propjetajiet ta ’materjal spekulattiv - żewġ valuri li jagħtu miżura ta’ kemm hu ‘qawwi’ l-quċċata

Mudelli differenti ta 'dawl jużaw diversi formuli matematiċi biex jiġbruhom kollha flimkien, u l-komputazzjoni tipproduċi vettur għad-dawl inċidentali. Dan huwa kkombinat mal-vettur tal-kamera, id-dehra ġenerali tat-trijangolu tista 'tiġi determinata.

Aħna għaddejna mid-dettalji ifjen hawnhekk u għal raġuni aħjar: aqbad kwalunkwe ktieb tat-test dwar ir-rendering 3D u tara l-kapitoli kollha ddedikati għal dan il-proċess uniku. Madankollu, il-logħob modern ħafna drabi jwettaq ħafna mill-kalkoli tad-dawl u l-effetti materjali fl-istadju tal-pixel computing, allura aħna ser nerġgħu nkopru dan is-suġġett f'artikolu ieħor.

Dak kollu li koprejna s'issa sar bl-użu ta 'hill shaders, u jista' jidher li m'hemm kważi xejn li ma jistgħux jagħmlu; Sfortunatament hemm. Corners shaders ma jistgħux joħolqu punti ġodda tal-kantunieri u kull shader għandu jaħdem fuq kull vertiċi. Kien ikun utli kieku kien hemm mod kif tuża xi kodiċi biex toħloq aktar trijangoli, mod li jkollok shader jaħdem bejn dak li diġà għandna (biex intejbu l-kwalità viżwali) u fuq kollox primittiv (biex ngħaġġlu l-affarijiet). sakemm). Bi proċessuri grafiċi moderni, Jista ' Agħmel dan!

Jekk jogħġbok Sinjur irrid ftit iktar (triangoli)

L-aħħar ċipep grafiċi huma qawwija ħafna, kapaċi għal miljuni ta 'kalkoli ta' matriċi-vettur kull sekonda; jistgħu faċilment jgħaddu minn fuq munzell kbir ta 'kantunieri fl-ebda ħin. Min-naħa l-oħra, il-ħolqien ta ’mudelli ddettaljati ħafna jieħu ħafna ħin, u jekk il-mudell ikun xi ftit barra mix-xena, dawk id-dettalji żejda kollha jinħlew.

Dak li għandna bżonn huwa mod kif ngħidu lill-proċessur biex jaqsmu fi primittiv ikbar, ġabra ta 'trijangoli iżgħar li huma kollha konnessi ġewwa l-akbar oriġinali, bħat-trijanglu dritta wieħed li qed inħarsu lejh. L-isem ta 'dan il-proċess: tesselazzjoni u ċ-ċipep tal-grafika kienu kapaċi jagħmlu dan għal ftit żmien; Dak li tjieb matul is-snin huwa l-ammont ta 'programmaturi ta' kontroll fuq l-operazzjoni.

Biex naraw dan fl-azzjoni, aħna nużaw: L-għodda ta 'referenza ta' Unigine's Paradise, peress li tippermettilna napplikaw ammonti differenti ta 'tessellazzjoni għall-mudelli speċifiċi użati fit-test.

Biex nibdew, ejja nieħdu post fil-parametru referenzjarju u neżaminawh mingħajr ma jkun applikat il-mużajk. Oqgħod attent li l-cobblestones fuq l-art jidhru foloz wisq - in-nisġa użata hija effettiva imma ma tidhirx sewwa. Ejja napplikaw xi mużajk fix-xena; Unigine tapplika l-magna għal ċerti partijiet biss, iżda d-differenza hija drammatika.

L-art, it-truf tal-bini u l-bieb issa jidhru ferm aktar realistiċi. Jekk nerġgħu mmexxu l-proċess nistgħu naraw kif dan jinkiseb, iżda din id-darba bit-truf tal-primittivi enfasizzati (modalità wireframe):

Nistgħu naraw b'mod ċar għaliex l-art tidher daqshekk stramba - kompletament ċatta! Il-bieb huwa wkoll flaxx mal-ħitan, u t-truf tal-bini m'huma xejn ħlief kubi sempliċi.

F'Direct3D, elementi primittivi jistgħu jinqasmu fi grupp iżgħar ta 'partijiet ( kompartiment t'isfel) Billi tmexxi sekwenza ta '3 stadji. L-ewwel, programmaturi korp shader - bażikament, dan il-kodiċi huwa garża tal-ġeometrija. Immaġina dan bħala mappa li tgħid lill-proċessur fejn il-prinċipji u l-linji l-ġodda se jidhru ġewwa l-primittiv inizjali.

Sussegwentement, l-unità tesselator ġewwa l-proċessur tal-grafika tapplika l-garża għall-prinċipju. Fl-aħħarnett, shader taż-żona tikkalkula l-pożizzjonijiet tal-kantunieri l-ġodda kollha hija mmexxija. Din id-dejta tista 'terġa' tiddaħħal fil-buffer tal-vertiċi kif meħtieġ sabiex il-kalkoli tad-dawl jerġgħu jsiru, iżda din id-darba b'riżultati aħjar.

Allura kif jidher dan? Ejja nqabbdu l-verżjoni wireframe tax-xena tal-mużajk:

Il-verità hi li waqqafna l-livell ta 'tessellazzjoni għal livell pjuttost estrem biex ngħinu nispjegaw il-proċess. Tajjeb daqs ċipep grafiċi moderni, mhix xi ħaġa li tixtieq tagħmel f'kull logħba - per eżempju, ħu l-lamp lamp ħdejn il-bieb.

Fl-istampi mingħajr wireframe, int mbuttat biex tiddeskrivi d-differenza f'din id-distanza, u tista 'tara dan il-livell ta' tessellazzjoni miġbur f'ħafna trijangoli, li wħud minnhom huma diffiċli biex tgħidhom. Madankollu huwa użat kif suppost, u din il-funzjoni ta 'rendering tal-kantuniera tista' tirriżulta f'xi effetti viżwali kbar, speċjalment meta tipprova tissimula ħabtiet ta 'ġisem artab.

Fl-immaġini mingħajr wajer, int imbuttat biex tiddeskrivi d-differenza f'din id-distanza, u tista 'tara dan il-livell ta' tessellazzjoni miġbur f'ħafna trijangoli, li wħud minnhom huma diffiċli biex tingħaraf. Ejja nagħtu ħarsa lejn kif jista 'jidher dan f'termini ta' kodiċi Direct3D; Biex nagħmlu dan se nużaw eżempju minn websajt oħra kbira. RasterTek.

Hawnhekk trijanglu aħdar wieħed huwa mdawwar f'ħafna aktar triangoli tat-trabi.

L-inkurunar isir bi 3 shaders separati (ara l-fig. kampjun tal-kodiċi): shader tal-vertiċi biex tissettja t-trijanglu lest għat-trijangolazzjoni, shader tal-ġisem biex toħloq il-garża, u shader tad-dominju biex tirrendi kantunieri ġodda. Ir-riżultat huwa sempliċi ħafna, iżda l-eżempju Unigine jenfasizza l-benefiċċji u l-perikli potenzjali tal-użu tal-mużajk kullimkien. Madankollu jintuża sewwa, u din il-funzjoni ta 'rendering tal-kantunieri tista' tirriżulta f'xi effetti viżwali kbar, speċjalment meta tipprova tissimula ħabtiet ta 'ġisem artab.

Tista 'tittrattaha, Kaptan!

Tiftakar corner shaders u dejjem tmexxi f'kull rokna tax-xena? Mhuwiex diffiċli li wieħed jara kif it-tessellazzjoni tista 'tagħmel din il-problema reali. U hemm ħafna effetti viżwali li trid tittratta verżjonijiet multipli ta 'l-istess primittiv imma ma tridx toħloq numru kbir għall-ewwel; xagħar, pil, ħaxix u frak li jisplodi huma eżempji tajbin ta 'dan.

Fortunatament, hemm shader ieħor disponibbli biss għal dan it-tip ta 'ħaġa - shader tal-ġeometrija. Hija verżjoni aktar restrittiva tal-vertex shader, iżda tista 'tiġi applikata għal prinċipju sħiħ u kkombinata ma' tessellazzjoni tagħti lill-programmaturi kontroll akbar fuq gruppi kbar ta 'vertiċi.

Direct3D, bħall-APIs grafiċi moderni kollha, jippermetti varjetà wiesgħa ta 'kalkoli fil-punti tal-kantuniera. Dejta ffinalizzata tista ’tintbagħat fl-istadju li jmiss tal-proċess ta’ ħolqien (pixelazzjoni) jew imdaħħla lura fil-ġabra tal-memorja sabiex tkun tista 'tinħadem mill-ġdid jew tinqara mis-CPU għal skopijiet oħra. Dan jista 'jsir bħala fluss ta' dejta kif tenfasizza Microsoft Dokumentazzjoni Direct3D:

output tal-fluss ix-xena hija partikolarment utli għal effetti b'ħafna partiċelli kullimkien, peress li tista 'tgħaddi lura l-prinċipji kollha (mhux kantunieri individwali) fil-linja ta' rendering. L-istess trick jista 'jinbidel jew dinamiku bamper tal-kantuniera, iżda huwa aħjar li żżomm il-bampers tal-input stabbli minħabba li hemm hit milqut jekk ikollhom bżonn 'jinfetħu' biex jinbidlu.

Ir-rendering tar-rokna huwa parti kritika tar-rendering peress li jiddetermina kif ix-xena hija rranġata mill-perspettiva tal-kamera. Logħob modern jista 'juża miljuni ta' trijangoli biex joħloq id-dinja tagħhom, u kull waħda minn dawn l-irkejjen se tiġi ttrasformata u maħruqa b'xi mod.

L-immaniġġjar ta ’din il-matematika u d-dejta kollha jista’ jidher qisu ħmarillejl loġistiku, iżda l-proċessuri tal-grafika (GPUs) u l-APIs huma mfassla b’dan kollu f’moħħhom - juru fabbrika li taħdem bla xkiel, tispara oġġett permezz ta ’serje ta’ stadji ta ’produzzjoni u tagħmel dan sew. tifhem.

Esperjenzat Ħolqien ta 'logħob 3D il-programmaturi għandhom bażi komprensiva fil-matematika u l-fiżika avvanzati; Huma jużaw kull trick u għodda fil-kummerċ biex itejbu t-tranżazzjonijiet u jnaqqsu l-quċċata fażi tal-ipproċessar għal ftit millisekondi biss. U dak huwa biss il-bidu tal-ħolqien ta 'qafas 3D - imbagħad l-istadju tar-rasterizzazzjoni, u allura hemm xi rendering ta' pixel u tessut pjuttost kumpless qabel ma jasal kullimkien ħdejn il-monitor tiegħek.

Issa li wasalt fit-tmiem ta 'dan l-artikolu, nittamaw li jkollok għarfien aktar profond fil-vjaġġ ta' vertiċi meta maħdum għal qafas 3D. Aħna ma koprewx kollox (huwa muazzam artikolu!), u aħna żgur li jkollok ħafna mistoqsijiet dwar vettori, matriċi, dwal, u elementi primittivi. Waqqagħhom fi triqitna fit-taqsima tal-kummenti u nagħmlu l-almu tagħna biex inwieġbuhom kollha.

Aqra wkoll