Pull to refresh
21
0
Den Ivanov @cleoag

User

Send message

Фрактальное пламя — алгоритм построения

Reading time 4 min
Views 25K


Фрактальное пламя (или фрактальные искры, англ. fractal flame) – алгоритм, предложенный Скоттом Дрейвсом (Scott Draves) и использующий для построения изображений системы итерируемых функций (СИФ). Благодаря разным значениям seed для генератора псевдослучайных чисел можно получить множество разнообразных «картин». Хотя фрактальность в них просматривается далеко не всегда, результаты получаются очень интересными.

Под катом – краткое описание основных моментов реализации алгоритма.
Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 16

MediaCodec или понимаем как хотим

Reading time 6 min
Views 27K
С выходом Android 4.3 (API 18), Google привнесла долгожданный компонент под названием MediaCodec. Класс был открыт публике с выходом API 16, но для нормального использования и поддержки в Android системе требуется минимальный уровень API 18.

Материал рассчитан на опытного Android разработчика. Я попробую объяснить и показать примеры кодирования видео на лету с использованием Surface как входа и выхода потока данных. Если интересно, прошу под кат.
Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 5

Секреты экспорта из Blender в Unity

Reading time 5 min
Views 131K

— Теория о системе координат (правосторонней и левосторонней)
— Теория правильного создания 3d моделей в blender
— Быстрый экспорт файлов из Blender в Unity3d.
— Как правильно сопоставить масштабы модели в Blender и Unity.
— Экспорт с правильной ориентацией модели
— Почему количество вершин по-разному отображается в Unity и Blender?

Скрипты для автоматического экспорта из Blender в Unity3d (Ссылку предоставил пользователь darkfrei )
Читать дальше →
Total votes 24: ↑19 and ↓5 +14
Comments 25

Параллельное программирование с CUDA. Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram)

Reading time 8 min
Views 27K

Содержание


Часть 1: Введение.
Часть 2: Аппаратное обеспечение GPU и шаблоны параллельной коммуникации.
Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram).
Часть 4: Фундаментальные алгоритмы GPU: уплотнение (compact), сегментированное сканирование (segmented scan), сортировка. Практическое применение некоторых алгоритмов.
Часть 5: Оптимизация GPU программ.
Часть 6: Примеры параллелизации последовательных алгоритмов.
Часть 7: Дополнительные темы параллельного программирования, динамический параллелизм.

Disclaimer
Эта часть в основном теоретическая, и скорее всего не понадобится вам на практике — все эти алгоритмы уже давно реализованы в множестве библиотек.

Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 2

Как мы внедряли INDE в наше Android приложение

Reading time 7 min
Views 6.4K

Применение готовых библиотек в приложениях освобождает программистов от непроизводительного труда по изобретению велосипедов, сокращает время выхода приложения на рынок и благотворно сказывается на его функциональности. Все эти тезисы мы можем проиллюстрировать на своем собственном примере. В этой статье мы опишем процесс внедрения библиотеки Intel INDE (Integrated Native Developer Experience) для работы с видео в Android в наше существующее приложение Together Video Camera, приведем примеры реализации функционала в соответствии с конкретными нуждами приложения и опишем сложности разработки до и после INDE.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 1

Трансляция видео с мобильного устройства на YouTube

Reading time 3 min
Views 35K
image Продолжая серию статей о возможностях Intel® INDE Media Pack, в этот раз я расскажу о том, как с помощью нашей библиотеки вы сможете добавить в приложение возможность живой трансляции видео с камеры мобильного устройства на сервис YouTube. Речь пойдет не о коде, но о том, как правильно сконфигурировать все необходимые компоненты. Требуемый же код вы сможете найти в примерах, поставляемых с Intel INDE Media Pack.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Comments 6

Захват видео в Unity3d с помощью Intel INDE Media Pack для Android

