Բովանդակություն:

3D դիտիչ ՝ 4 քայլ
3D դիտիչ ՝ 4 քայլ

Video: 3D դիտիչ ՝ 4 քայլ

Video: 3D դիտիչ ՝ 4 քայլ
Video: Horizontal Directional Drilling / Boring (HDD): How the Drill Bit is Steered 2024, Հուլիսի
Anonim
3D դիտիչ
3D դիտիչ

Բարեւ Ձեզ! Mingրագրավորման նկատմամբ իմ հետաքրքրությունը բավարարելու և հուսով եմ, որ ձեր ցանկությունները բավարարելու համար ես կցանկանայի ցույց տալ ձեզ 3D Viewer- ը, որը ես ծածկագրել եմ javascript- ում: Եթե ցանկանում եք ավելի խորացնել ձեր պատկերացումները 3D խաղերի մասին կամ նույնիսկ ստեղծել ձեր սեփական 3D խաղը, այս 3D դիտիչի նախատիպը կատարյալ է ձեզ համար:

Քայլ 1: Տեսություն

Տեսություն
Տեսություն

Այս 3D դիտողի տեսությունը հասկանալու համար կարող եք պարզապես ուսումնասիրել ձեր շրջապատի տեսքը (դա օգնում է ունենալ միայն մեկ նշանակալի լույսի աղբյուր): Ուշադրություն դարձրեք, որ.

  1. Ձեզանից ավելի հեռու գտնվող օբյեկտները զբաղեցնում են ձեր տեսողության դաշտի ավելի փոքր մասը:
  2. Լույսի աղբյուրից ավելի հեռու գտնվող առարկաները ավելի մուգ գույն են ունենում:
  3. Մակերևույթները լույսի աղբյուրին ավելի զուգահեռ (ավելի քիչ ուղղահայաց) են դառնում, դրանք ավելի մուգ երանգ են ունենում:

Ես որոշեցի ներկայացնել տեսողության դաշտը ՝ մի կետից բխող տողերի մի փունջով (աչքի բիբին նման): Ինչպես հասկ գնդակը, այնպես էլ գծերը պետք է հավասարաչափ տարածվեն, որպեսզի տեսողական դաշտի յուրաքանչյուր հատված հավասարապես ներկայացված լինի: Վերևի նկարում ուշադրություն դարձրեք, թե ինչպես են գնդիկավոր գնդիկներից եկող գծերը ավելի տարածվում, երբ նրանք ավելի հեռու են հեռանում գնդակի կենտրոնից: Սա օգնում է պատկերացնել ծրագրի 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 դիտիչի նախատիպը օգնեց ձեզ հասկանալ եռաչափ վիրտուալ իրականության աշխատանքը: Որոշ ավելի կատարելագործող և կոդավորմամբ ՝ այս դիտողն, անշուշտ, ներուժ ունի օգտագործելու եռաչափ խաղերի մշակման մեջ:

Խորհուրդ ենք տալիս: