Нам пишет Ален Корбут
Однажды я решил поближе познакомиться с шейдерами… и тогда появился “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 и не забудьте указать свое имя или ник. Мы внимательно читаем входящие письма и публикуем ваши самые интересные истории.
Читайте также
Последние новости