Reading time 17 min
Views 11K
imageВ одном из комментариев к статье про захват видео в OpenGL приложениях была упомянута возможность захвата видео в приложениях созданных с помощью Unity3d. Нас заинтересовала эта тема, на самом деле — почему только «чистые» OpenGL приложения, если многие разработчики используют для создания игр различные библиотеки и фреймворки? Сегодня мы рады представить готовое решение – захват видео в приложениях написанных с использованием Unity3d под Android.

Бонус!

По мотивам этой статьи вы не только научитесь встраивать захват видео в Unity3d, но и создавать Unity плагины под Android.

Далее будут рассмотрены два варианта реализации захвата видео в Unity3d:

1. Полноэкранный пост эффект. Способ будет работать только в Pro версии, при этом в видео не будет захватываться Unity GUI

2. С помощью кадрового буфера (FrameBuffer). Будет работать для всех версий Unity3d, включая платную и бесплатную, объекты Unity GUI будут так же записываться в видео.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 4

Ночь фракталов

Reading time 4 min
Views 54K
Шёл уже последний час этого воскресенья, я уже думал идти спать, но добрый sourcerer прислал мне картинку с моего заброшенного сайта, которую можно увидеть ниже, и текст «красиво!». Эти картинки я рисовал лет пять назад, с помощью т. н. алгоритма времени убегания, но для применимости данного алгоритма, нужно уметь для заданного набора преобразований разбивать плоскость на регионы, тогда я не придумал, как это сделать, и больше к этому алгоритму не возвращался. Но сейчас я сразу сообразил, что делать, и написал Диме: «Сначала Random IFS, потом kNN, а затем Escape-Time Algorithm!»



Под рукой у меня был только старый нетбук, который мне дали друзья на время, пока мой ноутбук в ремонте. Дима мне ещё что-то говорил, я ему что-то отвечал, но у меня уже в голове писался код, и я искал на нетбуке хоть какой-нибудь компилятор или интерпретатор и нашёл C++ Builder 6! После этого я понял, что утро я встречу наедине с борландовским компилятором. Через пять часов я отправил Диме новых картинок, но он, как нормальный человек, давно спал…



Читать дальше →
Total votes 85: ↑85 and ↓0 +85
Comments 3

Рисуем картинки с помощью кривой Гильберта

Reading time 5 min
Views 45K
В субботу на прошлой неделе «дело было вечером, делать было нечего», и мы с хабраюзером sourcerer разговаривали не понятно о чём. И почему-то речь зашла речь о задаче обратной к задаче построения графика функции по её выражению. То есть, например, у нас есть выражение y(x) = (cos0,5x ⋅ cos 200x + |x|0,5 − 0,7)(4 − x2)0,01. График такой функции чем-то напоминает сердечко. Но нам был интересен обратный вопрос, как, имея, например, изображение сердечка, получить выражение для функции, графиком которой будет это самое сердечко.

Какие-нибудь ряды Фурье вспоминать не хотелось, а хотелось чего-то простого и красивого. Мы начали вспоминать известные нам результаты, связанные с этим вопросом. В результате получилась программка, которая по изображению генерирует ломаную линию, чем-то напоминающую исходное изображение. На примере котёнка по имени Гав это выглядит примерно так (смотреть лучше издалека):



Если интересно как такое сделать, а также узнать про формулу конопли, формулу, график которой является этой же формулой, то добро пожаловать под хабракат. (Будет много картинок.)

Читать дальше →
Total votes 230: ↑229 and ↓1 +228
Comments 43

Кош на комплексной плоскости

Reading time 6 min
Views 65K
В какой-то из весенних дней этого года я ехал в троллейбусе и листал комикс о Коше. В одном из выпусков была такая фраза «НО! Её можно понять, она же фракталами в горизонт перетекает, я бы тоже замешкался...». После этого я посмотрел в окно и понял, что если мы возьмём два подходящих дробно-линейных преобразования комплексной плоскости a(z) и b(z), и рассмотрим систему итерированных функций для a(z), b(z), a−1(z), b−1(z), взяв в качестве начального множества картинку с Кошем, то Кош будет перетекать фракталами в горизонт!

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

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



