ПрограммированиеСтатьи

Графика

Страницы: 1 2 3 4 Следующая »

8 янв 2022

Recursive Tile-based architecture

Данная статья вводит понятие Recursive Tile-Based Architecture (RTBA), расширяющее возможности традиционной tile-based архитектуры. Предложенный подход позволяет работать с аппаратно-ускоренным тайловым растеризатором в терминах когерентного рейтрейсинга, каждый тайл рассматривается, как средство обработки пучка лучей.

Читать | Комментарии [116]

3 июня 2020

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

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

Читать | Комментарии [25]

18 авг 2019

Предрасчёт рейкаста для эффективного рендеринга травы и меха

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

Читать | Комментарии [62]

22 апр 2019

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

Читать | Комментарии [157]

26 фев 2019

Синхронизации в Vulkan

Одно из важных отличий Vulkan от более старых графических API, это больший контроль над синхронизациями как с CPU, так и внутри GPU. И как всегда многопоточность и синхронизация — это достаточно сложная тема. Стоит помнить, что драйвер Vulkan не обязан оптимизировать вызовы API, поэтому для максимальной производительности синхронизации должны быть расставлены наиболее оптимальным образом.

Читать | Комментарии [36]

18 ноя 2018

Пишем простой рейтрейсер используя Vulkan Raytracing

Всем привет! Сегодня я расскажу вам, как получить результат, изображенный на заглавной картинке к этой статье, используя Vulkan Raytracing.

Читать | Комментарии [62]

4 ноя 2018

Введение в Vulkan Raytracing

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

Читать | Комментарии [183]

8 фев 2017

Стоимость OpenGL команд.

В современных проектах для получения красивой картинки отрисовываются тысячи различных объектов: персонажи, строения, ландшафт, природа, эффекты и т.д. Разумеется есть разные способы отобразить на экране геометрию. В этой статье мы рассмотрим как сделать это эффективно, посчитаем и сравним стоимость различных API вызовов для отрисовки геометрии.

Читать | Комментарии [85]

12 окт 2016

Rectilinear Texture Warping

В данной статье я расскажу об адаптивном методе теневых карт под названием Rectilinear Texture Warping for Adaptive Shadow Maps, о его достоинствах и недостатках, а также о реальном опыте использования данного метода в проекте (и что из этого вышло).

Читать | Комментарии [29]

15 сен 2016

Vulkan API «Hello Triangle»

Статья описывает основные принципы работы с Vulkan API и включает в себя материал по установке SDK, обработке ошибок, работе с различными сущностями API и краткий курс по выводу треугольника, в качестве практической части. Работа позиционирует себя как быстрый экскурс в основы Vulkan API, не претендуя на полноту и оставляя детали на самостоятельное рассмотрение.

Читать | Комментарии [69]

1 сен 2016

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

Читать | Комментарии [13]

21 окт 2015

Coverage Buffer из CryENGINE в деталях

Некоторое время назад я наткнулся в замечательной презентации Secrets of CryEGNINE 3 Graphics Technology от не менее замечательных Nickolay Kasyan, Nicolas Schulz и Tiago Sousa на описание любопытной технологии, названной авторами.

Читать | Комментарии [24]

9 сен 2015

Вставка одной поверхности в другую (многопоточный алгоритм)

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

Читать | Комментарии [28]

21 янв 2015

Dynamic vertex pulling в Direct3D11

Данная статья рассказывает про то, как можно рисовать миллионы уникальных объектов в Direct3D11 с минимальным оверхедом на CPU и максимально близкой к D3D12 или «AMD Mantle» скоростью. В статье показан пример использования так называемых Structured Buffers.

Читать | Комментарии [38]

17 янв 2015

Screen space ambient occlusion с учетом нормалей и расчет одного отражения света.

В этой статье я расскажу, как я с нуля делал SSAO (Screen Space Ambient Occlusion — расчёт фонового освещения в экранном пространстве) с учетом нормалей. Сразу следует отметить, что это наиболее простая и прямолинейная реализация «в лоб», не претендующая на оптимальность или новизну. Статья будет полезна в первую очередь тем, кто имеет желание разобраться, как это работает.

Читать | Комментарии [69]

6 янв 2014

Объемы распространения света для непрямого освещения в режиме реального времени.

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

Читать | Комментарии [78]

28 сен 2013

Кое-что о размытии изображения с помощью шейдеров.

Эта статья познакомит читателя с основными техниками размытия изображения при помощи GLSL шейдеров. Данные техники широко применяется в играх для создания таких эффектов как засветка (bloom), глубина резко изображаемого пространства (DOF), эфект движения на большой скорости итд.

Читать | Комментарии [44]

26 дек 2012

Скелетная анимация на пальцах.

Многие новички, которые только начинают постигать «скелетку», очень часто не понимают как она работает (даже при наличии многих статей на данном ресурсе) и что для её работы нужно, собственно им я и хотел бы объяснить на пальцах как работает скелетная анимация.

Читать | Комментарии [59]

4 июля 2012

Виртуальные текстуры

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

Читать | Комментарии [103]

30 апр 2012

GPSM: Geometry Pitch Shadow Map

GPSM (Geometry Pitch Shadow Map) — еще один метод рендеринга теневых карт, дающий возможность реализовать тени, покрывающие огромные территории, используя всего одну текстуру, в которую происходит рендеринг (render target). Метод GPSM даёт для теней вдали от камеры наблюдения качество хуже, а вблизи — лучше. Этот метод я изобрел для своего движка и уже использую в двух проектах, решил поделится с вами, надеюсь, кому-то пригодится.

Читать | Комментарии [157]

10 авг 2011

OpenGL на Qt 4. Это просто! (часть 2)

Во 2-ой части продолжается рассмотрение работы с OpenGL на Qt 4. Читатель познакомится с настройкой контекста OpenGL, созданием анимации и простым наложением текстур. Заодно в рамках «чистого» OpenGL будет рассмотрена интерактивная графика с помощью режима выбора (выбираем объекты на экране для дальнейшей манипуляции с ними), в рамках «чистого» Qt будет продемонстрировано создание главного окна, меню (menu bar), задействованы механизм сигналов и слотов и технология дерева объектов (иерархии объектов).

Читать | Комментарии [17]

3 апр 2011

Software Occlusion Culling

Оклюжен кулинга сейчас, наверное, нет только у ленивых. Некоторые используют HW OC, у которых есть очевидные недостатки в виде латентности и дополнительной нагрузки на GPU. Другие используют софтовую растеризацию. К примеру, мы можем растеризовать глубину близлежащих оклюдеров (специальной или прямо рендер геометрии), затем проверять баунд боксы отрисовываемых объектов относительно этой глубины. Радостей от такого подхода может быть несколько.

Читать | Комментарии [134]

19 янв 2011

OpenGL на Qt 4. Это просто! (часть 1)

Это ознакомительная статья, посвящённая программированию 3D-графики OpenGL (Open Graphics Library — открытая графическая библиотека) с помощью кроссплатформенной библиотеки Qt 4 (Q + toolkit: «Q» — префикс классов (с красивым начертанием, по мнению разработчиков); toolkit — инструментарий). Я надеюсь, она окажется полезной для тех, кто впервые решил познакомиться с OpenGL и выбирает практичную и удобную библиотеку GUI (Graphical User Interface — графический интерфейс пользователя).

Читать | Комментарии [98]

31 июля 2010

Моделирование стеклянных поверхностей

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

Читать | Комментарии [63]

16 июля 2010

Графические файлы DDS. Что лучше: DXT1, DXT3, DXT5?

Файлы DDS. Описание формата DXTn, его возможностей, простые рекомендации по выбору формата компрессии.

Читать | Комментарии [43]

27 июня 2010

GPU Global Illumination (фейковый)

В этой статье будет обсуждаться реализация Глобально Освещения (Global Illumination) с использованием GPU, а фейк весь в том, что мы всё-таки будем использовать и CPU – для трассировки «фотонов».

Читать | Комментарии [22]

5 янв 2010

Каустика в реальном времени

Данная статья расскажет о создании и отрисовке каустики от прозрачных и полупрозрачных объектов.

Читать | Комментарии [75]

12 окт 2009

Детали использования сферических функций для интерактивного рендеринга.

В последнее время в компьютерной графике сильно возрос интерес к получению фотореалистичных изображений с использованием сложных материалов и источников света. Освещение от обширных источников света, мягкие тени, самоотражения и глобальное освещение (global illumination) – довольно важные эффекты в синтезе фотореалистичных изображений.

Читать | Комментарии [98]

30 июня 2009

Моделирование подповерхностного рассеивания

В этой статье речь пойдёт о быстром fake-методе реализации подповерхностного рассеивания (subsurface scattering) полупрозрачных материалов.

Читать | Комментарии [13]

19 июня 2009

Основы создания мягких теней (GLSL)

Данная статья является естественным продолжением и дополнением статьи «Реализация карт теней с использованием GLSL шейдеров» Дмитрия Беспалова (aka Executor).

Читать | Комментарии [31]

Страницы: 1 2 3 4 Следующая »