Как стать автором
Обновить
19
Карма
0
Рейтинг

Ориентатор объектов

Перенаправление функций в разделяемых ELF-библиотеках

Разработка веб-сайтов *
Все мы пользуемся динамически-компонуемыми билиотеками. Их возможности поистине великолепны. Во-первых, такая библиотека загружается в физическое адресное пространство только один раз для всех процессов. Во-вторых, можно расширять функционал своей программы, подгружая дополнительную библиотеку, которая и будет этот функционал обеспечивать. И все это без перезапуска самой программы. А еще решается проблема обновлений. Для динамически компонуемой библиотеки можно определить стандартный интерфейс и влиять на функционал и качество своей основной программы, просто меняя версию библиотеки. Такие методы повторного использования кода даже получили название «архитектура plug-in’ов». Но топик не об этом.

Кстати, нетерпеливые могут все скачать и попробовать прямо сейчас.

Осторожно, много текста!
Всего голосов 81: ↑75 и ↓6 +69
Просмотры 30K
Комментарии 30

Пишем простой Path Tracer на старом добром GLSL

Программирование *C++ *Работа с 3D-графикой *Разработка игр *
Туториал

На волне ажиотажа вокруг новых карточек от Nvidia с поддержкой RTX, я, сканируя хабр в поисках интересных статей, с удивлением обнаружил, что такая тема, как трассировка путей, здесь практически не освящена. "Так дело не пойдет" - сказал я и решил, что неплохо бы запилить что-нибудь небольшое из этой темы, да и так, чтобы другим полезно было. Тут как кстати API собственного движка нужно было протестировать, поэтому решил - запилю-ка я свой простенький path-tracer прямо во фрагментном шейдере. Что из этого вышло, думаю вы уже догадались по превью к этой статье

Читать далее
Всего голосов 70: ↑70 и ↓0 +70
Просмотры 13K
Комментарии 10

Это просто бомба-2. Li-Ion — как не взлететь

Производство и разработка электроники *Энергия и элементы питания Электроника для начинающих

За последний десяток лет литий-ионные аккумуляторы из дорогостоящей экзотики перешли в разряд самых распространенных источников автономного питания. Неудивительно, что они стали популярными и в руках самодельщиков, в том числе и начинающих. Иногда от технических решений в их творениях волосы становятся дыбом – ведь особенностью аккумуляторов данного типа является их повышенная опасность, в первую очередь – пожарная. Мой рассказ о том, как правильно «готовить» эту «рыбу фугу», чтобы никто не сгорел и не взорвался.

Читать далее
Всего голосов 66: ↑66 и ↓0 +66
Просмотры 65K
Комментарии 73

Процедурная генерация деревьев методом транспорта питательных веществ

Работа с 3D-графикой *Разработка игр *
Перевод

Примечание: код для этой статьи выложен на мой Github [здесь].

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

Когда любая ветвь дерева разделяется, сумма площадей поперечного сечения сохраняется.

Это наблюдение уже было сделано да Винчи. Я решил воспользоваться этим наблюдением, соединить его с транспортно-ориентированной интерпретацией естественного роста деревьев, создать простую модель и нагенерировать в ней деревьев.

В данной статье будет описана эта модель и способ её использования для генерации реалистично выглядящих деревьев с разной морфологией.

При помощи этой методики можно генерировать высококачественные меши деревьев на разных этапах роста в реальном времени и с незначительной тратой вычислительных ресурсов!
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 9.6K
Комментарии 7

Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса

Блог компании Яндекс Высокая производительность *C++ *Серверная оптимизация *Процессоры
Что влияет на скорость работы программ на C++ и как её добиться при высоком уровне кода? Ведущий разработчик библиотеки CatBoost Евгений Петров ответил на эти вопросы на примерах и иллюстрациях из опыта работы над CatBoost для x86_64.

Видео доклада

— Всем привет. Я занимаюсь оптимизацией для CPU библиотеки машинного обучения CatBoost. Основная часть нашей библиотеки написана на C++. Сегодня расскажу, какими простыми способами мы добиваемся скорости.


Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Просмотры 20K
Комментарии 16

Vulkan-tutorial. Урок 1.1 — Вступление

Программирование *C++ *Работа с 3D-графикой *Разработка игр *CGI (графика) *
Туториал
Перевод

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


Автор оригинала дал свое согласие на перевод. Также, когда я доперевожу все статьи и у меня будет время отформатировать их для github, он добавит русский перевод на свой сайт.

Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 33K
Комментарии 50

Как создается аниме

Работа с 3D-графикой *
Многие из хабровчан, да и вообще айтишников, смотрят аниме. Еще больше видело его хотя бы краем глаза. Но как его создают?

Начинается все с идеи. Бывает, что устраивается мозговой штурм, где из целой кучи выбирают только одну, но зато лучшую. Бывает, решает все руководство. Но так или иначе, это самый первый и самый скучный этап. После выбора идеи решается состав команды, которая будет заниматься ее реализацией, ищутся спонсоры. Аниме на самом деле довольно дорогая вещь — стоимость показа 52 серий поздней ночью на 5-7 каналах телевидения приближается к 50 миллионам йен (около 21 миллионов рублей), а показ аниме Fullmetal Alchemist в 6 часов вечера стоил в 10 раз дороже!
Читать дальше →
Всего голосов 410: ↑373 и ↓37 +336
Просмотры 204K
Комментарии 223

Microsoft понадобилось 10 дней, чтобы удалить исходники Windows XP с принадлежащего им GitHub

Блог компании ITSumma Информационная безопасность *Open source *GitHub *Законодательство в IT

В исходниках Windows XP нашли секретную тему в стиле Mac

В сентябре вся индустрия всполошилась после новости об утечке исходных кодов Windows XP и Windows Server 2003. Новость оказалась не фейком. Исходные коды настоящие, и из них скомпилировали рабочие версии обеих ОС.

Напомним, что всё началось 24 сентября: на портале 4chan неизвестные выложили торрент на 42,9 ГБ с полными исходниками Windows XP и Windows Server 2003. Хотя сегодня под XP работает меньше 1% компьютеров в мире, а разработчик не обеспечивает никакой поддержки, утечка исходников всё равно вызвала лёгкую эйфорию среди программистов. Ведь мы много лет гадали, как реализованы те или иные функции или API, а теперь можно посмотреть на код своими глазами.

Так или иначе, Microsoft мгновенно начала войну. Уже на следующий день исходники стали удалять везде, где только можно.
Читать дальше →
Всего голосов 49: ↑47 и ↓2 +45
Просмотры 50K
Комментарии 91

Реализация маневрирования юнитов в играх (избегание столкновений)

Разработка игр *Алгоритмы *
Задача движения юнитов в играх является одной из ключевых задач, стоящих перед разработчиками игр. От того, как двигаются игровые юниты, во многом зависит восприятие всего геймплея в целом.

Традиционно считается, что достаточно реализовать алгоритм поиска пути и дальше всё будет работать само собой.

На практике же мы имеем совсем другую ситуацию.

Алгоритмы поиска пути разобраны досконально.

Нужен поиск пути с весами? A*. Нужен поиск для большого количества юнитов? Flow Field или кластеризация.

По большому счету по поиску пути не осталось не разобранных вопросов.

И вот, поиск пути реализован и довольный игродел запускает свою игру… И видит, что болванчики полностью оправдывают своё название. Они конечно находят путь и едут туда, куда им сказали. Но при этом спотыкаются о препятствия… Толкаются друг с другом или проезжают насквозь… Упираются друг в друга при встречном движении…

Эти проблемы и будем сегодня решать.



Disclaimer
Данная статья не претендует на исчерпывающее решение обозначенной проблемы.
Я лишь рассказываю о том, как конкретно мне видится решение, над которым я работал. Это решение в оттюнингованном виде попало в один из зарелизенных в этом году РТС проектов, но осталось ли там на данный момент я не знаю. Комментарии и дополнения приветствуются.
Всего голосов 49: ↑49 и ↓0 +49
Просмотры 14K
Комментарии 55

Как нарисовать звезду (и не только) в полярных координатах

