Orodha ya maudhui:

Mtazamaji wa 3D: Hatua 4
Mtazamaji wa 3D: Hatua 4

Video: Mtazamaji wa 3D: Hatua 4

Video: Mtazamaji wa 3D: Hatua 4
Video: Маша и Медведь (Masha and The Bear) - Маша плюс каша (17 Серия) 2024, Novemba
Anonim
Mtazamaji wa 3D
Mtazamaji wa 3D

Halo! Ili kutosheleza hamu yangu katika programu na kwa matumaini kusaidia kukidhi yako, ningependa kukuonyesha Mtazamaji wa 3D ambaye niliandika kwenye javascript. Ikiwa ungependa kukuza uelewa wako wa michezo ya 3D au hata uunda mchezo wako wa 3D, mfano huu mtazamaji wa 3D ni mzuri kwako.

Hatua ya 1: Nadharia

Nadharia
Nadharia

Ili kuelewa nadharia ya mtazamaji huyu wa 3D, unaweza tu kuchunguza jinsi unavyoangalia mazingira yako (inasaidia kuwa na chanzo kimoja tu muhimu cha taa). Kumbuka kuwa:

  1. Vitu ambavyo viko mbali zaidi na wewe huchukua sehemu ndogo ya uwanja wako wa maono.
  2. Vitu ambavyo viko mbali zaidi na chanzo cha nuru vinaonekana kuwa na rangi nyeusi.
  3. Kama nyuso zinazofanana zaidi (chini ya perpendicular) na chanzo cha nuru, zinaonekana kuwa na rangi nyeusi.

Niliamua kuwakilisha uwanja wa maono na rundo la mistari inayotokana na hatua moja (inayofanana na mpira wa macho). Kama mpira wa spike, mistari inahitaji kugawanywa sawasawa ili kuhakikisha kuwa kila sehemu ya uwanja wa maono inawakilishwa sawa. Katika picha hapo juu, angalia jinsi mistari inayotokana na mpira wa spike inavyopanuliwa zaidi wakati inakwenda mbali zaidi kutoka katikati ya mpira. Hii inasaidia kuibua utekelezaji wa mpango wa uchunguzi 1 kwa kuwa wiani wa mistari hupungua wakati vitu vinasonga mbali zaidi kutoka kwa kituo cha katikati.

Mistari ni kitengo cha msingi cha maono katika programu, na kila mmoja amewekwa ramani kwa pikseli kwenye onyesho. Wakati mstari unapita katikati ya kitu, pikseli yake inayofanana ina rangi kulingana na umbali wake kutoka kwa chanzo cha nuru na pembe yake kutoka kwa chanzo cha nuru.

Hatua ya 2: Nadharia ya Utekelezaji

Nadharia ya Utekelezaji
Nadharia ya Utekelezaji

Ili kurahisisha programu, chanzo nyepesi ni sawa na kituo cha katikati (mboni ya jicho: hatua ambayo ramani inatazamwa na mahali ambapo mistari inatoka). Analog ya kushikilia taa karibu na uso wako, hii hupunguza vivuli na inaruhusu mwangaza wa kila pikseli kuhesabiwa kwa urahisi zaidi.

Programu hiyo pia hutumia kuratibu za duara, na kituo cha maono kwenye asili. Hii inawezesha mistari kuzalishwa kwa urahisi (kila moja ina theta ya kipekee: pembe ya usawa na phi: pembe ya wima), na hutoa msingi wa mahesabu. Mistari iliyo na theta sawa imepangwa kwa saizi katika safu moja. Phis ya pembe zinazofanana huongezeka kwa kila safu ya saizi.

Ili kurahisisha hesabu, ramani ya 3D inajumuisha ndege zilizo na tofauti ya kawaida (kawaida x, y, au z), wakati vigeuzi vingine viwili visivyo vya kawaida vimefungwa ndani ya anuwai, kukamilisha ufafanuzi wa kila ndege.

Kuangalia kote na panya, hesabu ya mpango wa mpango katika mzunguko wima na usawa wakati wa ubadilishaji kati ya mifumo ya kuratibu ya spherical na xyz. Hii ina athari ya kutanguliza mzunguko kwenye seti ya "mpira wa miiba" ya mistari ya maono.

Hatua ya 3: Math

Usawa ufuatao unawezesha mpango kuamua ni mistari ipi inayokatiza kila kitu na habari juu ya kila makutano. Nimepata hesabu hizi kutoka kwa equation ya msingi ya uratibu wa spherical na hesabu za mzunguko wa 2D:

r = umbali, t = theta (pembe ya usawa), p = phi (pembe ya wima), A = mzunguko juu ya mhimili Y

Kx = (dhambi (p) * cos (t) * cos (A) + cos (p) * dhambi (A)) * cos (B) -dhambi (p) * dhambi (t) * dhambi (B)

Ky = (dhambi (p) * cos (t) * cos (A) + cos (p) * dhambi (A)) * dhambi (B) + dhambi (p) * dhambi (t) * cos (B)

Kz = -dhambi (p) * cos (t) * dhambi (A) + cos (p) * cos (A)

x = r * Kx

y = r * Ky

z = r * Kz

r ^ 2 = x ^ 2 + y ^ 2 + z ^ 2

taa = Klight / r * (Kx au Ky au Kz)

p = arccos ((x * dhambi (A) * cos (B) + y * dhambi (A) * dhambi (B) + z * cos (A)) / r)

t = arccos ((x * cos (B) + y * dhambi (B) -p * dhambi (A) * cos (p)) / (r * cos (A) * dhambi (p)))

Hatua ya 4: Programu

Programu
Programu

Natumai kuwa mtazamaji huyu wa 3D alikusaidia kuelewa utendaji wa hali halisi ya 3D. Pamoja na utimilifu zaidi na usimbuaji, mtazamaji huyu hakika ana uwezo wa kutumiwa katika ukuzaji wa mchezo wa 3D.

Ilipendekeza: