Авторизация:


Сообщество людей и технологий
Сегодня у нас: год

Уже есть аккаунт? Войти
Присоединяйся к нашему гик сообществу!

Создай свой блог, делись интересной информацией из мира высоких технологий.

#DevStory — История создания приложения ShadersCode
Статьи, 12-02-2018, 03:42

#DevStory — История создания приложения ShadersCode

Нам пишет Ален Корбут

Однажды я решил поближе познакомиться с шейдерами… и тогда появился “ShadersCode”…

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

Потратив немного времени, я нашел в интернете отличный сайт (несмотря на то, что в приложении существует офлайн-версия в виде pdf, я рекомендую посетить этот сайт всем и каждому, кто хочет изучить язык шейдеров). Он полностью удовлетворил мои требования на тот момент и стал прекрасной площадкой для изучения GLSL.

Стоит отметить, что существуют и другие аналогичные языки для написания шейдеров, например, HLSL или Metal Shading Language. Отличий между этими языками немного, поэтому разобравшись с одним, вы легко освоите и другой.

Однако вернемся к GLSL.

До определенной поры The Book of Shaders меня полностью устраивал, но в какой-то момент захотелось перейти на телефон и не быть постоянно привязанным к компьютеру, к тому же на носу была очередная поездка, и так уж получилось, что ноутбук с собой в дорогу я не брал.

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

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

Платные варианты я даже не рассматривал, так как за цену 10 долларов мне предлагали практически то же, что и в бесплатной версии.

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

Не совсем понимаю, почему подобное приложение требует соединения с интернетом, но факт остается фактом — без Сети подобный продукт можно “выкинуть”. Пришлось исправлять ситуацию самому…

Первая, черновая версия была готова буквально за пару часов и позволяла делать три простые задачи: написать GLSL-код, просмотреть результат и заменить текстуру.

Для написания кода я взял обычный UITextView, а для запуска использовал SKSpriteNode в связке с SKShader. Достаточно для того момента. И никакого интернета, все полностью в офлайне!

В самолете я даже написал несколько своих вариантов шейдеров, читая параллельно книгу в pdf. По прилету домой я уже точно знал, чего мне не хватает в приложении, и тут же принялся его допиливать.

Вторая версия привнесла самое главное (как раз то, чего мне не хватало) — спецификацию по языку шейдеров. Я нашел отличный и удобный pdf-файлик со всеми нужными моментами по GLSL.

Для удобства чтения все данные были перенесены в plist с помощью простого скрипта, которому я скормил копипастом все нужное из оригинальной спецификации, а проблемные места поправил вручную. Отображение реализовано с использованием стандартных iOS таблиц (UITableView). Сюда же был добавлен линк на pdf-версию.

В последней закрытой версии была добавлена поддержка Apple Watch, которые лежат уже несколько лет практически без использования. Там схема, аналогичная iOS: SKSpriteNode + SKShader, но все находится на WKInterfaceSKScene, а не на SKView.

Для App Store-версии уже был подготовлен полноценный дизайн и добавлены простые samples, оформленные в виде уроков для начинающих.

Пока приложение поддерживает только fragment shaders и работу с текстурами, но в дальнейшем планируется добавить поддержку vertex shader и 3D-моделей. Также в ближайшее время, если найдется свободная минутка и хоть кому-то понравится приложение, будет добавлен полноценный error handling для кода и нумерация строк.

Для тех, кто дочитал до конца: после допиливания всех моментов и выпуска нескольких версий все исходники будут доступны в открытом доступе на GitHub под этим аккаунтом.

Ищите “ShadersCode“ в iOS App Store, пишите пожелания и отзывы. Приложение полностью бесплатное (и без in-app purchase), работает в офлайне и без рекламы.

Название: ShadersCode — learn and code
Издатель/разработчик: Alen Korbut
Цена: Бесплатно
Встроенные покупки: Нет
Совместимость: iPhone/Apple Watch
Ссылка: Установить

Если вам есть чем поделиться с другими читателями нашего сайта, пишите на advert@appleinsider.ru и не забудьте указать свое имя или ник. Мы внимательно читаем входящие письма и публикуем ваши самые интересные истории.


Другие новости по теме:


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться и принять участие в жизни нашего интернет-сообщества, либо войти на сайт под своим именем.
Добавьте комментарий, Ваше мнение очень важно:

Имя:*
E-Mail:
Комментарий:
Вопрос:
rgjrg
Ответ:*
Введите два слова, показанных на изображении: *


Самое интересное:
Гику на заметку:
Не iPhone самый продаваемый телефон в истории
Новый планшет BlackBerry PlayBook
Особенности ремонта айфонов своими руками
Переделка дачи
Как выбрать недорогой смартфон
Зависимость от... мобильного телефона и телевизора
Востребованные чехлы для ipone 4
Apple. Истинный лидер или дань моде?
Чехлы для смартфонов и айфонов
Вопрос:

Какую мобильную ОС Вы предпочитаете?

Android
iOS
Windows Phone
Другая
Нет ОС

 


2016 © Cig-bc.ru - Сообщество людей и технологий.

Все права защищены.

При любом использовании, копировании и распространении материалов активная обратная ссылка на Cig-bc.ru обязательна!

Категории:

Новости IT
Гаджеты
Железо
Софт
Игры
Информация:

О проекте
Регистрация
Статистика
Карта сайта
RSS
Контакт:

Обратная связь
Email: admin@cig-bc.ru
Email: alexk@cig-bc.ru
ICQ: 336565647