Привет! Мой предыдущий пост, посвященный программированию графики, был благодушно воспринят сообществом, и я отважился ещё на один. Сегодня я расскажу об алгоритме рендеринга теней Parallel-Split Shadow Mapping (PSSM), с которым я впервые столкнулся, когда возникла рабочая необходимость отображать тени на большом расстоянии от игрока. Тогда я был ограничен набором возможностей Direct3D 10, сейчас я реализовал алгоритм на Direct3D 11 и OpenGL 4.3. Подробнее алгоритм PSSM описывается в GPU Gems 3 как с математической точки зрения, так и с точки зрения реализации на Direct3D 9 и 10. За подробностями прошу под кат.
Читать полностью »
Метка «direct3d 11»
Рендеринг теней при помощи алгоритма Parallel-Split Shadow Mapping
2014-06-20 в 6:51, admin, рубрики: direct3d 11, game development, Алгоритмы, Анимация и 3D графика, метки: direct3d 11Программируем графику на Direct3D 11 в среде .NET (часть 2)
2012-08-31 в 14:56, admin, рубрики: .net, direct3d 11, DirectX, game development, Gamedev, метки: .net, c++, direct3d 11, DirectX, GamedevПлан снова немного поменялся, я решил поменять части 2 и 3 местами.
- Основы программирования 3D графики и отличия фиксированного и программируемого конвейеров
- Game loop, различные подходы к организации цикла рендера и обработки логики в играх
- Трансформации, проекции и передача параметров в шейдеры
- ???
Сначала я хотел ограничиться самым распространенным случаем, но наткнувшись на статью Koen Witters, решил что описание всех распространенных вариантов точно не будет лишним. Получился, скорее всего не перевод, а вольный пересказ, и примеры взяты в несколько измененном виде (в оригинале, как мне показалось, имена переменных и констант были совершенно неадекватными и только усложняли понимание).
Программируем графику на Direct3D 11 в среде .NET (часть 1)
2012-04-14 в 22:43, admin, рубрики: .net, direct3d 11, DirectX, game development, Gamedev, метки: .net, c++, direct3d 11, DirectX, GamedevЯ решил немного изменить план, и сразу же после описания теоретической части давать примеры кода.
Процесс отрисовки
Чтобы видеокарта что-то могла показать, сначала в нее надо загрузить 3D-сцену. В простейшем случае, сцена представлена набором треугольников, каждый из которых имеет, соответственно, три вершины. Вершина может быть и общей для нескольких треугольников. Данные вершин и треугольников загружаются в видеокарту в виде массивов (буферов), минимально необходимая информация для буфера вершин — это координаты вершины в пространстве (X,Y,Z). И если мы хотим рисовать треугольники, нужен еще буфер индексов — перечисление номеров в загруженном нами буфере вершин, описывающих треугольники.
Рассмотрим простейший пример: мы хотим нарисовать один треугольник. Для упрощения, я изобразил его на плоскости, не используя Z координату.
Читать полностью »
Программируем графику на Direct3D 11 в среде .NET
2012-04-13 в 9:13, admin, рубрики: .net, direct3d 11, DirectX, game development, Gamedev, метки: .net, c++, direct3d 11, DirectX, GamedevЭтой статьей начинаю серию уроков по программированию 3D графики с использованием Direct3D 11 в среде .NET.
В этой части (пусть это будет часть 0) предыстория. План на следующие части такой:
- Теория: фундаментальные понятия и термины в 3D графике
- Теория: Game loop, различные подходы к организации цикла рендера и обработки логики в играх
- Практика: «Hello world» в мире 3D-графики или разноцветный вращающийся кубик на DirectX 11
- Практика: пишем плагин для импорта из 3dsmax
- ???
Статьи рассчитаны на подготовленного программиста, знакомого с платформой .NET в общем и языком C# в частности. Объяснения будут даваться только по специфичным для 3D графики концепциям.