Читать дальше →
Total votes 214: ↑206 and ↓8 +198
Comments 26

Параллельное программирование с CUDA. Часть 1: Введение

Reading time 11 min
Views 126K

Еще одна статья о CUDA — зачем?


На Хабре было уже немало хороших статей по CUDA — раз, два и другие. Однако, поиск комбинации «CUDA scan» выдал всего 2 статьи никак не связанные с, собственно, алгоритмом scan на GPU — а это один из самых базовых алгоритмов. Поэтому, вдохновившись только что просмотренным курсом на Udacity — Intro to Parallel Programming, я и решился написать более полную серию статей о CUDA. Сразу скажу, что серия будет основываться именно на этом курсе, и если у вас есть время — намного полезнее будет пройти его.
Читать дальше →
Total votes 29: ↑26 and ↓3 +23
Comments 36

Подготовка к сертификационному экзамену Microsoft 70-483 «Programming in C#»

Reading time 13 min
Views 103K

Во время подготовки к экзамену номер 70-483 нашел множество разрозненных сайтов с различными ссылками на мануалы, которые мне немного помогли. Но, что помогло мне больше, так это то, что я составил для себя памятку на нескольких страницах, выдержками из которой и хочу поделиться.
Целью не является подробное описание C#, целью является освежить в памяти и заострить внимание на некоторых необходимых темах. Если какие-то темы вам незнакомы, то это значит, что у вас есть пробелы, которые необходимо устранить.
Раскрывать вопросы тестирования я не могу (да и не помню я уже их), но, если многие из перечисленных ниже нюансов, трюков и тонкостей, помогут вам, то вы на меня не обижайтесь (написано с иронией).
Читать дальше →
Total votes 50: ↑39 and ↓11 +28
Comments 17

SSLR: Screen Space Local Reflections в AAA-играх

Reading time 6 min
Views 80K
image

Привет, друг! В этот раз я опять подниму вопрос о графике в ААА-играх. Я уже разобрал методику HDRR (не путать с HDRI) тут и чуть-чуть поговорил о коррекции цвета. Сегодня я расскажу, что такое SSLR (так же известная как SSPR, SSR): Screen Space Local Reflections. Кому интересно — под кат.
Читать дальше →
Total votes 62: ↑60 and ↓2 +58
Comments 48

Удивительный Марс

Reading time 5 min
Views 165K
По своим краснопланетарным интересам я часто нахожу необычные снимки Марса или иллюстрированные научные факты про него. Некоторые из них так потрясающи, что хочется выбежать на улицу и показывать их всем прохожим, настолько они выбиваются из стереотипа Марса как скучного «рыжего безжизненного глобуса». Но на улице меня не поймут, а здесь, надеюсь, оценят по достоинству удивительную информацию о нашем соседе по Солнечной системе.
image
Читать дальше →
Total votes 284: ↑278 and ↓6 +272
Comments 126

Распознавание маркера дополненной реальности

Reading time 5 min
Views 50K

О дополненной реальности(Augumented reality, AR) написано много статей. На хабре есть целый раздел посвящённый этому направлению. Если коротко, то существуют два принципиальных подхода для создания дополненной реальности: с использованием заранее приготовленного маркера(ещё), который нужно распечатывать и без такого. Оба подхода используя алгоритмы “компьютерного зрения” распознают объекты в кадре и дополняют их.
Данная статья посвящена алгоритмам распознавания при создании дополнительной реальности с заранее приготовленным маркером.
Читать дальше →
Total votes 89: ↑84 and ↓5 +79
Comments 37

Kinect виртуальная примерочная для Topshop

Reading time 1 min
Views 7.8K
AR Door разработала примерочную для Topshop для показа новой коллекции платьев Dress up.

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

Для работы программы не требуются дополнительные маркеры: камера, встроенная в Kinect, распознает тело человека и накладывает поверх него трехмерные модели платьев.