Алгоритмы *Математика *Графический дизайн *
Вопрос о формуле для многоугольника в полярных координатах регулярно возникает на тематических ресурсах — и так же регулярно остаётся без внятного ответа. В лучшем случае попадается решение через функцию остатка от деления — что не является «чистым» с математической точки зрения, поскольку не позволяет производить над функцией аналитические преобразования. Видимо, настоящие математики слишком заняты решением проблем тысячелетия и поисками простого доказательства теоремы Ферма, чтобы обращать внимание на подобные банальные задачи. К счастью, в этом вопросе воображение важнее знания, и для решения этой задачи не нужно быть профессором топологических наук — достаточно знания школьного уровня.
Дальше больше картинок
Всего голосов 152: ↑150 и ↓2 +148
Просмотры 25K
Комментарии 31

Основы компьютерной геометрии. Написание простого 3D-рендера

.NET *Работа с 3D-графикой *Разработка игр *
Из песочницы
Привет меня зовут Давид, а вот я собственной персоной отрендеренный своим самописным рендером:

image

К сожалению я не смог найти более качественную бесплатную модель, но все равно выражаю благодарность заморскому скульптору запечатлевшему меня в цифре! И как вы уже догадались, речь пойдет о написании CPU — рендера.
Читать дальше →
Всего голосов 45: ↑44 и ↓1 +43
Просмотры 37K
Комментарии 21

Вставка реальных объектов в Unity с помощью Meshroom

Работа с 3D-графикой *Разработка игр *Unity *
Туториал
Перевод
image

Из этой статьи вы узнаете, как использовать фотограмметрию для фотосканирования и вставки объектов реального мира в проекты Unity при помощи Meshroom.

В контексте 3d-моделей фотограмметрия — это процесс создания 3D-моделей из отсканированных объектов.

Вам нужны реалистичные 3D-модели для идеи игры, но у вас ограничен бюджет? Хотите создать сверхреалистичное игровое окружение? Если да, то продолжайте чтение!

Используя фотограмметрию, мы берём входящие данные, то есть фотографии, и пропускаем их через конвейер или набор обрабатывающих их методов. Данные из этих процессов или выходной информации участвуют в создании готовой 3D-модели.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 10K
Комментарии 2

Как я забросил игру спустя четыре года разработки

Блог компании Playgendary Разработка игр *Управление разработкой *Дизайн игр *Игры и игровые консоли
Перевод


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

Под катом ожидания, реальность и выгорание инди-разработки. А в конце — ссылка на демо, можно прочувствовать, как близко автор был к успеху.
Всего голосов 122: ↑121 и ↓1 +120
Просмотры 63K
Комментарии 104

std::atomic. Модель памяти C++ в примерах

Программирование *C++ *

Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особенно это касается модели памяти C++, которая была создана сложной таковой, чтобы обеспечивать оптимальный многопоточный код под множество архитектур процессоров. Кстати, язык программирования Rust, будучи построенным на LLVM, использует модель памяти такую же, как в C++. Поэтому материал в этой статье будет полезен программистам на обоих языках. Но все примеры будут на языке C++. Я буду рассказывать про std::atomic, std::memory_order и на каких трех слонах стоят атомики.

Читать далее
Всего голосов 52: ↑52 и ↓0 +52
Просмотры 77K
Комментарии 39

Фишеры icloud и где они обитают

Информационная безопасность *Гаджеты Смартфоны
🔥 Технотекст 2020
Внимание! Несмотря на то, что для работы над этой статьей я потратил не один десяток часов, но ты все еще можешь в ней поучаствовать.

Если у тебя чешутся руки — попробуй осилить этот текст.

История больше похожа на комикс, так как содержит более 50 изображений, поэтому аккуратнее, если ты с мобильного. А ещё — тут скорее всего нарушается 152-ФЗ, поэтому я не удивлюсь, если её удалят, так что читай быстрее. Эта история пока не имеет конца, но у нее есть начало…
Читать дальше →
Всего голосов 263: ↑262 и ↓1 +261
Просмотры 58K
Комментарии 78

Как исследование блокчейна Namecoin позволило предсказывать кибератаки группировки RTM

Блог компании Positive Technologies Информационная безопасность *


Блокчейн Namecoin был создан как защищенная от цензуры и принудительного изъятия доменов альтернатива традиционным регистраторам DNS. В последние несколько лет его начали использовать операторы таких ботнетов, как Dimnie, Shifu, RTM и Gandcrab, для управления адресами C&C-серверов.

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

В этой работе представлен подход, использованный для картографирования активов ботнета в Namecoin и дальнейшего их отслеживания для извлечения новых IOC. С помощью описанного подхода были собраны перечни активов (см. приложение), использованных упомянутыми выше ботнетами.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 4.3K
Комментарии 3

Шейдеры 3D-игр для начинающих

Работа с 3D-графикой *Разработка игр *Дизайн игр *
Перевод
image

Хотите научиться добавлять в свою 3D-игру текстуры, освещение, тени, карты нормалей, светящиеся объекты, ambient occlusion и другие эффекты? Отлично! В этой статье представлен набор техник затенения, способных поднять уровень графики вашей игры на новые высоты. Я объясняю каждую технику таким образом, чтобы вы могли применить/портировать эту информацию в любом стеке инструментов, будь то Godot, Unity или что-то иное.

В качестве «клея» между шейдерами я решил использовать великолепный игровой движок Panda3D и OpenGL Shading Language (GLSL). Если вы пользуетесь таким же стеком, то получите дополнительное преимущество — узнаете, как использовать техники затенения конкретно в Panda3D и OpenGL.
Читать дальше →
Всего голосов 46: ↑46 и ↓0 +46
Просмотры 22K
Комментарии 6

В этой статье слишком много воды

Работа с 3D-графикой *Разработка игр *Алгоритмы *Unity *
«Мы начинаем разработку новой игры, и нам нужна классная вода. Такую сможешь?»


, — cпросили меня. «Да не вопрос! Конечно, смогу», — ответил я, но голос предательски задрожал. «А, еще и на Unity?», — и мне стало понятно, что впереди очень много работы.
Читать дальше →
Всего голосов 175: ↑174 и ↓1 +173
Просмотры 39K
Комментарии 36

Изготовление печатных плат ЛУТ'ом от А до Я

Производство и разработка электроники *DIY или Сделай сам
Из песочницы
Доброго времени суток! Среди моих знакомых бытует мнение, что самостоятельно изготавливать печатные платы (ПП) бесполезно. Учитывая, что современные компоненты далеко ушли от DIP корпусов, то кустарно травить платы под них даже и не стоит пытаться. Тем не менее необходимость в быстрой оценке того или иного компонента всегда есть, и ждать несколько суток заказанной платы времени нет. И это учитывая, что заказ за «несколько суток» дорог, для одноразовой задачи.

В данной статье я хочу изложить порядок действий, которые позволят быстро изготавливать ПП под компоненты в корпусах подобных TQFP-100, то есть с ногами 0,2мм и таким же зазором, и при этом сводить брак к минимуму.

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

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

Под катом подробности и трафик.
Подробности
Всего голосов 88: ↑86 и ↓2 +84
Просмотры 95K
Комментарии 86

Реконструкция Midi из видео роликов Synthesia (и ей подобным)

Программирование *Звук
Из песочницы

Как то раз сидя в ютубе ведя поиск интересных обучающих мелодий наткнулся на ролики с Synthesia, часть из которых мне очень понравилась, решил скачаю да и поучусь… =) Но увы как оказалось ролики есть, а вот midi файлы никто не горел желанием выкладывать =(


Засев за гугл решил посмотреть может есть готовые решения которые бы меня устроили, но увы из того что нашёл были только аудио конвертеры в midi, что меня слегка расстроило… Недолго думая решил что для восстановления MIDI частоты кадров в видео роликах будет достаточно..., и Я решил попробовать реализовать это дело....

Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 6.6K
Комментарии 20
1

Информация

В рейтинге
Не участвует
Откуда
Ступино, Москва и Московская обл., Россия
Зарегистрирован
Активность