Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Вышел в свет черновик стандарта WebGL

IT-стандарты
[WebGL]Черновик стандарта WebGL описывает свободный кросс-платформенный API, предназначенный для подключения OpenGL ES 2.0 к холсту (<canvas>) в качестве контекста, возвращаемого стандартной функцией canvas.getContext().

Публичная версия черновика была выложена 10 декабря (в четверг) на CVS сайта Khronos Рабочей группою WebGL.

Арун Ранганатан (Arun Ranganathan) выложил во блоге hacks.mozilla.org достаточно подробный вводный рассказ о том, как включить эту функцию в еженощных тестовых сборках браузера Firefox, и как обеспечить её работу на тех видюхах, которые не поддерживают OpenGL ES 2.0 сами собою. (Читатели в тамошних комментариях проявляют неимоверную радость и признаются в том, что ждут не дождутся новой версии Файерфокса.)

[WebGL demo screenshots]Владимир Вукичевич (Vladimir Vukićević) также посвятил краткую блогозапись этому событию.

Всё это является очередным шагом к появлению в Паутине такой трёхмерности, которая не потребует никаких плагинов, однако станет невозбранно поддерживать OpenGL (и, в частности, язык шейдеров GLSL ES). И эта трёхмерность будет кросс-платформенною. Браузеры, которые приуготавливаются понимать WebGL, поимённо перечислены на заглавной странице вики WebGL: это Apple WebKit, Google Chrome, Mozilla Firefox и Opera.

Практическим примером использования WebGL является джаваскриптовая библиотека X3DOM, поддерживающая использование сцен X3D внутри обычных вебостраниц.
Всего голосов 39: ↑25 и ↓14 +11
Просмотры1.2K
Комментарии 17

Сравнение OpenCL с CUDA, GLSL и OpenMP

Высокая производительность
image
На хабре уже рассказали о том, что такое OpenCL и для чего он нужен, но этот стандарт сравнительно новый, поэтому интересно как соотносится производительность программ на нём с другими решениями.

В этом топике приведено сравнение OpenCL с CUDA и шейдерами для GPU, а также с OpenMP для CPU.

Тестирование проводилось на задаче N-тел. Она хорошо ложится на параллельную архитектуру, сложность задачи растёт как O(N2), где N — число тел.
Читать дальше →
Всего голосов 95: ↑94 и ↓1 +93
Просмотры37.2K
Комментарии 43

Эмулятор игры «жизнь» на языке GLSL

Ненормальное программирование
Для начала небольшой ликбез: раз, два, три.

Наверное, многие хоть раз в жизни писали эмулятор игры «жизнь».
Может быть для обучения программированию, может быть для интереса, экспериментов…
В любом случае, реализация на многих популярных языках программирования — несложное упражнение для обучения этому языку.

Но сегодня мы попробуем реализовать такой эмулятор при помощи видеокарты, так как алгоритм самой игры хорошо реализовывается при помощи параллельных вычислений.
Используем OpenGL, соответственно, язык шейдеров — GLSL. Основная программа будет написана на С++
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Просмотры6.8K
Комментарии 21

Создание 1k/4k intro для Linux, часть 1

Ненормальное программирование
«на русской сцене мы удивляем друг друга тем, что вообще что-то делаем», © manwe
(из статуса SCRIMERS на demoscene.ru/forum)

Пятиминутка мета: в этом тексте вам, котятки, предстоит прочитать о том, как потратить свое время совершенно неэффективно с точки зрения отношения размера полученного продукта к потраченным времени и усилиям.
Предположим, что мы хотим сделать что-нибудь эдакое, например, интру размером до 4кб, но мы нищеброды, и у нас нет денег на виндовс и видеокарту с шейдерами, поддерживающими ветвления. Или мы просто не хотим брать стандартный набор из apack/crinkler/sonant/4klang/боже-что-там-еще-есть, делать очередную «смотрите все! я тоже умею рэймарчинг дистанс филдс!» и теряться среди десятков-сотен таких же. Ну или же мы просто любим выпендриваться как попало в надежде, что девочки на нас наконец-то обратят внимание.

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



омг сколько текста
Всего голосов 192: ↑183 и ↓9 +174
Просмотры8K
Комментарии 54

Nvidia для профессиональных 3D приложений

Высокая производительность
Пол года назад я искал себе видеокарту, на которой я смог бы заниматься 3d моделированием, и рендерингом на GPU. В связи с появлением на рынке большого числе рендеров на CUDA мне не терпелось приобрести видеокарту с поддержкой CUDA, а именно Nvidia.

Как некоторые уже знают, Nvidia выставляет на продажу видеокарты нескольких моделей Geforce, Quadro, Tesla, ION, Tegra. В этом коротком сравнении упустим ION и Tegra, т.к. предназначены для мобильных устройств и слабые по производительности.

Нам нужна мощь!

Nvidia power...

Читать дальше →
Всего голосов 45: ↑38 и ↓7 +31
Просмотры169.4K
Комментарии 35

Создание 1k/4k intro для Linux, часть 2

