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
Download Telegram
📙 Mathematics for Game Programming and Computer Graphics [2023] Penny de Byl

💾 Скачать книгу

Mathematics for Game Programming and Computer Graphics - это исчерпывающее руководство по “возвращению к основам” математики, использующее серию практических упражнений, основанных на решении проблем, для изучения идей, связанных с рисованием графических линий и фигур, применением векторов и вершин, построением и рендерингом сеток и работой с вершинными шейдерами. Используя Python, Pygame и PyOpenGL, вы сможете создать свой собственный математический движок и API, которые будут использоваться повсеместно для создания приложений.

#gamedev #game_development #python #геймдизайн #программирование
🔥38👍17❤‍🔥2
Mathematics_for_Game_Programming_and_Computer_Graphics_2023_Penny.pdf
34.1 MB
📙 Mathematics for Game Programming and Computer Graphics [2023] Penny de Byl

Mathematics is an essential skill when it comes to graphics and game development, particularly if you want to understand the generation of real-time computer graphics and the manipulation of objects and environments in a detailed way. Python, together with Pygame and PyOpenGL, provides you with the opportunity to explore these features under the hood, revealing how computers generate and manipulate 3D environments.

Mathematics for Game Programming and Computer Graphics is an exhaustive guide to getting “back to the basics” of mathematics, using a series of problem-based, practical exercises to explore ideas around drawing graphic lines and shapes, applying vectors and vertices, constructing and rendering meshes, and working with vertex shaders. By leveraging Python, Pygame, and PyOpenGL, you'll be able to create your own mathematics-based engine and API that will be used throughout to build applications.

By the end of this graphics focussed book, you'll have gained a thorough understanding of how essential mathematics is for creating, rendering, and manipulating 3D virtual environments and know the secrets behind today's top graphics and game engines. #математика #gamedev #разработка_игр #физика
🔥33👍232🤔2
📗 Программирование графики на С++. Теория и примеры [2023] Корнеев, Гагарина

💾 Скачать книгу

Для студентов, обучающихся по направлению подготовки 09.04.04 "Программная инженерия", и всех интересующихся программированием графики. #cpp #графика #2d #3d #gamedev #разработка_игр #программирование
👍44🔥152❤‍🔥2
📗 Рендеринг на основе законов физики [2024] Фарр М., Джейкоб В., Хамфрис Г.
📘 Physically Based Rendering, fourth edition: From Theory to Implementation [2023] Matt Pharr, Wenzel Jakob, Greg Humphreys


⚠️ Книги предоставляется вам для ознакомления и не для распространения

💳 Купить книгу

💾 Ознакомиться с книгами RU+EN

Издание будет полезно специалистам по компьютерной графике, анимации, инженерам САПР, разработчикам соответствующего ПО, а также студентам и преподавателям. #рендеринг #графика #2d #3d #gamedev #разработка_игр #программирование

👨🏻‍💻 Если кто захочет задонатить на кофе:
ЮMoney: 410012169999048
Карта ВТБ: 4272290768112195
Карта Сбербанк: 2202200638175206

💡 Physics.Math.Code
👍63🔥285😍42🤗1
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
91🔥61👍54🆒5👏3🌚2
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
162👍38🔥21🌚5❤‍🔥2🤩2