Բովանդակություն:
Video: 3D դիտիչ ՝ 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Բարեւ Ձեզ! Mingրագրավորման նկատմամբ իմ հետաքրքրությունը բավարարելու և հուսով եմ, որ ձեր ցանկությունները բավարարելու համար ես կցանկանայի ցույց տալ ձեզ 3D Viewer- ը, որը ես ծածկագրել եմ javascript- ում: Եթե ցանկանում եք ավելի խորացնել ձեր պատկերացումները 3D խաղերի մասին կամ նույնիսկ ստեղծել ձեր սեփական 3D խաղը, այս 3D դիտիչի նախատիպը կատարյալ է ձեզ համար:
Քայլ 1: Տեսություն
Այս 3D դիտողի տեսությունը հասկանալու համար կարող եք պարզապես ուսումնասիրել ձեր շրջապատի տեսքը (դա օգնում է ունենալ միայն մեկ նշանակալի լույսի աղբյուր): Ուշադրություն դարձրեք, որ.
- Ձեզանից ավելի հեռու գտնվող օբյեկտները զբաղեցնում են ձեր տեսողության դաշտի ավելի փոքր մասը:
- Լույսի աղբյուրից ավելի հեռու գտնվող առարկաները ավելի մուգ գույն են ունենում:
- Մակերևույթները լույսի աղբյուրին ավելի զուգահեռ (ավելի քիչ ուղղահայաց) են դառնում, դրանք ավելի մուգ երանգ են ունենում:
Ես որոշեցի ներկայացնել տեսողության դաշտը ՝ մի կետից բխող տողերի մի փունջով (աչքի բիբին նման): Ինչպես հասկ գնդակը, այնպես էլ գծերը պետք է հավասարաչափ տարածվեն, որպեսզի տեսողական դաշտի յուրաքանչյուր հատված հավասարապես ներկայացված լինի: Վերևի նկարում ուշադրություն դարձրեք, թե ինչպես են գնդիկավոր գնդիկներից եկող գծերը ավելի տարածվում, երբ նրանք ավելի հեռու են հեռանում գնդակի կենտրոնից: Սա օգնում է պատկերացնել ծրագրի 1 -ի դիտարկման իրականացումը, քանի որ գծերի խտությունը նվազում է, երբ օբյեկտները ավելի հեռու են գնում կենտրոնական կետից:
Գծերը ծրագրի հիմնական տեսողության միավորն են, և դրանք յուրաքանչյուրը քարտեզագրված են էկրանին `պիքսելին: Երբ գիծը հատում է օբյեկտը, դրա համապատասխան պիքսելը գունավորվում է ՝ ելնելով լույսի աղբյուրից նրա հեռավորության և լույսի աղբյուրից նրա անկյունի հիման վրա:
Քայլ 2. Իրականացման տեսություն
Simplրագիրը պարզեցնելու համար լույսի աղբյուրը նույնն է, ինչ կենտրոնական կետը (ակնախնձոր. Կետ, որտեղից դիտվում է քարտեզը և որտեղից են ծագում գծերը): Դեմքի կողքին լույս պահելու նման, սա վերացնում է ստվերները և թույլ է տալիս յուրաքանչյուր պիքսելի պայծառությունը շատ ավելի հեշտ հաշվարկել:
Րագիրը նաև օգտագործում է գնդաձև կոորդինատներ ՝ սկզբնաղբյուրի տեսողության կենտրոնական կետով: Սա հնարավորություն է տալիս գծերը հեշտությամբ գեներացվել (յուրաքանչյուրն ունի յուրահատուկ թետա ՝ հորիզոնական անկյուն և phi ՝ ուղղահայաց անկյուն), և ապահովում է հաշվարկների հիմքը: Նույն տետա ունեցող տողերը քարտեզագրվում են նույն շարքի պիքսելներին: Համապատասխան անկյունների phis- ն ավելանում է պիքսելների յուրաքանչյուր տողի վրա:
Մաթեմատիկան պարզեցնելու համար 3D քարտեզը կազմված է ընդհանուր փոփոխականով (ընդհանուր x, y, կամ z) հարթություններից, իսկ մյուս երկու ոչ սովորական փոփոխականները սահմանափակվում են միջակայքում ՝ լրացնելով յուրաքանչյուր հարթության սահմանումը:
Մկնիկով շուրջը նայելու համար ծրագրի հավասարումները ազդում են ուղղահայաց և հորիզոնական պտույտի վրա գնդաձև և xyz կոորդինատային համակարգերի փոխակերպման ժամանակ: Սա ազդում է տեսողության գծերի «հասկ գնդակի» հավաքածուի վրա պտույտի ձևավորման վրա:
Քայլ 3: Մաթեմատիկա
Հետևյալ հավասարումները ծրագրին հնարավորություն են տալիս որոշելու, թե որ տողերն են հատում յուրաքանչյուր օբյեկտ և տեղեկատվություն յուրաքանչյուր խաչմերուկի մասին: Ես ստացա այս հավասարումները հիմնական գնդաձև կոորդինատային հավասարումներից և 2D ռոտացիայի հավասարումներից.
r = հեռավորություն, t = theta (հորիզոնական անկյուն), p = phi (ուղղահայաց անկյուն), A = պտույտ Y առանցքի շուրջ (ուղղահայաց պտույտ), B = պտույտ Z առանցքի շուրջ (հորիզոնական պտույտ)
Kx = (sin (p)*cos (t)*cos (A)+cos (p)*sin (A))*cos (B) -inin (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
լուսավորություն = Klight/r*(Kx կամ Ky կամ 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)))
Քայլ 4: րագիր
Հուսով եմ, որ այս 3D դիտիչի նախատիպը օգնեց ձեզ հասկանալ եռաչափ վիրտուալ իրականության աշխատանքը: Որոշ ավելի կատարելագործող և կոդավորմամբ ՝ այս դիտողն, անշուշտ, ներուժ ունի օգտագործելու եռաչափ խաղերի մշակման մեջ:
Խորհուրդ ենք տալիս:
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
Կառուցեք մեքենայի դիտիչ `9 քայլ
Build Machine Watcher. Այս նախագծի մեկնարկային կետը մի կոնկրետ նախագծի վրա աշխատելն էր ՝ միկրոկառավարիչների տախտակների մասին մի քանի բան իմանալու համար: Սկզբնական գաղափարն էր ստեղծել ֆիզիկական օբյեկտ, որը կարող էր վերահսկել շարունակական ինտեգրացիոն համակարգը (VSTS | Azure DevOps) և ներկայացուցիչ
Գլխավոր վեբ խցիկի դիտիչ ՝ 7 քայլ
Գլխավոր վեբ խցիկի դիտիչ. Վերջերս գրառումը դիտեց առևտրային համակարգը, որը թույլ կտա օգտվողներին ուղղակիորեն նայել իրենց վեբ տեսախցիկին, մինչդեռ դեռ կարող են տեսնել այն մարդուն, ում հետ նրանք խոսում են - Teleprompter style - Սա իմ գաղափարն է այդ գաղափարի վերաբերյալ: Հեշտ է կառուցել էականը
Համակարգչային էկրանի ռենտգեն դիտիչ ՝ 4 քայլ
Համակարգչային էկրանի ռենտգեն դիտիչ. Սա պարզ մեթոդ է `ձեր համակարգիչը որպես լուսատուփ ռենտգենյան ճառագայթներ դիտելու համար օգտագործելու համար: Ձեր ոսկորները կոտրելը նոր է հասել զվարճանքի նոր մակարդակի
Թվային 3D պատկերների դիտիչ - «DigiStereopticon». 6 քայլ (նկարներով)
Թվային 3D պատկերների դիտիչ - «DigiStereopticon». Դա, հավանաբար, պայմանավորված է նրանով, որ մարդիկ չեն սիրում հատուկ ակնոցներ կրել ՝ ընտանեկան լուսանկարները դիտելու համար: Ահա մի զվարճալի փոքրիկ նախագիծ, որը կարող եք կատարել մեկ օրվա ընթացքում ՝ ձեր 3D նկարը պատրաստելու համար