Мазмұны:
Бейне: 3D қарау құралы: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Сәлеметсіз бе! Бағдарламалауға деген қызығушылығымды қанағаттандыру үшін және сіздің қажеттіліктеріңізді қанағаттандыруға көмектесу үшін мен сізге JavaScript -те кодталған 3D қарау құралын көрсеткім келеді. Егер сіз 3D ойындары туралы түсінігіңізді арттырғыңыз келсе немесе өзіңіздің 3D ойыныңызды жасағыңыз келсе, бұл 3D қарау құралының прототипі сізге өте ыңғайлы.
1 -қадам: Теория
Бұл 3D көрерменнің теориясын түсіну үшін сіз айналаңызға қалай қарайтындығыңызды тексере аласыз (бұл тек бір маңызды жарық көзінің болуына көмектеседі). Назар аударыңыз:
- Сізден алыста орналасқан объектілер көру аймағының аз бөлігін алады.
- Жарық көзінен алыста орналасқан нысандар күңгірт болып көрінеді.
- Беттер жарық көзіне параллель (аз перпендикуляр) болған сайын, олар қою түсті болып көрінеді.
Мен көру нүктесін бір нүктеден (көз алмасына ұқсас) тұратын көптеген сызықтармен ұсынуды шештім. Бағаналы шар тәрізді, көру өрісінің әрбір бөлігінің бірдей ұсынылуын қамтамасыз ету үшін сызықтарды біркелкі орналастыру қажет. Жоғарыдағы суретте, шариктен шығатын сызықтар доптың ортасынан алыстаған сайын олардың қалай кеңейетінін байқаңыз. Бұл бағдарламаның 1 бақылауды жүзеге асыруын елестетуге көмектеседі, өйткені объектілер орталық нүктеден алыстаған сайын желілердің тығыздығы төмендейді.
Сызықтар бағдарламадағы негізгі көру бірлігі болып табылады және олардың әрқайсысы дисплейдегі пиксельмен салыстырылады. Сызық объектімен қиылысқанда, оның сәйкес пиксельі жарық көзінен қашықтығы мен жарық көзінен бұрышына қарай боялған.
2 -қадам: Іске асыру теориясы
Бағдарламаны жеңілдету үшін жарық көзі орталық нүктемен бірдей (көз алмасы: карта қаралатын және сызықтар шыққан нүкте). Жарықты сіздің бетіңіздің жанында ұстауға ұқсас, бұл көлеңкелерді жояды және әр пиксельдің жарықтығын әлдеқайда оңай есептеуге мүмкіндік береді.
Бағдарлама сонымен қатар сфералық координаттарды қолданады, оның бастапқы нүктесінде көру нүктесі болады. Бұл сызықтарды оңай шығаруға мүмкіндік береді (әрқайсысында бірегей тетасы бар: көлденең бұрыш және phi: тік бұрыш) және есептеулердің негізін құрайды. Тетасы бірдей жолдар бір қатардағы пиксельдермен салыстырылады. Пикселдердің әр қатарында сәйкес бұрыштардың фисі жоғарылайды.
Математиканы жеңілдету үшін 3D картасы жалпы айнымалысы бар жазықтықтардан тұрады (ортақ x, y немесе z), ал қалған екі ортақ емес айнымалылар әр жазықтықтың анықтамасын аяқтай отырып, диапазон ішінде шектеледі.
Тінтуірдің көмегімен айналаға қарау үшін сфералық және xyz координаталық жүйелер арасында түрлендіру кезінде бағдарламаның теңдеулері тік және көлденең айналуға әсер етеді. Бұл көру сызықтарының «тікенді допқа» айналуына алдын ала әсер етеді.
3 -қадам: Математика
Келесі теңдеулер бағдарламаға әр объектінің қай сызықпен қиылысатынын және әр қиылысу туралы ақпаратты анықтауға мүмкіндік береді. Мен бұл теңдеулерді негізгі сфералық координаталық теңдеулер мен 2D айналу теңдеулерінен алдым:
r = қашықтық, t = тета (көлденең бұрыш), p = phi (тік бұрыш), A = Y осінің айналуы (тік айналу), B = Z осінің айналуы (көлденең айналу)
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
жарықтандыру = 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 қарау құралының прототипі сізге 3D виртуалды шындықтың жұмысын түсінуге көмектесті деп үміттенемін. Біршама жетілдіру мен кодтауды қолдана отырып, бұл көрермен 3D ойындарын әзірлеуде қолданылуы мүмкін.
Ұсынылған:
Z80 компьютерін қайта қарау: 6 қадам
Z80 компьютеріне шолу: Бұрын мен Z80 негізіндегі компьютерді құру бойынша нұсқаулық жаздым және схеманы мүмкіндігінше қарапайым етіп құрастырдым, сондықтан оны мүмкіндігінше оңай құрастыруға болады. Мен қарапайымдылық идеясын қолдана отырып, шағын бағдарлама жаздым. Т
Жұлдызды соғыстарды командалық жолда қарау: 14 қадам
Жұлдызды соғыстарды пәрмен жолында қарау: әр Windows компьютері бірнеше қарапайым пәрменмен жасай алатын керемет трюк
СКД арқылы сенсорлық деректерді қарау: 5 қадам
Сенсорлық деректерді экрандағы СКД арқылы қарау: Бұл жобада біз Arduino көмегімен экранда 2 сенсордың деректерін қарауымыз керек. Бұл жобаны қолдану жылыжайда ылғалдылық пен температураны бақылау болып табылады
Фото қарау құралы Білек жылытқышы: 5 қадам
Фото қарау құралы Білек жылытқышы: Мен фотосуреттерді қарау құралдарының бірін сатып алдым, ол тек теннер болды, сондықтан мен «иә, неге бұл мүмкін емес» деп ойладым. бұл? Оны бөліп, білекке жылытқышқа жабыстырыңыз
Сандық 3D суретті қарау құралы - «DigiStereopticon»: 6 қадам (суреттермен)
Сандық 3D суретті қарау құралы - «DigiStereopticon»: Стереоскопиялық фотосурет ұнамады. Бұл отбасылық суреттерді көру үшін адамдарға арнайы көзілдірікті киюді ұнатпайтындығынан болса керек. Міне, 3D суретін жасау үшін бір күннің ішінде жасай алатын қызықты шағын жоба