Как стать автором
Обновить
14
0
Вячеслав @Slavik_Kenny

3Д моделлер

Отправить сообщение

Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса на чистом Python с GPU-ускорением

Время на прочтение9 мин
Количество просмотров18K

Добрый день, уважаемые хабровчане.

Примерно год назад я начал проект симулятора динамики частиц на Python, используя библиотеку Numba для проведения параллельных расчетов на видеокарте. Сейчас, добравшись до определенной вехи в его развитии, я решил открыть исходный код и выложить его на GitHub для всех, кому интересны подобного рода эксперименты.

Самостоятельно потыркать проект можно вот тут: https://github.com/r-aristov/simba-ps

В этой статье я кратко опишу суть проекта, пройдусь по прилагающимся к нему примерам и расскажу почему вообще начал работу над ним.

В глубины симуляции
Всего голосов 137: ↑137 и ↓0+137
Комментарии78

Вы неправильно пишете животных

Время на прочтение5 мин
Количество просмотров358K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Всего голосов 442: ↑438 и ↓4+434
Комментарии351

C#, способы хранения настроек программы

Время на прочтение5 мин
Количество просмотров152K

Введение


В интернете приведено очень много способов хранения настроек программы, но все они как-то разбросаны, поэтому я решил их собрать вместе и расписать, как этим пользоваться.

C# и app.config


На хабре уже была посвящена этому тема, поэтому… перейти

C# и Properties.Settings


Информация о Properties.Settings

Организация Properties.Settings — это обычный xml файл, который можно найти в папке пользователя:

С:\ Users \ [user name] \ AppData \ Local \ [ (Project Name) or (AssemblyCompany) ] \ [name project_cashBuild] \ [AssemblyVersion] \ user.config

Для начала нам нужно создать такие переменные для Properties.Settings. Перейдем в Properties -> Settings.settings:
Читать дальше →
Всего голосов 26: ↑10 и ↓16-6
Комментарии22

Git для новичков (часть 2)

Время на прочтение4 мин
Количество просмотров129K

В прошлой статье, я рассказал, что такое Git, как его установить и выложить свой код на GitHub. Сегодня мы поговорим про работу в команде над одним проектом. И как это устроено в Git.

В данной статье, вся работа с Git будет через командную строку.

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии8

Git для новичков (часть 1)

Время на прочтение5 мин
Количество просмотров574K

Git - это консольная утилита, для отслеживания и ведения истории изменения файлов, в вашем проекте. Чаще всего его используют для кода, но можно и для других файлов. Например, для картинок - полезно для дизайнеров.

С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.

Читать далее
Всего голосов 18: ↑11 и ↓7+4
Комментарии10

Введение в Git

Время на прочтение17 мин
Количество просмотров148K

Оглавление


Предисловие
1. Настройка git
....1.1 Конфигурационные файлы
....1.2 Настройки по умолчанию
....1.3 Псевдонимы (aliases)
2. Основы git
....2.1 Создание репозитория
....2.2 Состояние файлов
....2.3 Работа с индексом
....2.4 Работа с коммитами
....2.5 Просмотр истории
....2.6 Работа с удалённым репозиторием
3. Ветвление в git
....3.1 Базовые операций
....3.2 Слияние веток
....3.3 Rerere
4. Указатели в git
....4.1 Перемещение указателей
5. Рекомендуемая литература

Предисловие


Git — самая популярная распределённая система контроля версиями.[1][2]

Основное предназначение Git – это сохранение снимков последовательно улучшающихся состояний вашего проекта (Pro git, 2019).
Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии27

learnopengl. Урок 1.2 — Создание окна

Время на прочтение8 мин
Количество просмотров149K
В прошлом уроке мы разобрались с тем, что такое OpenGL. В этом уроке мы поговорим о причине необходимости использования GLFW, GLEW и CMake, а также рассмотрим как их использовать. А также освежим в памяти, разницу между статической и динамической линковкой.

Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии17

Что если в играх использовать видеокарточку для физики, а не для графики

Время на прочтение5 мин
Количество просмотров79K
Хочу рассказать сообществу о проведённом мной эксперименте.

