Все началось с того что я купил себе новый монитор с поддержкой 3D ASUS VG23AH и в какой то момент мне захотелось воспользоваться возможностью посмотреть 3D фильм на нем. Подуглил бесплатные виде плееры для Mac OS, оказалось их не так много — всех чаще попадался плеер Bino. Скачал этот Bino, но посмотреть нормально так и не получилось, т.е. к плееру претензий нет, картинка была 3D, но видео страшно тормозило, картинка дергалась. Я воспользовался советом по повышению производительности к этой программе — там сказано — проверьте, как проигрывается этот фильм в VLC плеере, если уж и там будет тормозить, значит, мощностей вашего компьютера недостаточно/замените компьютер. В VLC все показывалось отлично без тормозов но, конечно, в моно режиме. Поскольку VLC — это opensource проект, я решил его немного подправить, чтоб он смог показывать стерео-фильмы, оказалось это сделать довольно просто.
Читать полностью »
Рубрика «shaders» - 5
Стерео плеер из VLC
2014-02-05 в 7:52, admin, рубрики: OpenGL, shaders, videolan, vlc, Анимация и 3D графика, метки: OpenGL, shaders, videolan, vlcВведение
Перед новым годом, я решил попробовать себя в написании шейдеров. В качестве цели я избрал для себя шейдер растворяющегося объекта. 31 декабря я его успешно закончил, и теперь пришло время что-то с ним делать. На ассет сторе сказали что всё отлично но уже парочка похожих есть, по этому я постараюсь разобрать его в этой статье. В итоге у нас должно получиться вот это:
Сфера из двух треугольников
2013-05-19 в 22:30, admin, рубрики: android, opengl es 2.0, shaders, Разработка под android, метки: android, opengl es 2.0, shaders
История этой демки такова: однажды один мой друг сделал для своей игры генератор карт планет и захотел, чтобы созданные таким образом карты показывались в виде вращающейся сферы. Однако, при этом он не хотел использовать 3D-графику, а вместо этого сгенерировал множество кадров с этой самой сферой, повёрнутой на разные углы. Количество используемой памяти было… скажем так, избыточным, ну а скорость генерации кадров (как и качество их исполнения) сильно страдала. Чуть подумав, мне удалось помочь ему оптимизировать этот процесс, но в целом меня не покидало справедливое ощущение того, что это задача для OpenGL, а вовсе не для 2D-графики.
И вот, однажды, когда меня мучила бессонница, я решил попробовать совместить эти два подхода: нарисовать вращающуюся сферу (с натянутой на неё картой планеты) через OpenGL, но при этом оставив её плоской.
Читать полностью »
QtQuick 2.0 и шейдеры OpenGL
2013-01-23 в 12:45, admin, рубрики: Digia, glsl, OpenGL, QML, qt, Qt 5, qt quick, Qt Software, qt5, shaders, метки: Digia, glsl, OpenGL, QML, Qt, Qt 5, qt quick, qt software, qt5, shaders На хабрахабре уже была статья «Применение шейдеров OpenGL в QML», в которой рассмотрены теория и примеры использования шейдеров в Qt Quick 1.0. Прошло больше года, фреймворк претерпел массу изменений: состоялся релиз Qt 5 и шейдеры теперь являются частью Qt Quick 2.0, а не вынесены в отдельный модуль и синтаксис их использования, естественно, также изменился. Сразу оговорюсь, что с GLSL я сам знаком весьма посредственно, зато имею опыт работы с QML, поэтому в этой статье хочу разобрать работу с фрагментным шейдером на примере компонента LedScreen, разработанного сообществом QUIt Coding (наверняка многие из вас видели его в демо-ролике на YouTube):

Читать полностью »
Разбираемся с шейдерами в Unity3D на конкретном примере
2012-11-16 в 18:00, admin, рубрики: game development, gamedevelopment, shaders, unity3d, метки: gamedevelopment, shaders, unity3d 
Немного теории
Для понимания работы шейдеров, нужно хорошо ориентироваться в том, как видеокарта строит изображение. Общая структура визуализации 3D объекта на экране изображена на рисунке ниже:

Читать полностью »
Unbiased DirectX Рендеринг на GPU, CPU и в облаке
2012-10-02 в 6:24, admin, рубрики: cloud computing, CUDA, direct3d, DirectX, gpgpu, gpu, HLSL, intel, opencl, path tracing, ray tracing, shaders, unbiased rendering, windows azure, x64, x86, Анимация и 3D графика, Облачные вычисления, рендеринг, рендеринг без допущений, трассировка лучей, трассировка пути, шейдеры, метки: 3d графика, cloud computing, CUDA, direct3d, DirectX, gpgpu, gpu, HLSL, intel, Nvidia, opencl, path tracing, ray tracing, shaders, unbiased rendering, windows azure, x64, x86, АРМ, облачные вычисления, рендеринг, рендеринг без допущений, трассировка лучей, трассировка пути, шейдеры Как создать рендерер, который бы работал даже на компьютере вашей бабушки? Изначально перед нами стояла немного другая задача — создать unbiased рендер для всех моделей GPU: NVidia, ATI, Intel.
Хотя идея такого рендера для всех видеокарт витала в воздухе давно, до качественной реализации, тем более на Direct3D, дело не доходило. В своей работе мы пришли к весьма дикой связке и дальше расскажем, что нас к ней привело и как она работает.
Разработка системы частиц на платформе DirectX 9. Часть II
2012-08-21 в 17:59, admin, рубрики: c++, direct3d, DirectX 9, effects, game development, particles system, shaders, Анимация и 3D графика, Программирование, система частиц, шейдеры, метки: 3d графика, c++, direct3d, DirectX 9, effects, particles system, shaders, система частиц, шейдерыЭтот пост является 2-ой и последней частью статьи о разработки системы частиц на DirectX 9. Если вы еще не читали первую часть, то рекомендую с ней ознакомится.
В этой части статьи будет рассмотрено: работа со спрайтами, вершинные и пиксельные шейдеры, эффекты, пост-эффекты. В частности для реализации пост-эффекта приём рендера в текстуру.
Читать полностью »
XNA Draw: улучшаем графику игры
2012-07-14 в 6:34, admin, рубрики: bloom, effects, game development, motion blur, shaders, xna, метки: bloom, c++, effects, game development, motion blur, shaders, xna 
Всем привет.
Все мои восемь статьей на хабре — статьи о геймдеве, большая часть из них связанна с таким замечательным фреймворком, как XNA. Первым знакомством с XNA была статья о создании музыкальной игрушки, потом сложность статей нарастала, я начал писать об системах частиц, а затем о шейдерах и еще шейдерах.
В целом — на шейдерах я и хотел закончить, однако, стоить немного дополнить их, я расскажу о нескольких алгоритмах для улучшения графике в игре. Примеры улучшений:
Если интересно — под хабракат.Читать полностью »
Рисуем мерцающий текст системой частиц
2012-06-06 в 7:50, admin, рубрики: android, effects, opengl es 2.0, shaders, Разработка под android, метки: android, effects, opengl es 2.0, shaders
В позапрошлой своей статье, посвящённой созданию открытки средствами OpenGL под Android, я оставил фразу «текст поздравления добавим позже». Так вот, время пришло.
Текст будет выглядеть примерно так, как на картинке, за исключением того, что он слегка мерцает, каждая «звёздочка» плавно исчезает и появляется (кроме того, в финальном варианте и сам текст другой, и цвет не тот, и размеры шрифта и частиц тоже). Нарисован он с помощью анимированной системы частиц, причём в массиве вершин задаются лишь координаты центра каждой точки и некий «сдвиг по фазе» для анимации, ну а сама анимация сделана через шейдеры.
Отрисовка частиц осуществляется механизмом Point Sprites, который как раз и создан для таких случаев. Основная его особенность в том, что мы задаём лишь координаты центра точки и её размер, а OpenGL сам генерит нам по четыре угловых вершины и два треугольника, включая их пространственные и текстурные координаты, для отрисовки множества одинаковых (в смысле, имеющих одну и ту же текстуру) квадратных картинок. Итак, заглянем под ка[по]т.
Читать полностью »
Эффект Glow гауссовым размытием на Android
2012-05-30 в 7:30, admin, рубрики: android, glow, opengl es 2.0, shaders, Разработка под android, метки: android, glow, opengl es 2.0, shadersВведение
Сей эпичный труд появился благодаря нескольким событиям.
Во-первых, в эмуляторе Android появилась поддержка аппаратного видеоускорения, что позволяет с полной скоростью работать не только интерфейсу, но и тестировать программы, использующие OpenGL ES 2.0.
Во-вторых, близится день рождения любимой супруги, а лучшим дополнением к новому смартфону или планшету будет собственноручно написанная программа-открытка для него.
Сказано — сделано: создаём канву проекта по андроидному Tutorial'у, достаём с полки старые Direct3D-проекты с использованием загрузки файлов .3ds, рендера-в-текстуру и пачки шейдеров, переписываем на Java и OpenGL ES 2.0, получаем то, что на картинке. Текст поздравления и тому подобное добавим потом.
Вся информация по использованию OpenGL ES 2.0 на Android оказалась сильно разрозненной, знания собирались по крупицам… Надеюсь, этот пост поможет тем, кто в будущем столкнётся с теми же трудностями, что и я.
А теперь подробнее.
Читать полностью »

