Obsah:
Video: 3D prohlížeč: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Ahoj! Abych uspokojil svůj zájem o programování a doufám, že pomůže uspokojit ten váš, rád bych vám ukázal 3D prohlížeč, který jsem zakódoval v javascriptu. Pokud byste chtěli dále porozumět 3D hrám nebo si dokonce vytvořit vlastní 3D hru, tento prototyp 3D prohlížeče je pro vás ideální.
Krok 1: Teorie
Abyste porozuměli teorii tohoto 3D prohlížeče, můžete jednoduše prozkoumat způsob, jakým se díváte na své okolí (pomáhá mít pouze jeden významný zdroj světla). Všimněte si, že:
- Předměty, které jsou od vás dále, zabírají menší část vašeho zorného pole.
- Objekty, které jsou dále od zdroje světla, vypadají tmavší.
- Jak se povrchy stávají více rovnoběžnými (méně kolmými) se zdrojem světla, vypadají tmavší.
Rozhodl jsem se reprezentovat zorné pole se spoustou čar pocházejících z jednoho bodu (analogicky s oční bulvou). Stejně jako kulička s hroty musí být čáry rovnoměrně rozmístěny, aby byla zajištěna stejná zastoupení každé části zorného pole. Na výše uvedeném obrázku si všimněte, jak se čáry vycházející z hrotové koule více rozestupují, když se pohybují dále od středu koule. To pomáhá vizualizovat implementaci pozorování 1 v programu, protože hustota čar klesá, když se objekty pohybují dále od středového bodu.
Čáry jsou základní jednotkou vidění v programu a každý z nich je mapován na pixel na displeji. Když čára protíná objekt, jeho odpovídající pixel je zbarven na základě jeho vzdálenosti od zdroje světla a jeho úhlu od zdroje světla.
Krok 2: Implementační teorie
Pro zjednodušení programu je světelný zdroj stejný jako středový bod (oční bulva: bod, ze kterého je zobrazena mapa a odkud pocházejí čáry). Analogicky k držení světla přímo u vašeho obličeje to eliminuje stíny a umožňuje jasnější výpočet jasu každého pixelu.
Program také používá sférické souřadnice se středovým bodem vidění na počátku. To umožňuje snadné generování čar (každá s jedinečnou theta: horizontální úhel a phi: svislý úhel) a poskytuje základ pro výpočty. Řádky se stejnou theta jsou mapovány na pixely ve stejném řádku. V každé řadě pixelů se zvětší phis odpovídajících úhlů.
Pro zjednodušení matematiky je 3D mapa složena z rovin se společnou proměnnou (společné x, y nebo z), zatímco další dvě neobvyklé proměnné jsou uzavřeny v určitém rozsahu, čímž je definice každé roviny dokončena.
Chcete -li se rozhlížet myší, zohledňují rovnice programu vertikální a horizontální rotaci během převodu mezi sférickými a xyz souřadnicovými systémy. To má za následek předběžné otáčení na sadě viditelných linií „spike ball“.
Krok 3: Matematika
Následující rovnice umožňují programu určit, které přímky protínají každý objekt, a informace o každé křižovatce. Tyto rovnice jsem odvodil ze základních rovnic sférických souřadnic a rovnic 2D rotace:
r = vzdálenost, t = theta (horizontální úhel), p = phi (vertikální úhel), A = rotace kolem osy Y (vertikální rotace), B = rotace kolem osy Z (horizontální rotace)
Kx = (sin (p)*cos (t)*cos (A)+cos (p)*sin (A))*cos (B) -sin (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
osvětlení = Klight/r*(Kx nebo Ky nebo 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)))
Krok 4: Program
Doufám, že vám tento prototyp 3D prohlížeče pomohl porozumět fungování 3D virtuálních realit. S trochou zdokonalování a kódování má tento divák určitě potenciál využít při vývoji 3D her.
Doporučuje:
PROHLÍŽEČ ESP32 COVID19 STATUS: 4 kroky
PROHLÍŽEČ ESP32 COVID19 STATUS: Tento projekt získá stav COCID19 ve formátu json a zobrazí jej na OLED
Prohlížeč negativních filmů a převaděč: 8 kroků (s obrázky)
Prohlížeč negativních filmů a převaděč: Zjistil jsem okamžitou potřebu rychle zobrazit a zaznamenat staré filmové negativy. Měl jsem k vyřešení několik stovek … Uznávám, že pro můj chytrý telefon existují různé aplikace, ale nebyl jsem schopen dosáhnout uspokojivých výsledků, takže to je to, co
Webový prohlížeč s rozšířenou realitou: 9 kroků
Webový prohlížeč pro rozšířenou realitu: Dnes projdeme vytvořením webového prohlížeče pro rozšířenou realitu pro Android. Tato myšlenka začala, když mě ExpressVPN požádal, abych vytvořil sponzorované video na YouTube. Protože se jedná o můj první, chtěl jsem udělat něco, co bylo relevantní pro jejich produkt. Pr
Prohlížeč rentgenových snímků obrazovky počítače: 4 kroky
Prohlížeč rentgenových snímků obrazovky počítače: Jedná se o jednoduchou metodu, jak použít počítač jako světelný box pro sledování rentgenových paprsků. Lámání kostí právě dosáhlo nové úrovně zábavy
Prohlížeč fotografií Ohřívač zápěstí: 5 kroků
Prohlížeč fotografií Ohřívač zápěstí: Koupil jsem si jeden z těchto prohlížečů fotek na klíče, byl to jen tenner, tak jsem si řekl „ano, proč ne, možná bych to mohl hacknout do něčeho skvělého“. to? Odtrhněte ho a vložte do ohřívače zápěstí