Дві рідини, один трюк з щільністю
Реальна лавова ліхтариком містить дві не змішувані рідини, найчастіше на основі воску та прозору суміш води та розчинника, обрані так, щоб при кімнатній температурі віск був трохи щільнішим за навколишню рідину і знаходився у вигляді твердого утворення на дні. Трюк, який робить все це робочим, полягає в тому, що щільність воску змінюється швидше, ніж у навколишньої рідини, тому помірна кількість нагрівання достатньо для того, щоб перевернути, яка з них є щільнішою.
Конвективний цикл: плавучість зустрічається з термічним розширенням
Джерело світла або нагрівальний елемент у основі нагріває восковий блок, який знаходиться найближче до нього. Як і майже всі матеріали, водень розширюється при нагріві, що знижує його щільність, і коли він стає менш щільним, ніж навколишня рідина, плавучість піднімає його у вигляді рожевого шматка вгору. Удаляючись від джерела тепла біля верху лампи він поступово охолоджується, стискається, стає знову щільнішим і падає назад до основи для повторного нагріву – само підтримуючий цикл, відомий як термічна конвекція, який є тією ж основною механізмом, що живить погодні закономірності в атмосфері та конвекцію мантії під земним коростом, лише на меншому, більш м’якому масштабі.
Чому плями залишаються круглими замість того, щоб розчинятися
Свічка та навколишня рідина є хімічно незбагненними – вони просто не розчиняються одна в іншій, як і олія та вода. На межі між двома рідинами поверхневий натяг діє як натянута еластична шкіра, яка намагається мінімізувати площу контакту, тому плаваюча пляма свічки тягнеться до гладкої, круглої форми замість того, щоб розтікатися тонким шаром. Коли дві плями стикаються, той самий поверхневий натяг дозволяє їм зливатися в одну більшу пляму замість відштовхування один одного, тимчасово утворюючи вузький з’єднувальний шток, який розширюється під час злиття.
Metaballs: рендеринг мас для плавної зливу
Моделювання повноцінної гідродинаміки двох незмішуваних рідин у реальному часі, відстеження точного обризу кожного крапельки – це ресурсозатратно. Більш дешевий і візуально переконливий трюк, запозичений з комп’ютерної графіки, — це метабол: замість твердого граневого полотна кожен мас представлений як гладке скалярне поле, яке досягає піку в центрі та згасає на відстані, і видима поверхня зображується там, де сума полів найближчих до нього метаболів перевищує фікво порог.
field(p) = сума по всіх масах i радіуса_i^2 / dot(p - center_i, p - center_i) поверхня = { p : field(p) >= threshold } // зображується піксель за пікселем у фрагментному шейдері Оскільки поля зливаються аддитивно, два метаболи, що наближаються один до одного, викликають підвищення сукупного поля між ними, перш ніж їхні видимі поверхні торкаються одна одну, тому зображений вигляд розтягується у з’єднувальний міст і плавно зливаються – візуально ідентично реальному злиттю на основі поверхневого напруження, досягнутому шляхом оцінки поля піксель за пікселем у GLSL фрагментному шейдері.
field(p) = sum over all blobs i of radius_i^2 / dot(p - center_i, p - center_i)
surface = { p : field(p) >= threshold } // drawn per-pixel in the fragment shader
Frequently asked questions
Чому парафін у лампі з лави підіймається та опускається замість того, щоб просто лежати внизу?
Лампа на основі нагріває парафін, що призводить до його розширення і зменшення щільності порівняно з охолодженою навколишньою рідиною, тому виштовхувальна сила піднімає його вгору. Віддаляючись від лампи, він охолоджується, стискається, стає ще більш щільним і опускається назад на дно для повторного нагрівання. Цей повільний термічний цикл, а не будь-який насос або рухома частина, є тим, що безперервно піднімає та опускає парафін вгору та вниз, поки лампа увімкнена.
Чому парафін не змішується з навколишньою рідиною?
Парафін і рідина обрані таким чином, щоб бути хімічно незбагненними, тобто вони не розчиняються один в одному, незалежно від того, як довго вони торкаються один одного, подібно до олії та води. Напруга поверхні на межі їхньої взаємодії тягне кожну краплю в компактну форму, яка мінімізує її площу поверхні, тому парафін утворює округлі краплі замість того, щоб розсіюватися по навколишній рідині.
Що таке метаболи та чому вони використовуються для рендерингу цього ефекту?
Метаболи – це техніка рендерингу, де кожна крапля представлена не фіксованою сіткою, а математичним полем, яке згасає з відстанню від центральної точки; де завгодно сума поля від усіх сусідніх крапель перетинає поріг, там малюється поверхня. Оскільки поля плавно змішуються, дві краплі метаболи, що наближаються одна до одної, природним чином розтягуються та зливаються в одну безперервну форму замість того, щоб стикатися як окремі тверді об'єкти, що ідеально відповідає органічному, липкому вигляду, який мають справжні краплі парафіну при контакті.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Lava Lamp і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Lava Lamp