Интерактивная компьютерная графика

Программирование 3D-рендеринга реального времени

Real-Time Graphics Programming

 CGI-программирование

Ассеты для 3D-движков и фреймворков

... в разделе портфолио «Низкополигональное 3D-моделирование и текстурирование»

enVision

cmodule.mp4 (42,2 МБ)

Оптимизирован для real-time рендеринга и тестирования моделей в среде окружения

Движок для визуализации и анализа 3D-моделей с поддержкой low-poly сеток и текстурированных объектов. Поддерживает загрузку моделей в формате ASE (ASCII Scene Exporter), содержащем геометрию, UV-развёртки, материалы и базовые трансформации

  • импорт и обработка ASE-моделей с парсингом геометрических структур и материалов
  • рендеринг UV-развёрток с возможностью отладки текстурных координат
  • управление освещением с поддержкой динамических источников, кастомизация теней (hard/soft shadow mapping), работа с картами отражений (environment mapping)
  • визуализацию в режимах wireframe, bounding box и полноценных текстурированных рендеров
  • переключаемый bump-mapping с реализацией нормалей через карты высот
  • cвободное управление камерой и моделями: WASD + Shift для линейного перемещения, переменная FOV, вращение на орбите в координатах Эйлера (Yaw, Pitch, Roll), масштабирование (scroll), панорамирование (middle mouse drag)

Pathfinding & Scouting Simulation

ai.mp4 (3,32 МБ)

Механика основана на базовых алгоритмах поиска пути без сложных элементов искусственного интеллекта

Система поиска пути и навигации в интерактивной среде с двумя автономными агентами: преследователем и уклоняющимся объектом

  • поиск пути (pathfinding) с построением маршрута к целевым точкам
  • скаутинг энергетических источников с запоминанием координат найденных объектов
  • контекстно-зависимое перемещение: уклоняющийся агент избегает преследования, используя нелинейные траектории и манёвры дезориентации, не давая себя загнать в угол или блокировать доступ к батареям
  • пространственный анализ: преследователь использует детекцию в поле зрения (view frustum culling) для обнаружения цели и инициирования погоне
  • динамическое изменение поведения в зависимости от уровня заряда, позиции объектов окружения и активности противника
  • финальное состояние — полное истощение энергии и отключение уклоняющегося агента

Процедурная подводная сцена (11,7 КБ Demo)

underwater.mp4 (2,78 МБ)

Предельная оптимизация кода и процедурных алгоритмов для обеспечения полноценного рендеринга сцены в жёстко ограниченном объёме памяти

Интерактивная сцена с процедурной генерацией подводного окружения и анимацией при экстремально ограниченном размере исполняемого файла (≤11,7 КБ)

  • полностью процедурная генерация геометрии, текстур и анимации без загрузки внешних ресурсов
  • реалистичная симуляция подводной среды с учётом рассеивания света, глубинного затухания и волновых эффектов
  • жёсткие ограничения по размеру файла: полный рендеринг сцены, включая код и данные, упакован в ≤11 988 байт

Низкоуровневые оптимизации на x86 ASM и C/C++, включая:

  • слияние секций PE-заголовка, удаление стандартных библиотек, минимизацию загружаемого образа
  • ручное управление стеком, памятью и регистрами
  • оптимизированные математические вычисления (x87 FPU, SSE/MMX, inline ASM)
  • техники компрессии и упаковки данных для минимизации финального размера бинарного файла

Фреймворк для игр с механикой раннера

bugslife.mp4 (21,3 МБ)

Для демонстрации фреймворка создан игровой прототип Bugslife с базовой механикой

Фреймворк для реализации runner-механики с динамически генерируемым игровым пространством

  • процедурная генерация уровней с размещением препятствий и ограничивающих объектов
  • система управления игроком с адаптацией к скорости и положению
  • рендеринг отражений и постобработка графики
  • модель столкновений и обработка взаимодействий с окружением
  • полноценная игровая логика: счётчик очков, система жизней, UI-элементы
  • внутри-игровое меню и лаунчер с возможностью параметризации рендеринга и настроек
  • загрузочные экраны и асинхронная подгрузка ресурсов

Инструментарий разработки и тестирования шейдеров

thelab.mp4 (82,1 МБ)

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

Shader Development Toolkit — инструмент для интерактивного управления параметрами шейдеров, компиляции и применения в реальном времени с возможностью анализа их влияния на сцену

  • манипуляции с параметрами матриц фильтрации (размытие, весовые коэффициенты смешивания, текстурное скалирование)
  • динамическое изменение гамма-коррекции и цветовых параметров
  • просмотр промежуточных текстурных буферов до финального рендеринга, включая этапы формирования изображения
  • автоматическая или ручная навигация камеры: линейные и интерполяционные траектории, контроль анимации пролётов
  • система предустановок шейдерных параметров с возможностью сброса и тонкой настройки

Фреймворк для игры типа «Арканоид»

Представляет собой модульную основу для разработки вариативных версий аркадных игр с аналогичной механикой

Игровой фреймворк для реализации механики brick-wall breakout с полной симуляцией взаимодействия объектов

  • физическая модель столкновений с точным расчётом отскоков мяча
  • обработка управления ракеткой, динамическое изменение скорости и угла отскока
  • рендеринг и анимация разрушения объектов, эффекты деформации и частиц
  • игровая логика: уровни сложности, прогрессивное ускорение, учёт очков
  • реализация на Adobe Flash (ActionScript) с оптимизированным кодом обработки событий

Использованные технологии

Языки программирования

  • Assembly (x86, x86-64)
  • C
  • C++
  • ActionScript 2.0 / 3.0

Фреймворки и SDK

  • DirectX SDK
  • Adobe Flash SDK
  • NVIDIA Cg Toolkit
  • ATI RenderMonkey (Shader Development Environment)
  • ATI Ashli (High-Level Shader Compilation & Optimization)

Графические API и шейдерные технологии

  • OpenGL
  • GLSL (OpenGL Shading Language)
  • Direct3D
  • HLSL (High-Level Shader Language)
  • Cg (C for Graphics)
  • Ashli (ATI High-Level Shading Language)
  • Direct3D Shader Assembly Language (D3D ASM)
  • ARB Assembly Language (ARB_vertex_program, ARB_fragment_program)

Библиотеки и динамически подключаемые модули

  • cg.dll (NVIDIA Cg runtime library)
  • cgGL.dll (NVIDIA Cg OpenGL interface)
  • Fmod.dll (FMOD Sound System, звуковой движок)
  • glew32.dll (OpenGL Extension Wrangler Library, поддержка расширений OpenGL)
  • ijl15.dll (Intel JPEG Library, обработка изображений)

Инструменты разработки и отладки

  • Microsoft Visual Studio
  • MASM (Microsoft Macro Assembler)
  • GCC (GNU Compiler Collection)
  • WinDbg (отладка низкоуровневого кода)

Операционные системы

  • Microsoft Windows