Продолжаем разбирать спецификацию, в прошлый раз мы разобрались как получить списк доступных физических устройств и их свойств. Каждое физическое устройство может иметь одно или несколько семейств очередей, в этой статье мы научимся получать список таких семейств и определять их свойства.
Разработка движка прекращена, исходные коды проекта доступны тут: http://code.google.com/p/glsnewton/
суббота, 27 февраля 2016 г.
четверг, 25 февраля 2016 г.
Vulkan API, Physical Devices
Physical Devices
После того как Вулкан был проинициализирован, мы можем начать работу с основными основными объектами API - устройствами (devices) и очередями (queues). В этой статье представлена информация о физических устрйоствах и приведен небольшой пример инициализации Вулкана и перечисления некотрых свойств инстанса и устройства.
среда, 24 февраля 2016 г.
Vulkan API, Initialization
Продолжаю переводить спецификацию, перевод предыдущего раздела можно посмотреть здесь: http://vbomesh.blogspot.com/2016/02/vulkan-api-fundamentals.html
В этот раз перевод коснется раздела Инициализации Вулкана.
Vulkan API, Fundamentals
16 февраля произошло значимое событие, наконец-то была релизнута спецификация графического API Vulkan и были выпущены первые драйвера.
Более подробную информацию об этом можно найти на сайте Хроноса:
https://www.khronos.org/vulkan/
Там собраны ссылки на основные ресурсы по Вулкану - драйвера, доки, демки.
О самом Вулкане можно спорить очень долго, но я этим заниматься не буду. Вулкан предоставляет разработчику очень высокий уровень контроля что позволяет просто делать сложные вещи, при этом простые вещи требуют намного больших усилий. Хорошо это или плохо - время покажет, но однозначно он найдет свою нишу.
В связи с этим я решил попытаться разобраться с этим API, начав не с критики демок, а с фундаментальных понятий нового API, хорошо описанных в спецификации Вулкана:
https://www.khronos.org/registry/vulkan/specs/1.0/pdf/vkspec.pdf
Для себя я набросал черновик перевода одноименной главы спецификации, перевод некоторых участков, без знания контекста, пока затруднен, но возможно это окажется кому-то полезным. Любые комментарии и исправления категорически приветствуются.
И так, начнем, Vulkan, Fundamentals...
Более подробную информацию об этом можно найти на сайте Хроноса:
https://www.khronos.org/vulkan/
Там собраны ссылки на основные ресурсы по Вулкану - драйвера, доки, демки.
О самом Вулкане можно спорить очень долго, но я этим заниматься не буду. Вулкан предоставляет разработчику очень высокий уровень контроля что позволяет просто делать сложные вещи, при этом простые вещи требуют намного больших усилий. Хорошо это или плохо - время покажет, но однозначно он найдет свою нишу.
В связи с этим я решил попытаться разобраться с этим API, начав не с критики демок, а с фундаментальных понятий нового API, хорошо описанных в спецификации Вулкана:
https://www.khronos.org/registry/vulkan/specs/1.0/pdf/vkspec.pdf
Для себя я набросал черновик перевода одноименной главы спецификации, перевод некоторых участков, без знания контекста, пока затруднен, но возможно это окажется кому-то полезным. Любые комментарии и исправления категорически приветствуются.
И так, начнем, Vulkan, Fundamentals...
воскресенье, 8 ноября 2015 г.
OpenGL 4.4 Instancing. Часть 2.
В предыдущей
главе мы рассмотрели несколько типов инстансинга, в частности нас больше всего
интересовало рисование посредством glDrawElementsInstanced и glDrawElementsIndirect, а так же их производных – glMultiDrawElementsInstanced и glMultiDrawElementsIndirect. Давайте сравним результаты их работы.
OpenGL 4.4 Instancing. Часть 1.
Как же быстро идет время, казалось бы, еще вчера анонсировали OpenGL 4.4, сел я делать краткий обзор по новинкам и вот уже и 2015-й заканчивается, а Khronos Group уже трубит о Vulkan… Отсутствие свободного времени, а также анонс нового API убавили энтузиазма, и эта статья пропылилась в закромах черновиков два года. Однако, «Рим строился не за один день», и пока Vulkan API мне не удалось даже пощупать, так что эта тема может быть для кого-то все еще актуальна. Переписывать статью уже лень, так что оставил все как было два года назад J
Итак, в древние
времена я выложил несколько статей по инстансингу и выводу GUI средствами OpenGL 2.1. Однако время идет и все
меняется, так вот на улице уже откуда ни возьмись 2014 год и OpenGL 4.4, а по всем каналам трубят о том,
какая крутая штука этот новый инстансинг. Давайте и мы разберемся какие
средства для инстансинга нам предоставляет OpenGL 4.4.
вторник, 8 января 2013 г.
VBO. Обобщенные атрибуты
В предыдущих уроках мы с вами рассмотрели работу со стандартными (встроенными) вершинными атрибутами, устанавливаемыми через gl*Pointer, где вместо "*" мог быть один из стандартных атрибутов - Vertex/Normal/Color/TexCoord и прочие. Однако, в OpenGL3.х+ этот тип атрибутов был объявлен устаревшим и удален, то же самое произошло и в OpenGL ES 2.0/3.0.
К счастью не все так плохо как кажется, во-первых, начиная с OpenGL 3.2 существует два профиля OpenGL - "ядро" и "профиль совместимости". В профиле совместимости вернули весь "устаревший" функционал, в том числе и стандартные вершинные атрибуты, так что, если вы не планируете переходить на "core" версию или переходить на мобильные платформы, то вам бояться нечего. Во-вторых, если вам все же придется в будущем осуществить такой переход, то основы можно заложить уже сегодня, благо обобщенные атрибуты, на которые был осуществлен переход в современных версиях OpenGL (3.x+/ES2.0+) существуют еще с OpenGL 1.3 и с тех пор практически не изменились. О них мы и поговорим в этой части.
К счастью не все так плохо как кажется, во-первых, начиная с OpenGL 3.2 существует два профиля OpenGL - "ядро" и "профиль совместимости". В профиле совместимости вернули весь "устаревший" функционал, в том числе и стандартные вершинные атрибуты, так что, если вы не планируете переходить на "core" версию или переходить на мобильные платформы, то вам бояться нечего. Во-вторых, если вам все же придется в будущем осуществить такой переход, то основы можно заложить уже сегодня, благо обобщенные атрибуты, на которые был осуществлен переход в современных версиях OpenGL (3.x+/ES2.0+) существуют еще с OpenGL 1.3 и с тех пор практически не изменились. О них мы и поговорим в этой части.
Подписаться на:
Комментарии (Atom)