Читать дальше →
Total votes 64: ↑61 and ↓3 +58
Comments 52

Ускорение загрузки Windows for fun and profit

Reading time 4 min
Views 802K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 532: ↑516 and ↓16 +500
Comments 365

Как получать доход с Google Play на расчётный счёт ООО

Reading time 3 min
Views 55K
Эта статья будет интересна российским компаниям, которые продают приложения через Google Play. У меня такая компания, и на своём опыте расскажу, как мы настроили денежные потоки с GP, чтобы они были легальными. Если вы не белые и не пушистые, т.е. считаете, что налоги можно не платить, то смело закрывайте эту статью.

Проблема:
Доходы с Google Play – такие же доходы, с них нужно платить налоги. Не все разработчики знают, как настроить получение доходов так, чтобы удовлетворять требованиям НК РФ.

Решение:
Получать доход на ИП либо на ООО и официально платить подоходный.
Если интересно про ИП читайте здесь и здесь.
В этой статье про получение доходов на счёт ООО.

Исходные данные
У вас есть аккаунт разработчика на Google Play – как его создать, читайте здесь
У вас есть приложение, которое генерирует доход – как его создать, одним линком не отделаешься.
У вас есть ООО.

Настройка
Google Play ведёт расчёты в USD, поэтому вам понадобится валютный расчётный счёт. Открыть валютный счёт можно в любом нормальном банке. Позвоните туда, Вам объяснят процедуру. Открыть счёт обойдётся в 2-3 т.р.
Когда Вам откроют валютный счёт, Вы получите реквизиты счёта. Вам понадобятся:
1. Название банка по-английски
2. БИК
3. Номер открытого счёта
4. BIC банка (или ещё его называют SWIFT)
Читать дальше →
Total votes 34: ↑32 and ↓2 +30
Comments 15

Signed Distance Field или как сделать из растра вектор

Reading time 12 min
Views 59K
Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.



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

Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:

convert in.png -filter Jinc -resize 400% -threshold 30% \( +clone -negate -morphology Distance Euclidean -level 50%,-50% \) -morphology Distance Euclidean -compose Plus -composite -level 45%,55% -resize 25% out.png

На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
Читать дальше →
Total votes 115: ↑113 and ↓2 +111
Comments 61

UNET — новая сетевая технология в Unity 3D

Reading time 15 min
Views 50K
Некоторое время назад, на конференции Unite Asia, мы сообщили о разработке новых мультиплейерных инструментов, технологий и служб для разработчиков Unity. Внутреннее название этого проекта — UNET, что означает просто Unity Networking. Но наши планы простираются далеко за пределы простой работы с сетью. Как вы все знаете, основной целью Unity является демократизация процесса разработки игр. Команда Unity Networking хочет демократизировать разработку многопользовательских игр. Мы хотим, что бы все разработчики игр могли разрабатывать многопользовательские игры любого типа с любым количеством игроков. Само собой это не самая простая задача, но мы все уже решали ее в прошлом и очень хотим сделать это снова (потому что это действительно классно!). Мы решили разделить нашу общую цель на несколько фаз, что должны быть хорошо знакомо Unity-разработчикам. Согласно этому подходу мы выпустим фазу 1, получим отзывы пользователей, учтем их в нашей работе, что бы сделать следующую фазу еще лучше и повторим этот цикл. Для UNET фазой 1 будет то, что мы называем — Multiplayer Foundation — о ней мы расскажем чуть ниже. Фаза 2 будет построена на основе фазы 1 и предоставит технологию создания игр с авторизацией на сервере, которую мы называем Simulation Server, о ней в следующих статьях. В фазе 3 мы добавим возможность координировать множество Simulation Servers с помощью системы Master Simulation Server. Как всегда, точную дату выпуска назвать невозможно, особенно с учетом сбора отзывов от наших пользователей. Но мы можем сказать, что фаза 1 будет частью цикла релизов 5.х, а фаза 2 сейчас находится на этапе исследований.


Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Comments 10
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity