Physics.Math.Code
140K subscribers
5.15K photos
1.92K videos
5.78K files
4.31K links
VK: vk.com/physics_math
Чат инженеров: @math_code
Учебные фильмы: @maths_lib
Репетитор IT mentor: @mentor_it
YouTube: youtube.com/c/PhysicsMathCode

Обратная связь: @physicist_i
加入频道
This media is not supported in your browser
VIEW IN TELEGRAM
💦 Моделирование жидкости (англ. fluid simulation) — область компьютерной графики, использующая средства вычислительной гидродинамики для реалистичного моделирования, анимации и визуализации жидкостей, газов, взрывов и других связанных с этим явлений. Имея на входе некую жидкость и геометрию сцены, симулятор жидкости моделирует её поведение и движение во времени, принимая в расчёт множество физических сил, объектов и взаимодействий. Моделирование жидкости широко используется в компьютерной графике и ранжируется по вычислительной сложности от высокоточных вычислений для кинофильмов и спецэффектов до простых аппроксимаций, работающих в режиме реального времени и использующихся преимущественно в компьютерных играх.

Существует несколько конкурирующих методов моделирования жидкости, каждый из которых имеет свои преимущества и недостатки. Наиболее распространёнными являются сеточные методы Эйлера, гидродинамика сглаженных частиц (англ. smoothed particle hydrodynamics — SPH), методы, основанные на завихрениях, и метод решёточных уравнений Больцмана. Эти методы возникли в среде вычислительной гидродинамики и были позаимствованы для практических задач в индустрии компьютерной графики и спецэффектов. Основное требование к данным методам со стороны компьютерной графики — визуальная правдоподобность. Иными словами, если наблюдатель при просмотре не может заметить неестественность анимации, то моделирование считается удовлетворительным. В физике, технике и математике, с другой стороны, основные требования предъявляются к физической корректности и точности моделирования, а не к её визуальному результату.

В компьютерной графике самые ранние попытки решить уравнения Навье — Стокса в трёхмерном пространстве были предприняты в 1996 году Ником Фостером (англ. Nick Foster) и Димитрисом Метаксасом (англ. Dimitris Metaxas). Их работа в качестве основы использовала более раннюю работу по вычислительной гидродинамике, которая была опубликована в 1965 году Харлоу (англ. Harlow) и Уэлшем (англ. Welch). До работы Фостера и Метаксаса многие методы моделирования жидкости были построены на основе специальных систем частиц, методах снижения размерности (типа двухмерные модели мелких водяных объёмов типа луж) и полу-случайных шумовых турбулентных полях. В 1999 году на SIGGRAPH Джос Стэм (англ. Jos Stam) опубликовал метод так называемых «стабильных жидкостей» (англ. Stable Fluids), который использовал полу-лагранжевый метод адвекции и неявные интеграции вязкости для обеспечения безусловно устойчивого поведения жидкости. Это позволило моделировать жидкости со значительно большим временным шагом и в общем привело к более быстрым программам. Позже, в 2001—2002 годах, этот метод был расширен Роном Федкивым вместе со своими сотрудниками, благодаря чему стало возможным обрабатывать сложную модель воды в трёхмерной сцене с использованием метода установленного уровня (англ. Level set method). #математика #физика #наука #gif #образование #разработка_игр #gamedev #math #physics

💡 Physics.Math.Code // @physics_lib
👍97🔥216❤‍🔥6🤯43🙈1🫡1
👨🏻‍💻 Подборка полезных книг по разработке приложений на Unity 👾

Unity
— межплатформенная среда разработки компьютерных игр, разработанная американской компанией Unity Technologies. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие. Выпуск Unity состоялся в 2005 году и с того времени идёт постоянное развитие.

Основными преимуществами Unity являются наличие визуальной среды разработки, межплатформенной поддержки и модульной системы компонентов. К недостаткам относят появление сложностей при работе с многокомпонентными схемами и затруднения при подключении внешних библиотек.

📗 Unity in Action, Third Edition [2022] Joseph Hocking

📘 Изучаем C# через разработку игр на Unity. 5-е изд [2022] Ферроне Х.

📘 Разработка игры в Unity. С нуля и до реализации [2021] Денисов

📙 Искусство создания сценариев в Unity [2016] Торн А.

📕 Head First C #, 4-е издание [2020] Эндрю Стеллман, Дженнифер Грин

📒 Unity в действии. Мультиплатформенная разработка на C# [2019] Хокинг Джозеф

📙 Arm Guide for Unity Developers Version 4.0 Optimizing Mobile Gaming Graphics [2017]

📓 Unity in Action. Multiplatform game development in C#, 2nd Edition [2018]

📗 Unity для разработчика. Мобильные мультиплатформенные игры - Джон Мэннинг, Пэрис Батфилд-Эддисон [2018, PDF]

На Unity написаны тысячи игр, приложений, визуализации математических моделей, которые охватывают множество платформ и жанров. При этом Unity используется как крупными разработчиками, так и независимыми студиями.

💡А есть ли среди наших подписчиков разработчики игр, которые используют Unity? Если да, то покажите ваши проекты в комментариях

#разработка_игр #gamedev #game_development #unity #c_sharp #подборка_книг

💡 Physics.Math.Code // @physics_lib
30👍15🔥6😍2🙈2🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
🟢 Насколько сложно было бы запрограммировать физику такого процесса (смотри видео) без использования библиотек?

▪️Физика (Фундаментальные знания):

1. Классическая механика:
▫️Динамика твердого тела.
▫️Законы сохранения: Импульса, энергии (хотя часть энергии при разрушении переходит в деформацию и тепло), момента импульса.
▫️Теория удара: Коэффициент восстановления (COR), расчет импульсов сил при соударении. Учет углов столкновения.

2. Механика разрушения:
▫️Напряжения и деформации: Понятия растяжения, сжатия, сдвига, кручения. Тензоры напряжений.
▫️Критерии разрушения: Теории максимальных главных напряжений, максимальных касательных напряжений (Треска), энергии формоизменения (фон Мизеса). Что заставляет материал "ломаться"?
▫️Хрупкое vs. Пластичное разрушение: Как ведет себя материал (стекло vs. металл)? Трещинообразование, распространение трещин.
▫️Фрагментация: Как тело распадается на части? Зависит от материала, скорости удара, точек концентрации напряжений.

▪️Математика и Вычислительные методы:

1. Линейная алгебра: Векторы (позиция, скорость, сила), матрицы (вращение, трансформации), операции над ними. Абсолютно необходима.
2. Численные методы:
▫️Интегрирование уравнений движения: Методы Эйлера, Верле, Рунге-Кутты (для расчета позиций/скоростей тел и осколков на каждом шаге времени).
▫️Методы дискретизации:
— Метод конечных элементов (FEM): Разбиение объекта на мелкие элементы (тетраэдры, гексаэдры), расчет напряжений/деформаций в них. Точный, но очень ресурсоемкий для разрушения.
— Метод дискретных элементов (DEM): Представление объекта как совокупности множества мелких жестких частиц/гранул, связанных "связями". При превышении напряжения связи рвутся. Более подходит для хрупкого разрушения. Наиболее перспективен для "программирования с нуля" внутри DCC.
— Mesh-Free методы (напр., SPH): Моделирование материала без явной сетки. Сложны в реализации.
▫️Обнаружение столкновений (Collision Detection): Алгоритмы AABB, OBB, сфер, GJK, EPA. Определение что столкнулось и где.
▫️Реакция на столкновение (Collision Response): Расчет импульсов сил, изменяющих скорости тел/осколков после обнаружения контакта. Учет трения.

▪️ 3D Графика и Анимация:
▪️ Программирование и Скриптинг
▪️ Процесс разработки в Cinema 4D / 3ds Max "с нуля" (графическими примитивами)

⚠️ Сложности и Альтернативы:
▫️Вычислительная сложность: Симуляция тысяч взаимодействующих осколков в реальном времени невозможна на обычных ПК. Расчеты будут долгими.
▫️Реализм физики: Движки DCC (Bullet/PhysX) хороши для базовой динамики, но моделирование реалистичного разрушения материала (образование трещин, пластическая деформация) на уровне FEM им недоступно "из коробки". Скрипт на связях дает упрощенный, но визуально приемлемый результат.
▫️Houdini: Это отраслевой стандарт для сложных разрушений. Его процедурная природа и мощные солверы (Bullet, FEM, Vellum) идеально подходят для задач разрушения "с нуля". Гораздо эффективнее, чем скриптинг в C4D/Max, но требует изучения самого Houdini.
▫️Готовые плагины: Плагины вроде RayFire (3ds Max), NitroBlast/Thrausi (Cinema 4D), PulldownIt (C4D/Max) реализуют сложные алгоритмы разрушения (включая Voronoi) и управления связями через удобный интерфейс. Сильно экономят время по сравнению с чистым скриптингом, но менее "с нуля".

Создать реалистичную анимацию столкновения с разрушением "с нуля" на графических примитивах в C4D или 3ds Max – очень амбициозная и сложная задача, требующая глубоких знаний в физике, математике, программировании и 3D. Ключевые этапы: скриптинг генерации осколков (Voronoi), создание и управление "слабыми связями" между ними, реалистичная настройка материалов (особенно отражений) и освещения, пост-обработка. Будьте готовы к долгому процессу обучения, отладки и рендеринга. Для профессиональных результатов часто используют Houdini или специализированные плагины. Начните с малого (разрушение простого куба) и постепенно усложняйте. #программирование #моделирование #физика #графика #3D #разработка #разработка_игр #gamedev #gamedevelopment

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
167👍39🔥22🌚5❤‍🔥2🤩2