Përmbajtje:
Video: 3D Viewer: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Përshëndetje! Për të kënaqur interesin tim në programim dhe shpresoj të ndihmoj në kënaqjen tuajin, do të doja t'ju tregoja një Shikues 3D që kam koduar në javascript. Nëse dëshironi të kuptoni më tej lojërat 3D ose madje të krijoni lojën tuaj 3D, ky prototip shikues 3D është i përsosur për ju.
Hapi 1: Teoria
Për të kuptuar teorinë e këtij shikuesi 3D, thjesht mund të ekzaminoni mënyrën se si e shihni mjedisin tuaj (ndihmon të keni vetëm një burim domethënës të dritës). Vini re se:
- Objektet që janë më larg nga ju marrin një pjesë më të vogël të fushës tuaj të shikimit.
- Objektet që janë më larg nga burimi i dritës duken me ngjyrë më të errët.
- Ndërsa sipërfaqet bëhen më paralele (më pak pingul) me burimin e dritës, ato duken me ngjyrë të errët.
Vendosa të përfaqësoja një fushë vizioni me një mori rreshtash që buronin nga një pikë e vetme (analoge me kokërdhokun e syrit). Ashtu si një top me majë, linjat duhet të ndahen në mënyrë të barabartë për të siguruar që secila pjesë e fushës së shikimit të përfaqësohet në mënyrë të barabartë. Në figurën e mësipërme, vini re se si linjat që vijnë nga topi me thumba bëhen më të ndara ndërsa lëvizin më larg nga qendra e topit. Kjo ndihmon në përfytyrimin e zbatimit të programit të vëzhgimit 1 pasi dendësia e linjave zvogëlohet ndërsa objektet lëvizin më larg nga pika qendrore.
Linjat janë njësia bazë e vizionit në program, dhe secila prej tyre është hartuar në një piksel në ekran. Kur një linjë kryqëzon një objekt, pikseli i tij përkatës ngjyroset bazuar në distancën e tij nga burimi i dritës dhe këndin e tij nga burimi i dritës.
Hapi 2: Teoria e Zbatimit
Për të thjeshtuar programin, burimi i dritës është i njëjtë me pikën qendrore (kokërdhoku: pika nga e cila shihet harta dhe prej nga burojnë linjat). Analogjike me mbajtjen e një drite pranë fytyrës tuaj, kjo eliminon hijet dhe lejon që shkëlqimi i secilit piksel të llogaritet shumë më lehtë.
Programi përdor gjithashtu koordinata sferike, me pikën qendrore të vizionit në origjinë. Kjo mundëson që linjat të gjenerohen lehtë (secila me një theta unike: kënd horizontal dhe phi: kënd vertikal), dhe siguron bazën e llogaritjeve. Linjat me të njëjtën theta janë të hartuara në piksele në të njëjtën rresht. Fis i këndeve përkatëse rritet në secilën rresht pikselësh.
Për të thjeshtuar matematikën, harta 3D përbëhet nga rrafshe me një ndryshore të përbashkët (x, y, ose z të përbashkët), ndërsa dy ndryshoret e tjera jo të zakonshme kufizohen brenda një diapazoni, duke kompletuar përkufizimin e secilit plan.
Për të parë përreth me miun, ekuacionet e programit faktorizojnë një rrotullim vertikal dhe horizontal gjatë shndërrimit midis sistemeve koordinative sferike dhe xyz. Kjo ka efektin e paraformimit të një rrotullimi në grupin e "topit të pikut" të linjave të shikimit.
Hapi 3: Matematikë
Ekuacionet e mëposhtme i mundësojnë programit të përcaktojë se cilat linja ndërpresin çdo objekt dhe informacion në lidhje me çdo kryqëzim. I kam nxjerrë këto ekuacione nga ekuacionet bazë të koordinatave sferike dhe ekuacionet e rrotullimit 2D:
r = distanca, t = theta (këndi horizontal), p = phi (këndi vertikal), A = rrotullimi rreth boshtit Y (rrotullimi vertikal), B = rrotullimi rreth boshtit Z (rrotullimi horizontal)
Kx = (sin (p)*cos (t)*cos (A)+cos (p)*sin (A))*cos (B) -min (p)*sin (t)*sin (B)
Ky = (sin (p)*cos (t)*cos (A)+cos (p)*sin (A))*sin (B)+sin (p)*sin (t)*cos (B)
Kz = -sin (p)*cos (t)*sin (A)+cos (p)*cos (A)
x = r*Kx
y = r*Ky
z = r*Kz
r^2 = x^2+y^2+z^2
ndriçimi = Klight/r*(Kx ose Ky ose Kz)
p = arccos ((x*sin (A)*cos (B)+y*sin (A)*sin (B)+z*cos (A))/r)
t = arccos ((x*cos (B)+y*sin (B) -p*sin (A)*cos (p))/(r*cos (A)*sin (p)))
Hapi 4: Programi
Shpresoj se ky prototip i shikuesit 3D ju ndihmoi të kuptoni funksionimin e realiteteve virtuale 3D. Me disa përsosje dhe kodim, ky shikues sigurisht që ka potencialin për t'u vënë në përdorim në zhvillimin e lojërave 3D.
Recommended:
Si të bëni 4G LTE Antenë të BiQuade të Dyfishtë Hapa të Lehtë: 3 Hapa
Si të bëni 4G LTE Antenë BiQuade të Dyfishtë Hapa të Lehtë: Shumicën e kohës me të cilën jam përballur, nuk kam forcë të mirë të sinjalit në punët e mia të përditshme. Kështu që. Kërkoj dhe provoj lloje të ndryshme antenash por nuk funksionoj. Pas humbjes së kohës gjeta një antenë që shpresoj ta bëj dhe ta provoj, sepse është parimi i ndërtimit jo
Dizajni i lojës në lëvizje në 5 hapa: 5 hapa
Dizajni i lojës në Flick në 5 hapa: Flick është një mënyrë vërtet e thjeshtë për të bërë një lojë, veçanërisht diçka si një enigmë, roman vizual ose lojë aventure
Arduino Baby Monitor me Java Viewer: 8 hapa (me fotografi)
Arduino Baby Monitor Me Java Viewer: Ndërtoni një njësi me shumë sensorë të bazuar në Arduino për të vëzhguar kushtet në një dhomë. Kjo njësi mund të ndiejë lagështinë, temperaturën, lëvizjen dhe zërin. Bashkangjitur është një shikues me bazë java që merr të dhëna serike nga arduino
Headup Web Cam Viewer: 7 hapa
Headup Web Cam Viewer: Një hyrje e fundit shikoi një sistem komercial për të lejuar përdoruesit të shikojnë drejtpërdrejt në kamerën e tyre të internetit ndërsa ende të jenë në gjendje të shohin personin me të cilin po flasin - Stili Teleprompter - Ky është mendimi im për atë ide. Easyshtë e lehtë të ndërtosh të qenit thelbësor
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni