steps3D - Графика, ООП
29 сентября 2029

Выкладываю новую статью о Vulkan - Часть 4. Шейдеры, pipeline layout, compute pipeline.



25 сентября 2022

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

В открытый доступ выложил классную книгу - Game Programming Patterns. Это книга о паттернах проектирования применительно к играм. Книга на английском.



19 сентября 2022

19 сентября - международный пиратский день (точнее день "говорим как пираты"). Всех пользователей торрентов с праздником !!!



13 сентября 2022

Сегодня 256-рой день в году - день программиста !!! Всех с профессиональным праздником !



9 сентября 2022

День тестировщика. Всех тестировщиков с праздником. Больше тестов хороших и разных !



5 сентября 2022

Новая статья - Трехмерные SDF и операции над ними.



21 августа 2022

Ряд правок примеров на python - добавлена загрузка GLTF, классы VertexFormat и Renderpass. Класс VertexFormat фактические заворачивает в себя настройки буферов и содержит Vertex ArrayObject, файл two.py - пример использования. Класс Renderpass это обертка целого прохода рендеринга (в том числе и во фреймбуфер), включая очистку, bind для используемых текстур и шейдерной программы. Буду рад любым отзывам по полезности и вообще использованию python для на работы на OpenGL.

Продолжаю написание текстов по Vulkan и скоро будет следующий.



31 июля 2022

Сегодня день Военно-Морского Флота. Всех с праздником !

Выложил третью статью про Vulkan.



26 июня 2022

Выложил вторую статью про Vulkan.



17 июня 2022

Наконец-то убогий мелкомягикй браузер окончательно сдох !

Также несколько небольших правок в репозитории. Наиболее серьезная - в оконных кассах изменены методы для расчета модельно-видовой матрицы и матрицы проектирования - теперь матрица проектирование это чистый glm.perspective, а glm.lookAt входит в состав модельно-видовой матрицы.



3 июня 2022

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

Первое время буду выкладывать архивы с исходным кодом, потом перенесу код на github.



9 мая 2022

В примерах на python добавлен рендеринг clear coat - поверхности со слоем лака поверх основного материала.

Также была исправлена ошибка на питоне по загрузке некоторых палитровых текстур. Добавлен в код на С++ класс Renderpass, заворачивающий сразу много параметров в одну простую операцию.

Некоторое время назад я купил Far Cry 6 и все никак не мог запустить - игра требовала не просто мягкие окошки 10, а установленных определенных обновлений - без них игра просто не запускалась с довольно бредовым сообщением. Все-таки накатил эти обновления и начал проходить. Очень красиво и бредово. Судя по всему просто переложение Far Cry 5 в другой сеттинг. Но побегать и пострелять сгодится. Ну а дрессированный крокодил, бросающийся на противников - это просто мега-круто !



9 мая 2022

Всех с праздником Великой Победы !

Новая статья - Рендеринг кожи.



19 апреля 2022

Уже очень давно хотел написать статью про Physically Based Rendering и вот наконец могу ее выложить - Physically Based Rendering. Планирую в будущем ее дополнить статьей по IBL PBR.



11 апреля 2022

Выкладываю новую статью - Что такое гамма ?. В ней рассматривается что такое гамма, гамма-коррекция и эачем все это нужно.



28 марта 2022

В свой день рождения выкладываю новую статью - Текстуры движения. В ней рассматривается как можно анимировать произвольную текстуру при помощи так называемой текстуры движения (flow texture). Весь код к ней находится на github.



11 марта 2022

Много мелких правок кода на python. Добавлен класс Font.py для рендеринга SDF-шрифтов и добавлен пример на использование такого шрифта (перевод соответствующего кода с С++). Добавлен маленький пример на python выводящий анимированный четырехмерный куб.

Ряд старых примеров кода, живших на Google Code, переехали на github - https://github.com/steps3d/old-graphics-code. Код старый и местами может не собираться. Буду благодарен за любые замечания и исправления.

Обратите внимание там есть старые примеры кода на Vulkan https://github.com/steps3d/vulkan-samples. Я готовлю несколько статей по Vulkan, но для них код будет перерабатываться и скорее всего это будет новый репозиторий. Все примеры собираются под Windows и Linux.



20 декабря 2021

Новая статья - Detail normal maps. В ней рассматривается как накладывать друг на друга две (в перспективе и больше) карты нормалей - например, наложение карты детализации на основную.



3 декабря 2021

Сегодня 3 декабря - 3D Day ! Все причастных и интересующихся праздником !



2 декабря 2021

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

По ряду примеров, сделанных ранее, будут статьи и сейчас я выкладываю первую Using modern OpenGL with python. Там рассматривается использование современного (3.х и старше) OpenGL вместе с python 3, есть ряд примеров кода и свои helper-классы. Так что в следующих статьях код будет не всегда на С++, но и на python.

Слегка обновил страничку по инструментам - внезапно очень понравился VS Code - никогда не думал, что буду хвалить что-то от мелкомягих, но редактор очень хорош - кроссплатформа, куча плагинов.

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

Много лет писал код на python исключительно на Notepad++, сейчас начал все больше использовать PyCharm.

По совету бывших (увы) коллег из Cadence попробовал в качестве редактора векторной графики Inkscape - после ряда видеоуроков удалось разобраться в нем и я собираюсь полностью перейти на него (с Visio). Хотя интерфейс у него явно не очевидный и требует привыкания.

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



9 марта 2020

К сожалению довольно редко получается писать. Хотя на самом деле почти завершена работа по второй части книги и и продумывается третья часть (Vulkan и CUDA).

Вышла книга по работе с CUDA на Python, которую я переводил для издательства ДМК Пресс.

PyCUDA

Сейчас читаю очень интересную книгу по паттернам в современном С++, огромным плюсом книги является то, что в ней хорошо разобраны такие вещи как RAII, SFINAE, CRTP и т.п.

C++ Patterns

С огромным удовольствием прошел второе дополнение к игре Metro:Exodus - просто великолепно. Хочется пройти еще раз более внимательно. Но хочется больше открытости, а не рельсы.



28 июля 2019

Наконец вышла первая часть книги -

По этой ссылке можно ознакомиться с оглавлением книги.

Весь код к книге доступен на github. Для сборки используется cmake, но есть и обычные make-скрипты для Linux и форточек. Буду очень благодарен за комментарии и найденные ошибки. В ряде последних статей использовалась кодовая база именно для этой книги.

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



1 июля 2019

Выкладываю последние две лекции по CUDA в этом году - лекция 7, лекция 8.

Наткнулся на заметку о легендарном в компьютерной граифке чайнике - Чайник из Юты: история эталонной 3D-модели.

Первая часть уже готова и вот-вот выйдет - вот информация на сайте издательства .

По этой ссылке можно ознакомиться с оглавлением книги.

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



18 апреля 2019

Выкладываю следующие две лекции по CUDA в этом году - лекция 5, лекция 6.



24 марта 2019

Прошло много времени с последнего обновления :))

Выкладываю сразу 4 лекции по CUDA в этом году - лекция 1, лекция 2, лекция 3 и лекция 4.

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

Еще есть очень большая глава по освещению и физически-корректным моделям освещения. И рассматривается трассировка лучей и OpenGL 3.3 вместе с рядом спецэффектов.

В следующую часть войдут сложные эффекты, OpenGL 4.5, некоторые приемы оптимизации, сплайны и многое другое.

Исполнилось 12 лет с выхода моей любимой игры - STALKER: Shadow Of Chernobyl. регулярно к ней возвращаюсь. Сейчас играю в Metro: Exodus. Графика офигенная. Очень нравится свобода перемещения. Они по факту возвращаются в истокам - сталкеру. Осталось выбросить всю эту бредятину про метро и будет супер. Ну и выбросить всякие либеральные идеи - вроде той, что в Долине.



30 апреля 2018

Выкладываю восьмую лекцию по CUDA в этом году - брать здесь.

Также новая статья - Order-Independent Transparency в OpenGL.



15 апреля 2018

Выкладываю седьмую лекцию по CUDA в этом году - брать здесь.

Набор презентаций от Khronos на GDC 2018 - брать здесь.

Также новая статья - Расширение ARB_bindless_texture.

Картинка для новой книги (работа почти завершена, идет вычитка глав) - трехмерный фрактал, трассировка в реальном времени прямо в фрагментном шейдере.

3d fractal



6 апреля 2018

Выкладываю шестую лекцию по CUDA в этом году - брать здесь.

Интересный сайт по шейдерам, включая шумовую функцию на GLSL.

Очень порадовало видео, про выступающих против оружия в США. Где к группе выступающих против штурмовых винтовок обратились с просьбой объяснить, что же такое штурмовые винтовки. Ответа как вы понимаете, так и не последовало.

Наводит на мысль, что все эти хоплофобы просто такие же больные на голову, как и антипрививочники. Ни те, ни другие совершенно не разбираются в предмете, против которого выступают. И не хотят разбираться - все же ясно говорят по телевизору (пишут в интернете) :)) А телевидение заботливо фильтрует подаваемую информацию - сомневаюсь, что много где рассказали о случае, когда преступника, ворвавшегося в школу и ранившего двоих учеников, застрелил один из сотрудников школы.



1 апреля 2018

Выкладываю пятую лекцию по CUDA в этом году - брать здесь.

Очень интересная ссылка по трехмерные фракталы с кучей картинок.



22 марта 2018

Выкладываю четвертую лекцию по CUDA в этом году - брать здесь.

Полезный тул (если кто не не знает) - cubemap filtering tool. Также к нему есть GUI - cmftStudio.



14 марта 2018

Сегодня - день Пи - 3.14. Так что поздравляю всех.

Выкладываю третью лекцию по CUDA в этом году - брать здесь.

Наткнулся на пару статей с примерами красивых L-систем - первая и вторая.

Еще одна интересная презентация от EA - Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite.



8 марта 2018

Поздравляю прекрасную половину с 8 марта !

8 march

Выкладываю вторую лекцию по CUDA в этом году - брать здесь.

И еще одна интересная презентация от Frostbite - Physically Based and Unified Volumetric Rendering in Frostbite.

Понадобилось построить серию графиков и диаграмм и открыл для себя библиотеку myplotlib для Python. Мне очень понравилось - всего несколько строк на Python позволяют строить красивые графики.

Еще одна приятная новость - Khronos Group объявляет о релизе Vulkan® 1.1 и SPIR-V 1.3.



28 февраля 2018

Выкладываю первую лекцию по CUDA в этом году - брать здесь.

И презентация о рендеринге в Mirrors Edge.



24 февраля 2018

Еще одна статья по CUDA - Cooperative groups в CUDA. На самом деле очень интересная новая возможность в CUDA 9, новый способ организации взаимодействия нитей, вплоть до взаимодействия между нитями одной сетки или даже нескольких сеток, выполняемых на разных GPU.



12 февраля 2018

Еще одна статья по CUDA - Некоторые возможности CUDA, часть 2.

С 26 февраля начинаю читать спецкурс по CUDA на ВМК МГУ (понедельник, 16-20, ауд 524), будет много нового по сравнению с прошлым годом.

Очень интересная статья о работе памяти - What Every Programmer Should Know About Memory. К сожалению написана в 2007 году и когда я показал ее одному из своих коллег-электронщиков, ряд положений были безжалостно раскритикованы как неверные или устаревшие. Но это касается в основном самого низкого уровня - устройство ячеек памяти, refresh и т.п. А в целом очень много интересной и полезной информации, важной для оптимизации работы с памятью.

На днях вступил в ожесточенный спор с коллегой насчет плоского дизайна - в первую очередь в Windows 10. Мне было очень интересно неужели умному, образованному человеку может нравится этот шлак.

Моя позиция на тему плоского дизайна - это убожество, дизайн для детей-дебилов, дизайн для даунов.

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

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

И это вполне логично - фактически минимализм - это просто один из инструментов для создания UI. И его задача - бороться с усложнением и утяжелением интерфейса (что к сожалению часто встречается). А в том, что мы видим сейчас происходит абсолютизация этого принципа - он доводится до абсолюта, фактически мы получаем Reductio ad absurdum. И естественно это делается за счет других инструментов.

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



11 февраля 2018

Выкладываю очередную статью по CUDA - Некоторые возможности CUDA, часть 1.

Также были исправлены опечатки в ряде предыдущих статей по CUDA и было внесено исправление в статью о библиотеке thrust.

Скоро снова начну курс по CUDA на ВМК МГУ, будут многочисленные дополнения по сравнению со старым. Как всегда, лекции буду выкладывать на сайт.



14 января 2018

Вот и наступил Новый 2018 год ! Как вы уже наверное заметили, я начал небольшую серию статей по CUDA. Это небольшие статьи по различным аспектам CUDA, появившимся в последние несколько нет, которые не вошли в курс по CUDA (ну и в мою книгу по CUDA). Планируется еще несколько таких статей - своего рода разминка перед чтением курса в этом году. Я собираюсь его заметно обновить и это как небольшая разминка.

Вот очередная статья по CUDA - Динамический параллелизм в CUDA.

Также я хотел бы поделиться несколькими интересными на мой взгляд ссылками - Статья о рендеринге в DOOM 4, Презентация Tiago Sousa и Jean Geffroy о рендеринге в DOOM 4. Еще одна интересная ссылка - How Unreal Renders a frame.



24 декабря 2017

Выложил новую статью по CUDA - Команда Shuffle и ее использование в CUDA.



17 декабря 2017

Выложил новую статью по CUDA - Работа с Unified - памятью в CUDA.



4 декабря 2017

Пока хронически не доходят руки написать свою статью про работу с OpenGL 3/4, решил выложить несколько полезных ссылок на эту тему. К сожалению вопрос о том, что почитать по современному OpenGL задается мне довольно часто и мало чего можно порекомендовать - большинство книг сильно устарели.

Много всего правильно содержится в книге (котору я переводил) - OpenGL ES 3.0. Руководство разработчика. Хотя книга посвящена и OpenGL ES 3, в ней очень много полезной информации для того, чтобы начать писать на современном OpenGL.

Еще одной достойной книгой является OpenGL 4. Язык шейдеров. Книга рецептов. Однако это книга именно по шейдерам и реализации различных эффектов.

Также есть несколько статей в интернете с примерами того, как работать с современным OpenGL. Мне лично очень нравится следующий набор статей, начинающих с создания контекста и завершающийся созданием теней и постпроцессинга - Уроки по OpenGL 3.

Также посмотрел на свои старые примеры и решил выложить инструкции по сборке. Они все собираются под Windows и Linux при помощи Makefile-ов (Makefile для сборки под Linux, Makefile.nmake для сборки под Windows). Для сборки требуются различные библиотеки, в данном архиве собраны они все - framework-old. Также могут понадобиться следующие наборы текстур - 1, 2 и 3.



16 апреля 2017

Выкладываю еще одну лекцию - восьмая лекция - основа OpenCL и вычислительные шейдеры в OpenGL.



9 апреля 2017

Выкладываю сразу две лекции - шестую и лекция седьмую.



26 марта 2017

Выкладываю сразу две лекции - четыре и лекция пять.



12 марта 2017

Выкладываю следующую лекцию по CUDA в этом году - третья.

На самом деле на ВМК в этом году не только я читаю спецкурс по CUDA. Александр Колганов также читает спецкурс по CUDA - вот ссылка на его лекции.



5 марта 2017

Наконец обновление на сайте. Выкладываю первые две лекции по CUDA в этом году - первая и вторая. Из изменений в этом году планирую добавить пару лекций по Vulkan.

Последнее время все время и силы уходят на два проекта - перевод книги Грэхема Селлерса "Vulkan. Programming Guide" и работа над своей книжкой по графике.

Как только перевод будет закончен он выйдет в издательстве ДМК-Пресс.

Своя книга больше всего близка к Computer Graphics: From Pixels to Programmable graphics hardware. Однако она полностью переработана, включено много нового материала, на новом фреймворке. Весь исходный код будет доступен на github. Книга будет большой и толстой и включать в себя очень много самого разного материала.



13 июня 2016

Выкладываю новую статью - Вычислительные шейдеры в OpenGL.

Планируется еще несколько статей, также весьма плотно работаю в Vulkan. Как только удастся что-то понятное написать с читаемыми примерами - сразу же будет выложено на сайт.



29 мая 2016

Купил Doom 4 и сейчас активно прохожу. Впечатления пока потрясающие - море драйва, потрясающая графика. Жестокие убийства - просто супер. Единственное, что расстраивает - как можно было сделать в Doom сохранение только в контрольных точках. Как же достает это засилье консольщины, когда самые гадкие вещи тащат с консолей в PC-gaming.

Купил свежую книгу Макса Фрая - Я иду искать. Очень нравится. Мне вообще нравятся все книги про сэра Макса. А вот остальные книги этого автора как-то не идут :(((

Очень порадовал тот факт, что исходники старого доброго Serious Sam выложили в открытый доступ - смотреть здесь.

Также стали доступны исходники Cry Engine.

Ну и немножко попросили попиарить - ресурс с различными моделями, форумом и т.п..



9 мая 2016

Прежде всего - с Днем Победы ! Это святой праздник, очень грустно, что находятся выродки, поливающие этот праздник и нашу историю грязью

Выложил на сайт новую (правда очень короткую) статью Расширение ARB_multi_draw_indirect.

Хочется и в этот раз сказать несколько "добрых" слов о мелкомягких - неделю назад, внезапно, без предупреждения, без запроса разрешения Форточки 10 попытались поставиться на ноутбук моей жены. Мало того, что это было сделано без разрешения, так и без информации о том, что вообще происходит после включения сразу начинает что-то грузить и ставить. При этом вообще не упоминается Windows 10, нет никакой возможности отменить.

Ну и по прошествии часа - "мы тут поставили вам Windows 10, ознакомьтесь с лицензионным соглашением". Очень мило - сперва эта блевотина ставится, а уже потом, когда ее поставили - лицензионное соглашение.

К счастью при выборе "Отказываюсь", долго поскрипев винтом, исходная система все=таки была восстановлена. В-общем мелкомягкие во всей "красе". На самом деле я может бы и оставил Win10, но если бы это было сделано не откровенно по-хамски. Тут чисто из принципа я откатился назад, потом - GWX Control Panel и полный запрет на дальнейшие подобные действия.

Посмотрел совершенно великолепный фильм - "Игра на понижения". Никакая это не комедия, а очень грустная правда о той жадности, тупости и сговоре, которые привели к кризису 2008 года. Очень советую посмотреть, особенно если вы все еще верите в демократию.

Сделал себе предзаказ Doom 4, теперь жду качественного мяса.



26 апреля 2016

Выкладываю новую статью - Работа с библиотекой GLFW. В ближайшее время будет несколько статей по Vulkan. Также продолжатся статьи по расширениям OpenGL.

Хочу попиарить одну достойную книгу -

Очень хорошая книга - сжатый и конкретный рассказ о новых и полезных фичах С++ 11 и С++ 14.



15 марта 2016

Выкладываю небольшую статью - Расширение ARB_vertex_attrib_binding. В ближайшее время будет статья по библиотеке GLFW и несколько статей по Vulkan.

Ну и немножко "доброго" о форточках-10.

Опять же на эту тему очень понравилась статья Тим Суини из Epic Microsoft wants to monopolise games development on PC. We must fight it.

Статья о том, что Universal Windows Platform (UWP) это фактически способ мелкомягимх монополизировать игровой (и не только игровой) рынок - фактически единственным способом распространения приложений под UWP является через мелкомягкий Windows Store. Т.е. мелкомягкие хотят вклиниться между пользователем и разработчиком игры.

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

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

Т.е. речь идет о попытке превратить открытую платформу PC в закрытую и полностью контролируемыми микро$офтом. Всякие разговоры о безопасности - это полный бред. Как известно самая большая уязвимость сидит за клавиатурой. Ну и вспомним сколько критических уязвимостей нам подарили за последний год как сами M$, так и ряд вполне уважаемых компаний. Вирус, внедренный в документ M$ Office или в flash это фактически самый распространенный способ заражения. И его новый тип приложений не исправит, поскольку уязвимость изначально содержится в самих приложениях.



28 февраля 2016

После долгого перерыва первое обновление. За время, прошедшее с последнего обновления на сайте, успел выйти омерзительная Windows 10 и долгожданный Vulkan.

Насчет Windows 10 даже говорить долго не хочется - по сути эта даже Windows 8, с небольшими косметическими правками, переименованная из маркетинговых соображений. Которая несет в себе постоянный шпионаж за пользователем, неотключаемые обновления, пасьянс с рекламой и куче предустановленного дерьма. На эту тему есть несколько добрый статей на сайте автора DirectX - Alex StJohn'а с весьма красноречивыми названиями. Ниже я просто приведу картинку с его сайте.

Также у меня вышла новая книга Компьютерная графика. Учебник и практикум. Это учебник для магистров по основам графики и OpenGL, есть глава по шейдерам.

Очень порадовал выход Vulkan и я готовлю ряд статей по нему. Глядя на форму gamedev.ru у меня сложилось ощущение, что многие ожидали чего-то другого. Хотя на самом деле вышло именно то, что и должно было выйти. Естественно, что новый API сложнее, чем Mantle, поскольку он должен поддерживать большое количество различных GPU, включая мобильные GPU с тайловой архитектурой. Естественно, что куча всяких неявных действий, выполняемых OpenGL "за кадром" теперь нужно явно выполнять самому - это естественно вытекает из получения полного контроля - контроль всегда подразумевает и ответственность.

Сравнение с CUDA не совсем корректно - во-первых, нужно сравнивать с CUDA driver API, а он гораздо сложнее, а во-вторых - сам graphics pipeline гораздо сложнее чем compute pipeline. Отсюда и вытекает полученная сложность.

Кроме того, под него пока нет практически никаких библиотек. Для примера попробуйте написать на OpenGL, не используя никаких библиотек - только сам OpenGL и WinAPI. Поверьте, число строк будет весьма серьезным. Для всех своих примеров я использую библиотеки - иногда свои, иногда нет. Со временем вокруг Vulkan появятся такие библиотеки, облегчающие написание программ.

Очень нравится в Vulkan, то что с самого начала вводятся conformance тексты. Так что есть большая надежда, что программы наконец-то будут работать одинаково на различных GPU. Кроме того, драйвера будут заметно проще и компилятор шейдеров вынесен из драйвера, что тоже уменьшит количество проблем. Использование бинарного формата для шейдеров позволит использовать шейдеры на различных языках - пока есть реализация компилятора только для GLSL, но никто не мешает писать свои компиляторы для других языков.

Ну и еще одна добрая картинка напоследок -



9 марта 2015

Выкладываю еще одну статью по OpenGL - Расширение ARB_multi_bind.

Также выкладываю лекции по CUDA, прочитанные за последние две недели - первая и вторая.

На этой неделе прошла GDC 2015 и на ней были несколько докладов по OpenGL Next. Было дано новое имя - Vulkan и выложены слайды по новому API, сам API будет представлен позже в этом году. Вот основная презентация по новому API. Вот еще одна презентация, более подробно рассказывающая о новом API.

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

IMHO OpenGL никуда не денется - с одной стороны есть очень много работающего кодаЮ который никто не будет переписывать, с другой стороны далеко не всем нужен такой контроль и не каждый захочет взять на себя всю необходимую работу. Так что для многих задач OpenGL будет вполне простым и удобным решением. Постепенно, с развитием различных библиотек под Vulkan, переход на него будет упрощаться для тех, кому не нужно столь высокое быстродействие.

Интересной особенностью Vulkan является то, что для него (как и для OpenCL 2.1) задается бинарное внутреннее представление для шейдеров. При этом совсем не важно на каком языке был написан шейдер - главное, это чтобы его можно было откомпилировать в это представление. Так уже обещают C++ для OpenCL 2.1. Все это очень радует и хочется, чтобы поскорее можно было все это попробовать.



1 марта 2015

Выкладываю новую статью - Использование спецификатора layout в GLSL .

Также немного почистил список статей и раздел Code Snippets. Если есть какие-то пожелания по тому, что можно включить в этот раздел - пишите на форуме или в личку.

На следующей неделе будет проходить GDC 2015 и в его рамках пройдут доклады, посвященные glNext. Так что жду с большим нетерпением.

Еще несколько статей уже написаны (на бумаге) и ждут того, когда я их наконец наберу.

Ну и на злобу дня - я лично рад тому, что жулика и вора Немцова пристрелили. Если бы я верил в ад, то пожелал бы ему там гореть.



14 февраля 2015

Поздравляю всех с днем Святого Валентина. Кроме того, оказывается сегодня еще и вполне программистский праздник - 14 февраля 1946 был продемонстрирован первый электронный компьютер ENIAC-1.

Выкладываю новую статью - по расширению ARB_shader_image_load_store.

Очень понравилась кнопка сделать все хорошо.

Еще начал читать книгу Эндрю Мэтьюза Живи легко! - очень рекомендую.



8 февраля 2015

Выкладываю новую статью - по расширению ARB_shader_storage_buffer_object.

Опять порадовали мелкомягкие - очередная уязвимость нулевого для в Internet Explorer.

И аналогичным образом порадовала Adobe с очередной огромной дырой в флеше, когда он наконец сдохнет.

Понравилась очередная статья об эффективном использовании OpenGL.

Очень порадовало, что на GDC 2015 будет рассказ о glNext от Valve.

Начал читать нового Макса Фрая - Слишком много кошмаров - очень нравится.



1 февраля 2015

Выкладываю новую статью - Расширение ARB_buffer_storage .

Из последнего прочитанного понравилась статья о PBR в Skyforge и продолжение рассказа о построении всего конвейера на CPU - 5 и 6.

Еще с интересом прочитал Основы программирования графики на Apple Metal: Начало.



26 янавря 2015

Недавно наткнулся на то, как могут различные религии трактовать стакан (он наполовину полон или наполовину пуст).

На gamedev.ru в теме о восстановлении координат по значением из z-буфера встретил утверждение о том, что приведенная моей статье формула неверна. Сразу решил это проверить. Оказалось, что не смотря на одну ошибку итоговая формула все-таки верна. Дело просто в том, какое именно значнение подставляется в эту формулу - непосредственно из буфера глубины (т.е. изменяющееся на отрезке [0,1]]), или же уже приведенное к отрезку [-1,1] (т.е. фактически уже zNDC).

Еще очень понравились лекции по графике на Хабре - там делается попытка разобрать все с самого начала, включая растеризацию, написание буфера глубины и т.п. Лекции - 1, 2, 3, 4a и 4b.



6 янавря 2015

А выкладываю новую статью - Расширение ARB_texture_storage.

Мне понравилась эта статья, где автор высказывает свои мысли насчет языка Swift. Честно говоря я сам Swift не пробовал (и не собираюсь), но много про него читал. И ощущение очень похоже - это просто красивый syntax sugar, для тех, кому неприятен синтаксис Objective-C. На самом деле по сути это просто урезанный вариант Objective-C, причем именно урезанный (например, выкинута вся работа с метаинформацией). И в этом смысле он просто выдумка маркетологов - для программистов он ничего не дает (IMHO).

Очень понравились две статьи на Хабре про использование OpenGL из питона - PyOpenGL для начинающих и немного новогоднего настроения и PyOpenGL с шейдерами.

Вот это Маргарет Хамильтон, ведущий программист в NASA и программа для посадки Аполлона, которая она написала. И, думаю, багов в этой программе горазде меньше чем в нынешних форточках :(((

Очень порадовала Гейм-дизайн vs обработка дерева.

Повеселил скандал вокруг GTA V - в Австралии нашлись больные на голову граждане, требующие запретить продажу игры из-за того, что в игре можно убить несколько женщин (судя по всему то, что в этой игре можно убить во много раз больше мужчин из вообще не волнует). И совершено верный ответ - Не нравится GTA V — просто не покупайте её. Также порадовал ответ одного из игроков - он предложил на совершенно таком же основании запретить продажу библии (что IMHO было бы очень неплохо) и даже набрал немало голосов в поддержку.

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

Немного о политике - Как выглядели бы сообщения в твитере американских оппозиционеров. Посмотрите и подумайте. Почему-то у нас очень принято поливать дерьмом свою Родину. Причем очень часто это делается людьми которые ничего достойного вообще не сделали. Революции в нашей стране всегда заканчиваются гибелью огромного количества людей и разрухой, причем потом выясняется что все революционеры строить сами ничего не умеют. Есть очень хорошее высказывание Франсуа Миттерана о том, что к сожалению все люди, которые знают как надо управлять государством работают таксистами. У нас это к сожалению тоже так :(((



2 янавря 2015

Поздравляю всех с наступившим 2015 годом.

Постараюсь в этом году чаще обновлять сайт. А сейчас выкладываю новую статью - статью о работе с библиотекой thrust.



Старые новости

Новости за 2012-2014 года.

Новости за 2011 год.

Новости за 2010 год.

Новости за 2009 год.

Новости за 2008 год.

Новости за 2007 год.

Новости за 2006 год.

Новости за 2005 год.

Новости за 2004-2003 года.