Мне всегда нравились игры, в которых есть физика. То есть, некоторые процессы не управляются скриптами, а эволюционируют во времени, следуя физическим законам. Из этого проистекают сложность и непредсказуемость игрового процесса.

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

Или те же гоночки: до чего приятней на полной скорости сшибать людей, рекламные щиты и помойки, чтобы разлетались во все стороны, вместо того, чтобы мгновенно останавливаться, врезаясь в мёртво врощенный в землю столб.

Или ещё замечательный пример — Kerbal Space Program. Там физика уже является непосредственым источником геймплея.

Или, например, жанр 2д артиллерии. Часть его очарования базируется на уничтожаемой, динамичной земле. Но до чего он был бы лучше, если б земля не просто линейно осыпалась, а вела себя реалистично, разлетаясь от взрывов кусками.

Я давно мечтал сделать именно такой, до предела физически реалистичный римейк Scorched Earth. Но все мои эксперименты с моделированием физических систем упирались в неумолимо медленные процессоры. Тысяча-две частиц были пределом для real-time симуляции.

Но недавнее моё «открытие» изменило ситуацию.
Всего голосов 157: ↑146 и ↓11+135
Комментарии217

RenderDoc — графический отладчик для DirectX11 от Crytek

Время на прочтение6 мин
Количество просмотров31K
Как вы, возможно, знаете в мире Windows для рисования графики часто используется DirectX. В последних версиях (10, 11.x) библиотека серьёзно шагнула вперёд и именно на них построены движки многих современных игр. Кроме того, DirectX используется не только в играх — сам интерфейс ОС Windows тоже с непомню-какой версии (Vista?) рисуется через него, да и казалось-бы не сильно связанные с графикой программы, желая увеличить производительность и плавность зума\скрола переходят на последние версии DirectX. Так некоторое время назад на DirectX11 перешел рендер Google Chrome (вроде бы с версии 36).

Когда-то во времена Windows 95 и Pentium II была такая шутка, что чем медленнее компьютер — тем лучше можно понять работу операционной системы — невооруженным глазом видно в каком порядке прорисовываются элементы окон, обрабатываются события. Сегодня для подобных целей относительно DirectX есть отдельные инструменты — графические отладчики, позволяющие понять, как именно рисуется каждый пиксель каждого кадра, какие операции выполняет движок DirectX, какие ресурсы он использует, насколько быстро и правильно всё работает. Один из таких инструментов — RenderDoc от компании Crytek мы сегодня и рассмотрим. А в качестве примера разберём уже упомянутый выше новый рендер Google Chrome.



Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии21

Красота рендеринга игровых кадров: Краткий обзор инструментов + Интересное видео

Время на прочтение5 мин
Количество просмотров19K
Пытливость ума и желание знать как все работает изнутри выделяет технаря из массы пользователей. В этом небольшом посте я бы хотел поделиться с любознательным сообществом небольшими роликами и кратким рецептом использования профилирующего софта для 3D приложений.


Кому любопытно, прошу пройти
Всего голосов 24: ↑24 и ↓0+24
Комментарии22

Первый опенсорс порошковый 3D принтер

Время на прочтение1 мин
Количество просмотров35K

Вот и появился в опенсорс первый порошковый принтер. Разработан в университете г. Твенте (Нидерланды). Принтер может печатать порошком со связующим и с минимальными переделками — спекать порошок.
Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии42

Обзор функции генерации поддержек в Autodesk Meshmixer

Время на прочтение2 мин
Количество просмотров5.1K
Давно слышал про генерацию поддержек в meshmixer, и наконец, дошли руки попробовать его возможности для FDM печати. Понимаю, что этот вопрос хорошо изучен, но вдруг кому-то будет полезен маленький урок. Давайте идти шаг за шагом.
Загружаем meshmixer. Нажимаем на кнопку import.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии6

3D-сканер за $30

Время на прочтение9 мин
Количество просмотров207K
Профессиональный 3D-сканер, с помощью которого можно оцифровать реальный объект, получив его компьютерную модель, стоит десятки тысяч долларов. Мы же сможем провернуть то же самое с помощью специальной программы, лазерной указки и веб-камеры. Всего долларов за тридцать.


Читать дальше →
Всего голосов 149: ↑142 и ↓7+135
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Красноярский край, Россия
Зарегистрирован
Активность