Рубрика «компьютерная графика»

Уже давно известное быстрое преобразование Фурье используется не только для решения задач цифровой обработки сигналов, распознавания объектов на изображении, но и в компьютерной графике. Джерри Тессендорфом была описана математическая модель, позволяющая синтезировать океанские волны и анимировать их в реальном времени. В основе этой модели лежит двумерное БПФ.

Когда мне была поставлена задача разработать приложение для DSP-процессора, визуализирующее работу БПФ, я понял, что моделирование волн отлично подойдет для этой цели.
Моделирование водной поверхности с применением БПФ и DSP-процессора NeuroMatrix - 1
Читать полностью »

Привет, друзья! Обычно мы рассказываем на Geektimes о компьютерах или каких-то связанных с ними вещах, но сегодня поговорим о другом. Дело в том, что не так давно в нашем портфолио появился серьёзный инструмент для профессиональных художников – Dell Canvas. Это 27-дюймовая интерактивная панель с сенсорным экраном, пером для рисования и удобным радиальным контроллером. Продажи в России начнутся совсем скоро, а пока рассказываем о том, что это устройство из себя представляет, что умеет и для выполнения каких задач лучше всего подойдет.

Dell Canvas: интерактивная панель для профессиональной работы с графикой - 1
Читать полностью »

В этой статье я расскажу о реализации одного из алгоритмов расчёта глобального (переотражённого / ambient) освещения, применяемого в некоторых играх и других продуктах, — Voxel Cone Tracing (VCT). Возможно, кто-то читал старенькую статью ([VCT]) 2011 года или смотрел видео. Но статья не даёт исчерпывающих ответов на вопросы, как реализовать тот или иной этап алгоритма.

Глобальное освещение с использованием трассировки вокселей конусами - 1Глобальное освещение с использованием трассировки вокселей конусами - 2
Рендер сцены без глобального освещения, и с использованием VCT:
Читать полностью »

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

Вопросы делятся по темам: С++, математика, оптимизация и компьютерная графика. Очевидно, это главные темы в повседневной работе. C++ часто используется в реальных задачах, поэтому естественно, что на собеседовании задают много вопросов по нему. Кроме того, в программировании графики требуется лучшее знание математики, чем в большинстве других видов программирования, поэтому математические навыки имеют первостепенное значение. Наконец, для достижения 60 FPS и рендеринга с высокой графической точностью обязательными являются сильные навыки оптимизации. Давайте рассмотрим популярные вопросы в каждой категории.
Читать полностью »

Сегодня речь зайдёт о цвете.

image

Это спектр видимого света, построенный в цветовом пространстве sRGB с помощью прототипа моего колориметрического движка. Внизу подписана длина волны в нанометрах. Именно пространство sRGB является сегодня стандартом для интернета, так как оно поддерживается подавляющим большинством дисплеев. Но по правде, цветовой охват его невелик (всего 36 % от видимых глазом цветов); в нём очень плохо передаются оттенки зелёного. По этой причине на изображённый спектр наложен серый фон, снижающий насыщенность цветов до той, которую можно отобразить на стандартном мониторе. О том же, какие закономерности лежат в основе формирования цвета, и как цвет представлен в цифровой технике, да поведает эта статья.
Читать полностью »

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

В этой статье я кратко рассмотрю понятие метода фиксации уровня и неявно заданных динамических поверхностей (level set method). Также рассмотрю роль этого метода в бинарной сегментации с введением и определением математических конструкций, таких как SDT (Signed Distance Transforms), маркированной карты расстояний.

Бинарная сегментация изображений методом фиксации уровня (Level set method) - 1 Слева — исходное изображение, справа — сегментированное
Читать полностью »

Повышаем производительность кода: сначала думаем о данных - 1

Занимаясь программированием рендеринга графики, мы живём в мире, в котором обязательны низкоуровневые оптимизации, чтобы добиться GPU-фреймов длиной 30 мс. Для этого мы используем различные методики и разработанные с нуля новые проходы рендеринга с повышенной производительностью (атрибуты геометрии, текстурный кеш, экспорт и так далее), GPR-сжатие, скрывание задержки (latency hiding), ROP…

В сфере повышения производительности CPU в своё время применялись разные трюки, и примечательно то, что сегодня они используются для современных видеокарт ради ускорения вычислений ALU (Низкоуровневая оптимизация для AMD GCN, Быстрый обратный квадратный корень в Quake).

Повышаем производительность кода: сначала думаем о данных - 2
Быстрый обратный квадратный корень в Quake

Но в последнее время, особенно в свете перехода на 64 бита, я заметил рост количества неоптимизированного кода, словно в индустрии стремительно теряются все накопленные ранее знания. Да, старые трюки вроде быстрого обратного квадратного корня на современных процессорах контрпродуктивны. Но программисты не должны забывать о низкоуровневых оптимизациях и надеяться, что компиляторы решат все их проблемы. Не решат.

Эта статья — не исчерпывающее хардкорное руководство по железу. Это всего лишь введение, напоминание, свод базовых принципов написания эффективного кода для CPU. Я хочу «показать, что низкоуровневое мышление сегодня всё ещё полезно», даже если речь пойдёт о процессорах, которые я мог бы добавить.

В статье мы рассмотрим кеширование, векторное программирование, чтение и понимание ассемблерного кода, а также написание кода, удобного для компилятора.
Читать полностью »

Джон Уитни как пионер компьютерной графики и IBM 2250 как инструмент создания компьютерных видеоэффектов - 1
Джон Уитни и Источник: hackpad.com

Задолго до начала активного распространения компьютерной графики в фильмах и мультиках, еще до основания компании Pixar сама компьютерная анимация существовала в зачаточной форме. Десятки лет назад никто не рендерил видеоряд на ПК, не было и смоделированных компьютером декораций.

Но в то время жил и работал человек, который сделал все это возможным. Речь идет о Джоне Уитни, пионере компьютерной графики. У него был довольно широкий круг интересов, и особенно ему хотелось узнать одно — можно ли при помощи компьютеров создавать произведения искусства, художественные работы. Вряд ли для кого-то из читателей Geektimes ответ «да» окажется сюрпризом. Джон Уитни смог реализовать свою идею, причем сделал это с размахом.
Читать полностью »

Плохой код пакета для создания 2D-анимаций Toonz - 1На днях стало известно о том, что Digital Video, создатели проекта TOONZ, и японский издатель DWANGO подписали соглашение о приобретении компанией DWANGO проекта Toonz, программного обеспечения для создания 2D анимации.

По условиям соглашения, подписанного между сторонами, будет открыт общий доступ к OpenToonz, проекту, разработанному компанией Toonz. Он так же будет включать некоторые элементы, разработанные Studio Ghibli, которые в свою очередь являются активными пользователями этих программ. С их помощью, например, Studio Ghibli создавали «Ходячий замок Хоула», «Унесенных призраками», «Рыбку Поньо», а также множество других картин. В их числе так же мультфильм «Футурама», который вдохновил меня на написание этой разоблачающей статьи про исходный код OpenToonz.
Читать полностью »

Здравствуйте! Пока продолжает медленно, но верно готовится материал про хромакей, решил представить Вашему вниманию перевод интервью о том, как создавался высокотехнологичный рекламный ролик Nike Hypervenom. Этот ролик позволит Вам побыть в шкуре известного футболиста и забить решающий гол во время настоящего матча. Но самое главное это не просто съемка с видом из глаз – здесь Вы можете крутить головой! Собственно, сам ролик:

А рассказ про то, как создавался данный ролик под катом.
Читать полностью »