Ненормальное программирование
Не прошло и полгода! Как вы можете, поднапрягшись, вспомнить, в прошлый раз мы остановились на унынии и обещании нырнуть в ассемблер.
Ну что же, пацан сказал — пацан сделал. Из этого аляповатого нагромождения букв вы узнаете, как можно инициализировать OpenGL-контекст в GNU/Linux в какие-то 450 байт, высвободив ещё больше места для разворачивания таланта.

Под катом вы узнаете, как в один килобайт нарисовать что-нибудь такое:


Заинтересованные пристёгиваются и вдавливают педаль в пол, а глаз — в экран.
Читать дальше →
Всего голосов 117: ↑109 и ↓8 +101
Просмотры7.7K
Комментарии 19

Зависимость прозрачности от ориентации поверхности

Работа с 3D-графикой
На днях, вертя в руках пластиковый стаканчик, я обратил внимание на то, что видимая прозрачность пластика зависит от угла, под которым смотришь на поверхность — если смотреть перпендикулярно поверхности, то задний фон отчетливо виден, а если смотреть вдоль поверхности, то материал становится практически непрозрачным. Это явление меня заинтересовало, и я решил построить математическую модель.

Сказано — сделано. Под катом вывод формулы, код фрагментного шейдера и небольшое демо.
Читать дальше →
Всего голосов 62: ↑57 и ↓5 +52
Просмотры15.8K
Комментарии 14

Покадровые анимации и шейдеры в iOS

Разработка под iOS
При разработке 2D игр часто сталкиваешься с покадровыми анимациями, и чем выше их качество, тем больше памяти они потребляют. С такой проблемой мы столкнулись при рендере анимации волос персонажа — художники рисуют пол сотни кадров замечательной графики с кучей мелких деталей и это очень быстро занимает всю доступную память. Собрали, замеряли, получилось 4 текструы по 16 мегабайт каждая. Детализация графики того стоит, но многовато как-то для одной анимации :)

Нужно это все упаковать… Поразмыслили и на помощь пришла старая идея с частичным обновлением картинки — вряд-ли при анимации будет изменянятся вся область. Значит нужно разбить картинку на девять частей, восемь взять из базовой и центральную подменить необходимой модификацией. Примерно так:



Как это реализовать смотрите под катом
Всего голосов 34: ↑30 и ↓4 +26
Просмотры16.5K
Комментарии 14

Трехмерные живые обои и OpenGL ES

Разработка под Android
Из песочницы


Доброго времени суток, Хабр!

Я — участник маленькой компании (из двух человек), которая делает живые обои (live wallpapers) для Android-девайсов. В этой статье будет рассказано о развитии наших приложений, от сравнительно простых до более сложных, примененных технологиях, трюках и решенных проблемах — все на конкретных примерах, в (почти) хронологическом порядке. Все наши обои — полностью трехмерные, написаны с использованием OpenGL ES.

В качестве бонуса — небольшая коллекция шейдеров, пользуйтесь ими как хотите. Предложения об их улучшении или исправлении будут только приветствоваться — мы не претендуем на звание гуру в этой области.
Итак, начнем!
Всего голосов 73: ↑68 и ↓5 +63
Просмотры42.4K
Комментарии 29

Альтернативное использование мощностей GPU?

Высокая производительностьGPGPU
Недавно я опубликовал статью о распределенном рендеринге на GPU — поступили некоторые вопросы и предложения. Поэтому считаю нужным рассказать о теме более развернуто (и с картинками, а то без картинок статьи практически не читают), тем самым привлечь к этой теме больше читателей.
Думаю, этим вопросом заинтересуются обладатели мощных вычислительных систем: майнеры, геймеры, админы других мощных вычислительных систем.

Многие обладатели мощного железа задумывались над тем, а нельзя ли подзаработать на мощности своей железки, пока она стоит бестолку?


Красота моя бестоковая!
Читать дальше →
Всего голосов 91: ↑69 и ↓22 +47
Просмотры139.2K
Комментарии 35

Динамическое освещение и неограниченное количество источников произвольной формы в 2D

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


Читать дальше →
Всего голосов 80: ↑76 и ↓4 +72
Просмотры38.1K
Комментарии 20

Создание 1k/4k intro для Linux, часть 4

Ненормальное программирование
Tutorial
Доброго всего, мои избыточно терпеливые друзья!
Как очень немногие из вас помнят, во второй части мы остановились на том, что получили прямоугольник на весь экран в сколько-то там сотен байт, и теперь вот уже полтора года стоим перед проблемой заполнения пустоты в наших кодах и сердцах творчеством.

Что же всё-таки можно нарисовать с помощью всего двух треугольников? Квадрат? Фрактал? Полёт сквозь мегатонной мощности взрыв в центре города? Есть ли предел безумию, где заканчивается реальность и начинается явь? Как правильно ухаживать за лучами, чем их кормить и обо что отражать вы узнаете во внезапном продолжении цикла статей про демомейкинг!


Читать дальше →
Всего голосов 108: ↑104 и ↓4 +100
Просмотры31.6K
Комментарии 11

SSAO на OpenGL ES 3.0

ПрограммированиеАлгоритмы

