Физик хөдөлгүүр (компьютер)
Физикийн хөдөлгүүр гэдэг нь тодорхой физикийн системүүдийг, ихэвчлэн 고лассик динамик (хатуу биеийн динамик, мөргөлдөөн илрүүлэхийг багтаасан), зөөлөн биеийн динамик болон шингэний динамикийг ойролцоогоор загварчилж симуляц хийдэг компьютерийн програм хангамж юм. Үүнийг компьютер график, видео тоглоом, кино (CGI) зэрэг салбарт ашиглагддаг. Хамгийн өргөн хэрэглээ нь видео тоглоомд (ихэвчлэн middleware хэлбэрээр) бөгөөд симуляцууд нь бодитоор явагддаг. Заримдаа энэ нэр томъёог өндөр гүйцэтгэлтэй шинжлэх ухааны симуляц зэрэг физикийн үзэгдлийг загварчлах ямар ч програм хангамжийн системийг ерөнхийд нь тодорхойлоход ашигладаг.
Тайлбар
[засварлах | кодоор засварлах]Физикийн хөдөлгүүрүүдийг ерөнхийдөө хоёр ангилалд хуваадаг: бодит цагийн (real-time) ба өндөр нарийвчлалтай (high-precision). Өндөр нарийвчлалтай физикийн хөдөлгүүрүүд маш нарийн бодолт хийхэд илүү их тооцооллын хүч шаарддаг бөгөөд ихэвчлэн эрдэм шинжилгээний болон компьютерийн анимэйшн кинонд ашиглагддаг. Бодит цагийн физикийн хөдөлгүүрүүд нь (видео тоглоом болон бусад интерактив тооцоололд) энгийнчилсэн тооцоолол, буурсан нарийвчлал ашиглаж, тоглоомын хариу үйлдэлд хангалттай хурдан бодолт хийдэг. Физикийн хөдөлгүүр нь үндсэндээ физикийг симуляц хийхэд шаардлагатай математикийн тооцоог хийдэг том калькулятор юм.
Шинжлэх ухааны хөдөлгүүрүүд
[засварлах | кодоор засварлах]ENIAC гэх мэт анхны ерөнхий зориулалтын компьютерүүдийг энгийн төрлийн физикийн хөдөлгүүр болгон ашиглаж байсан. Жишээ нь, АНУ-ын армид артиллерийн сумны нисэлтийн замыг тооцоолж, салхины нөлөөг тооцон, баллистик хүснэгт гаргахад ашиглаж байв. Үр дүнг нэг удаа тооцоолж, командлагч нарт тараадаг байжээ.
1980-аад оноос хойш физикийн хөдөлгүүрүүдийг суперкомпьютер дээр шингэний динамикийн тооцоололд өргөн ашиглах болсон. Үүнд, хурд болон өндөр нарийвчлал шаарддаг тул вектор процессор хэмээх тусгай процессоруудыг хөгжүүлсэн. Эдгээр аргуудыг цаг уурын урьдчилсан мэдээ, салхины хонгилын өгөгдөл, автомашин, онгоц, усан онгоцны загварчлал, процессорын дулаан ялгарлын судалгаа зэрэгт ашигладаг. Симуляцийн нарийвчлал нь загварын нарийвчлал, тооцооллын нарийвчлалаас ихээхэн хамаарна.
Дугуй үйлдвэрлэгчид шинэ хээ, материал, ачааллын нөхцөлд дугуйн гүйцэтгэлийг симуляц хийхэд физикийн симуляц ашигладаг.
Тоглоомын хөдөлгүүрүүд
[засварлах | кодоор засварлах]Ихэнх компьютер тоглоомд процессорын хурд, тоглоомын явц нь симуляцийн нарийвчлалаас илүү чухал байдаг. Иймээс бодит цагийн физикийн хөдөлгүүрүүд нь энгийн тохиолдолд бодит ертөнцийн физикийг ойролцоогоор дуурайлган, хурдан үр дүн гаргахаар бүтээгддэг. Ихэнхдээ "мэдрэмжээр зөв" ойролцоолол гаргах нь бодит симуляц хийхээс илүү чухал байдаг. Гэсэн ч зарим тоглоомын хөдөлгүүр (жишээ нь Source) нь оньсого эсвэл тулаанд илүү нарийн физикийн симуляц шаарддаг.
Өмнө нь хатуу биеийн динамикийг л ашигладаг байсан бол орчин үеийн тоглоом, кинонд зөөлөн биеийн физик, бөөмийн эффект, шингэн, даавуу, гал, дэлбэрэлтийн урсгалыг симуляц хийх болсон.
Мөргөлдөөн илрүүлэх
[засварлах | кодоор засварлах]Тоглоомын объектууд тоглогч, орчин, бусад объекттой харилцан үйлчилдэг. Ихэнхдээ 3D объект бүрт хоёр тор (mesh) ашигладаг: нэг нь тоглогчид харагдах нарийн, нөгөө нь физикийн хөдөлгүүрт зориулсан энгийнчилсэн тор. Жишээ нь, гоёмсог бариултай ваарыг физикийн хөдөлгүүр цилиндр хэлбэрээр авч үздэг тул бариулын нүхээр ямар ч зүйл нэвтрэх боломжгүй. Энэ энгийнчилсэн торыг мөргөлдөөний геометр гэж нэрлэдэг. Ихэнхдээ энэ нь хайрцаг, бөмбөрцөг, эсвэл convex hull хэлбэртэй байна. Хайрцаг, бөмбөрцөг ашигладаг хөдөлгүүрүүдийг маш энгийнд тооцдог.
Мөргөлдөөний нарийвчлалд фреймийн хурд (framerate) чухал үүрэгтэй. Фрейм бүрийг тусдаа тооцдог тул бага фреймийн хурдтай, хурдан хөдөлж буй жижиг объект тасалдсан хөдөлгөөнтэй харагддаг бөгөөд зарим тохиолдолд объектууд мөргөлдөөнгүй өнгөрч болно. Үүнийг шийдэхийн тулд зарим хөдөлгүүр (жишээ нь Bullet, Havok) тасралтгүй мөргөлдөөн илрүүлэхийг ашигладаг.
Зөөлөн биеийн динамик
[засварлах | кодоор засварлах]Bounding box-д суурилсан хатуу биеийн системийн оронд төгсгөлтэй элементэд суурилсан систем ашиглаж болно. Энэ нь 3D объектийг олон жижиг элементэд хувааж, эдгээр элементүүдээр дамжуулан хатуулаг, уян хатан чанар, эзэлхүүний хадгалалт зэрэг физикийн шинж чанарыг загварчилдаг. Төгсгөлтэй элементүүдийн тоо нэмэгдэх тусам симуляцийн нарийвчлал нэмэгддэг. Энэ системийг deformation shader ашиглан дүрслэлд нөлөөлдөг. Өндөр хүчин чадалтай процессор, шинэ хэрэгслүүдийн ачаар бодит цагийн төгсгөлтэй элементэд суурилсан системүүд тоглоомд ашиглагдаж эхэлсэн бөгөөд Star Wars: The Force Unleashed тоглоомд Digital Molecular Matter алгоритмыг ашигласан.
Брауны хөдөлгөөн
[засварлах | кодоор засварлах]Бодит ертөнцөд бүх бөөмс байнга хөдөлгөөнд оршдог. Тоглоомын физикийн хөдөлгүүрт ийм нарийн хөдөлгөөнийг тооцох шаардлагагүй тул CPU-н ачааллыг багасгахын тулд хөдөлгөөнгүй болсон объектуудын физикийн тооцооллыг идэвхгүй болгож "унтуулдаг". Жишээ нь Second Life-д объект хөдөлгөөнгүй 2 секунд байвал физикийн тооцоолол зогсож, мөргөлдөөн болсон үед дахин идэвхждэг.
Парадигмууд
[засварлах | кодоор засварлах]Тоглоомын физикийн хөдөлгүүрүүдэд ихэвчлэн мөргөлдөөн илрүүлэх/хариу үйлдэл, динамик симуляцийн үндсэн хоёр бүрэлдэхүүн хэсэг байдаг. Орчин үеийн хөдөлгүүрүүдэд шингэний симуляц, анимацийн удирдлага, хөрөнгийн интеграцийн хэрэгсэл багтаж болно. Физикийн симуляцын гурван үндсэн парадигм бий:
Торгуульд суурилсан арга (penalty method): ихэвчлэн масс-пүршийн системээр загварчилдаг. Зөөлөн биеийн физикт өргөн хэрэглэгддэг.
Хязгаарлалтанд суурилсан арга (constraint-based): физикийн хуулийг илэрхийлэх тэгшитгэлийг боддог.
Импульсэд суурилсан арга (impulse-based): харилцан үйлчлэлд импульс хэрэглэдэг. Энэ нь constraint-based аргын тусгай тохиолдол юм.
Хосолсон арга ч бас байдаг.
Хязгаарлалт
[засварлах | кодоор засварлах]Физикийн хөдөлгүүрийн бодит байдлын гол хязгаар нь хязгаарлалт, мөргөлдөөний шийдлийн ойролцоо үр дүнгээс үүдэлтэй. Мөргөлдөөн илрүүлэх давтамж бага байвал объектууд нэг нэгнээ нэвтлэн өнгөрөх, эсвэл буруу хүчээр түлхэгдэх зэрэг алдаа гарч болно. Хэт ойролцоолсон үр дүн нь буруу үсрэлт, байрлалын алдаа үүсгэж, ялангуяа гинжин холбоос, дугуйтай объектуудад ихээр илэрдэг. Нарийвчлал нэмэгдэх тусам алдаа багасдаг ч тооцооллын зардал өсдөг.
Физикийн процессорын нэгж (PPU)
[засварлах | кодоор засварлах]Физикийн процессорын нэгж (PPU) гэдэг нь видео тоглоомын физикийн хөдөлгүүрийн тооцооллыг гүйцэтгэхэд зориулагдсан тусгай микропроцессор юм. Үүнд хатуу биеийн динамик, зөөлөн биеийн динамик, мөргөлдөөн илрүүлэх, шингэний динамик, үс ба хувцасны симуляц, төгсгөлтэй элементийн шинжилгээ, объектын хагарал зэрэг орно. Энэ нь GPU график тооцооллыг CPU-с салгаж хийдэгтэй адил, физикийн тооцооллыг CPU-с салгаж гүйцэтгэдэг. Ageia компанийн PhysX чип нь PPU нэр томъёог хэрэглэсэн анхны жишээ юм. CPU-GPU-ийн бусад технологиуд зарим ижил шинж чанартай боловч Ageia-ийн шийдэл нь зөвхөн PPU-д зориулагдсан цорын ганц бүрэн шийдэл байсан.