Кіріспе
Ойын физикасындағы, қозғалыс графикасындағы және компьютерлік графикадағы техника. 3D компьютерлік графика.
3D computer graphics
Бөлшек жүйесі – ойын физикасындағы, қозғалыс графикасындағы және компьютерлік графикадағы көптеген ұсақ спрайттарды, 3D модельдерді немесе басқа да графикалық объектілерді қолданатын техника, ол әдетте дәстүрлі рендерлеу әдістерімен қайта жасау қиын болатын белгілі бір "бұлыңғыр" құбылыстарды симуляциялауға мүмкіндік береді – әдетте өте хаостық жүйелер, табиғи құбылыстар немесе химиялық реакциялардың нәтижесінде туындайтын процестер. 1982 жылғы "Жұлдыздар жолы II: Ханның қаһары" фильмінде "Жаратылыс эффектісі" ретінде енгізілген, басқа мысалдарға от, жарылыстар, түтін, қозғалатын су (мысалы, сарқырама), ұшқындар, жапырақтардың құлауы, тас құлауы, бұлттар, тұман, қар, шаң, метеорлардың іздері, жұлдыздар мен галактикалар немесе жарқыраған іздер, сиқырлы әсерлер сияқты абстрактілі визуалды эффекттер жатады. Бұл эффекттердің көзінен жылдам жойылып, қайта шығарылатын бөлшектерді пайдаланады. Басқа бір техника көптеген жіптерден тұратын нәрселер үшін қолданылады – мысалы, жүн, шаш және шөп – ол бірден бөлшектің өмірлік циклын көрсетуді қамтиды, содан кейін оны аталған материалдың бір жібі ретінде салуға және өңдеуге болады. Бөлшек жүйесі – кеңістіктегі нүктелердің жиынтығы, мінез-құлқы мен сыртқы түрін анықтайтын ережелер жинағы. Бөлшек жүйелері құбылыстарды бөлшектердің бұлты ретінде модельдейді, динамикалық жүйелер мен сұйықтық механикасын анықтауды жеңілдету үшін стохастикалық процестерді қолданады, оларды аффиндік түрлендірулермен бейнелеу қиын.
Эмиссия кезеңі
Эмиттер үрлеу жылдамдығын (уақыт бірлігіне қанша бөлшектер туындайды) және бөлшектердің бастапқы жылдамдық векторын (туындаған кезде олардың қозғалыс бағыты) іске асырады. Егер эмитер ретінде торлы объектіні пайдалансаңыз, бастапқы жылдамдық векторы көбінесе объектінің әрбір бетіне перпендикуляр етіп қойылады, бұл бөлшектердің әр беттен тікелей "шашыраған" сияқты көрінуіне мүмкіндік береді, бірақ бұл міндетті емес.
Эмоция кезеңі
Моделилеу кезеңінде жаңа бөлшектердің саны шығару жылдамдығы және жаңарту аралығына сәйкес есептеледі, және олардың әрқайсысы эмитердің орны мен белгіленген шығару аймағына сүйене отырып, 3D кеңістікте нақты бір координатада шығарылады. Бөлшектің әрбір параметрі (мысалы, жылдамдық, түс және т.б.) эмитердің параметрлеріне қарай бастамаланады. Әрбір жаңарту кезінде барлық қолданыстағы бөлшектердің өмір сүру мерзімі асып кеткені тексеріледі, және егер асып кетсе, олар модельдеуден алынып тасталады. Әйтпесе, бөлшектердің орны және басқа да қасиеттері физикалық модельдеу негізінде өзгереді, бұл олардың қазіргі орнын жылжыту сияқты қарапайым, немесе сыртқы күштерді (гравитация, үйкеліс, жел және т.б.) ескере отырып, физикалық тұрғыдан нақты траектория есептеулерін жүргізу сияқты күрделі болуы мүмкін. Бөлшектерді және көріністегі белгіленген 3D нысандарды соқтығыстыруды анықтау арқылы бөлшектердің қоршаған ортадағы кедергілерден секіруі немесе басқаша өзара әрекеттесуі үшін жиі қолданылады. Бөлшектер арасындағы соқтығысулар сирек қолданылады, себебі олар есептеу ресурстарын көп жұмсайды және көптеген модельдеулер үшін көру бұрышынан маңызды емес.
Рендеринг кезеңі
Жаңарту аяқталғаннан кейін әр бөлшек, әдетте текстураланған билбордты төртбұрыш (яғни көрерменге әрқашан қарап тұратын фигура) түрінде көрсетіледі. Дегенмен, бұл кейде ойындар үшін қажет болмайды; бөлшек кішкентай қарапайым немесе шектеулі өңдеу мүмкіндігі бар жағдайларда бір пиксель ретінде көрсетілуі мүмкін. Керісінше, қозғалыс графикасында бөлшектер толыққанды, бірақ кішкентай масштабты және көрсетуге оңай 3D модельдер түрінде болады, тіпті жоғары ажыратымдылықта да сақтықты қамтамасыз ету үшін. Бөлшектер офлайн рендеринг кезінде метаболдар ретінде көрсетілуі мүмкін; бөлшек метаболдарынан есептелген изожа беттері өте нанымды сұйықтықтарды жасауға мүмкіндік береді. Соңында, 3D тор нысандары бөлшектердің орнына қолданылуы мүмкін – мысалы, қар құрамында бір 3D қар ұпайы торы болуы мүмкін, ол мыңдаған немесе миллиондаған бөлшектердің орналасуына сәйкес көбейтіліп, бұрылады.
Бөлшектер жүйесінің таксономиясы
1983 жылы Ривз тек анимацияланған нүктелерді анықтап, қозғалатын бөлшектердің симуляцияларын жасады – ұшқындар, жаңбыр, от және т.б. Осы іске асыруларда анимацияның әрбір кадрында әр бөлшектің өмірлік циклындағы нақты орны көрсетіледі және әр бөлшек кеңістікте бір ғана нүктелік орынды иеленеді. От немесе түтін сияқты тарап кететін эффектілер үшін әр бөлшекке жоғалу уақыты немесе белгілі бір өмір сүру мерзімі беріледі; ал қарлы борандар немесе жаңбыр сияқты эффектілерде бөлшектің өмір сүру мерзімі белгілі бір көру бұрышынан шыққан кезде тоқтатылады. 1987 жылы Рейнольдс үйірлесу, мал өрістеу немесе бірігіп жүзу сияқты мінез-құлықтарды енгізді. Бойдс моделі бөлшектерді симуляциялауды мақсатты іздеу, соқтығысудан қашу, топты орталыққа жинақтау және шектеулі сезіну сияқты сыртқы факторлардың өзара әрекеттесуін қамтиды. 2003 жылы Мюллер бөлшектік жүйелерді сұйықтықтарға қатысты кеңейтіп, тұтқырлықты, қысымды және беттік кернеуді симуляциялады, содан кейін дискретті орналасуларды тегістелген бөлшектік гидродинамика арқылы интерполяциялап, беттерді көрсетті.
Жасаушы үшін ыңғайлы бөлшектер жүйесі құралдары
Ойын қозғалтқыштарына, цифрлық контент жасау жүйелеріне және эффектілерге енгізілетін бөлшектік жүйелер кодын бастап жазуға немесе жүктеуге болады. Havok бірнеше бөлшектік жүйе API-ін ұсынады. Олардың Havok FX API-і бөлшектік жүйе эффектілеріне ерекше назар аударады. Ageia, қазір Nvidia еншілес компаниясы, көптеген ойындарда, соның ішінде Unreal Engine 3 ойындарында қолданылатын бөлшектік жүйе және басқа ойын физикасы API-ін ұсынады. GameMaker Studio және Unity екеуі де екі өлшемді бөлшектік жүйемен жабдықталған, оны көбінесе тәуелсіз, хобби немесе студент ойын әзірлеушілер пайдаланады, бірақ оны басқа қозғалтқыштарға импорттауға болмайды. Көптеген басқа да шешімдер бар, ал егер стандартты емес эффектілер немесе мінез-құлықтар қажет болса, бөлшектік жүйелер көбінесе бастап жазылады.