Однажды, разглядывая очередную демку с эффектом, возник вопрос: а можно ли сделать SSAO на мобильном девайсе так, чтобы и выглядело хорошо и не тормозило?
В качестве устройства был взят Galaxy Note 3 n9000 (mali T62), цель — фпс не ниже 30, а качество должно быть как на картинке выше.
Реализация под катом
Всего голосов 65: ↑62 и ↓3 +59
Просмотры27.4K
Комментарии 16

Forth и шейдеры

Ненормальное программированиеОбработка изображенийForth
Из песочницы
Tutorial
Речь у нас пойдёт о поэзии. Минимализм языка программирования Forth и красота образов демосцены подтолкнули программиста Брэда Нельсона к идее Forth Haiku. Подражая японским хайку, Брэд писал свои первые программы из трёх строк, состояли они из пяти, семи, и снова пяти слов. Но в отличии от традиционного японского жанра, поэзия на языке Forth порождала картины не в воображении читателя, а зримо, на экране компьютера. Эта затея могла бы остаться причудой одинокого фаната компьютерного ретро (Forth прочно ассоциируется со старыми добрыми семидесятыми), если бы Брэд не воплотил её на самой что ни на есть современной платформе (WebGL) и не сделал бы онлайн-редактор общедоступным.

Вот пример кода Forth Haiku и изображение, которое этот код создаёт: «Light Drop» by Brad Nelson.

: iii x y z*
Sin ; x 5 * x y
- iii exp y iii

Light Drop by BradN

Впереди нас ждут немало удивительных (в том числе и «живых») картин, но сперва — немного теории.
Читать дальше →
Всего голосов 88: ↑86 и ↓2 +84
Просмотры24.4K
Комментарии 44

Создание игры на ваших глазах — часть 2: Шейдеры для стилизации картинки под ЭЛТ/LCD

Разработка игрОбработка изображенийUnity
Tutorial
Поговорим на этот раз о технологии. В этой статье я расскажу и покажу, как в Unity создать шейдер для стилизации графики под старые ЭЛТ. Такой шейдер подойдет для пиксель-арта и для стилизации картинки под древнюю технику. Злоупотреблять им не стоит, но иногда использовать к месту — можно. (Специально уточню — я не предлагаю использовать такой эффект постоянно. Но, например, в заставках — он может прийтись к месту).



И сразу оговорюсь — я не владею глубинным пониманием шейдеров, а от читателя жду и того меньшего. Так что буду писать из расчета, что вы про шейдеры не знаете ничего, или почти ничего. И да, я попытаюсь вам пояснить самые базы работы шейдеров, так что если вы ничего о них не знаете — welcome!

Читать дальше →
Всего голосов 112: ↑103 и ↓9 +94
Просмотры72.7K
Комментарии 32

VSDCT на OpenGL ES 3

Разработка игрРазработка под Android
Давно хотел сделать демку VSDCT на мобильном телефоне. VSDCT (Virtual Shadow Depth Cubemap Texture) это представление cubemap текстуры, когда вместо 6 отдельных граней используется одна обычная 2D текстура-атлас, в которой исходные грани кубической карты помещены в виде плотно упакованных тайлов. Посмотрим, как сделать тени от точечного источника света, использую эту технику.

image

Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры9.2K
Комментарии 5

Шейдер для жука

ПрограммированиеАлгоритмы

снизу фотографии настоящих жуков, сверху — моя реализация

Продолжение предыдущей статьи, на этот раз пишем шейдер.
Читать дальше →
Всего голосов 161: ↑159 и ↓2 +157
Просмотры52.8K
Комментарии 21

Как из пустой пластиковой бутылки, картинки и шейдера сделать игру для iOS за выходные

Разработка под iOSSwift
Из песочницы
Как-то раз я спросил у своей жены:
— У нас же нет планов на выходные?
— Вроде нет, — ответила она.
— Тогда я еще разок поковыряю этот Swift.
— Поковыряй.

И вот я поставил перед собой задачу, написать очень простую игрушку для iOS на Swift'е, не прибегая к какому-либо ^.*C.*$ (прошлый мой опыт ознакомления со Swift'ом закончился тем, что 80% проекта были написаны на Objective-C (который из-за моего С++'ного мышления, сократился до ближайшего известного мне (Objective-C)+2C-Objective = C)).


Задача


Дано: Одна картинка, какие-то соображения в голове.
Надо: Игра написанная до звонка будильника в понедельник.

Не буду подробно описывать вещи, которые прошли для меня безболезненно, надеюсь, что и у вас они не должны вызвать недопонимания.
Решение
Всего голосов 35: ↑30 и ↓5 +25
Просмотры30.5K
Комментарии 11

Краткий курс компьютерной графики, аддендум: GLSL

ПрограммированиеРазработка игр
Tutorial

Official translation (with a bit of polishing) is available here.




Очередная вводная статья для начинающих программировать графику реального времени


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



Конкретно этот вирус состоит из примерно трёх миллионов атомов. Вы можете скачать его модель на замечательном сайте rcsb.org.

Это отличный топик для обучения шейдерам.
Читать дальше →
Всего голосов 52: ↑49 и ↓3 +46
Просмотры43K
Комментарии 64