If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Въведение в системите от частици

През 1982 г., Уилям Т. Рийвс, изследовател от фирмата Lucasfilm ООД работи върху филма Star Trek II: The Wrath of Khan. Голяма част от сюжета на филма се върти около устройството Дженезис – торпедо, което, изстреляно към безплодна, мъртва планета, има силата да реорганизира материята и да създаде обитаем свят за колонизация. По време на тези кадри планетата е обвита от огнена стена, докато е в процес на "тераформиране":
Видео плейър на видеоклиповете в Кан Академия
Терминът система от частици, невероятно често използвана и полезна техника в компютърната графика, е измислен при създаването именно на този ефект.
“Системата от частици е колекция от множество мънички частици, които заедно представляват размазан обект. За някакъв период от време частиците се генерират в система, движат се и се променят в тази система и умират от системата.” - Уилям Рийвс, "Системи от частици - Техника за моделиране на клас неясни обекти," ACM Transactions on Graphics 2:2 (Април 1983), 92.
От началото на 1980 г. системи от частици са били използвани в безброй видео игри, анимации, цифрови произведения на изкуството, както и инсталации за моделиране на различни неправилни видове природни явления, като огън, дим, водопади, мъгла, трева, мехурчета, и така нататък.
Този раздел ще бъде посветен на разглеждането на стратегии за имплементация за програмиране на системи от частици. Как да оргазнизираме своя код? Къде да запазваме информацията за отделните частици и къде информацията за системата като цяло? Примерите, които ще разгледаме, ще се фокусират върху управлението на данните, свързани със системата от частици. В тях ще използваме прости форми за частиците и ще прилагаме само най-основните поведения (например гравитация). Въпреки това, като използваш този подход и построяваш по-интересни начини за създаване на частици и изчисляване на тяхното поведение, можеш да постигнеш много различни ефекти.
Според цитата, описан по-горе, системата от частици е колекция от прости обекти. Вече сме си имали работа с програмиране на колекции от обекти – като масивите от обекти Movers, които симулират подскачащи топчета. Но за системите от частици нашите колекции ще бъдат по-сложни. Колекциите ще варират по своя размер: понякога ще съдържат 0 частици, понякога 10, а друг път - 10 000. Самите колекции ще имат и поведение, и свойства, а не само частиците, от които са изградени. Нашата цел е да можем да напишем програма, която да изглежда по този начин:
var ps = new ParticleSystem();

draw = function() {
    background(255, 255, 255);
    ps.run();
};
В този код не е извикана нито една отделна частица и въпреки това в резултат ще получим куп частици, които да летят по екрана. Ще създаваме програми от няколко типа обекти и обекти, които следят други колекции от обекти, които ни помагат да създаваме мощни системи от частици, но и ни помагат да се подготвим, за да пишем по-мощни програми като цяло.
За да открием как да програмираме система от частици, ще използваме две по-сложни техники за обектно-ориентирано програмиране: наследяване и полиморфизъм. В примерите, които разглеждахме до сега, винаги имахме масив от един тип обекти като "movers" или “oscillators.” С наследяването (и полиморфизма) ще се научим как удобно да си направим масив, който да съдържа обекти от различни типове. По този начин системата от частици няма да съдържа само един вид частици.
В тази секция ще разгледаме най-типичните употреби на системите от частици, но това, че частиците в тази глава изглеждат или се държат по определен начин, не трябва да ограничава твоето въображение. Това че тези системи от частици изглеждат блестящи, летят напред и падат с гравитация, не е означава, че задължително трябва да използваш същите характеристики и за своите частици. Тук фокусът е върху това как проследяваме система от много елементи. Това какво правят тези елементи или как изглеждат зависи от теб.

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.